Ir para conteúdo
  • 0

Widget Rank


Helflin

Pergunta

Bom, aqui está o que tenho no meu OT.

Tá no SPOILER, mas se quiser tem mais completo aqui:

http://www.xtibia.com/forum/topic/207572-gesior-widget-top-level-box/

 

 

<!-- Script Feito por Jb2 - Fixthow a pedido de um usuário do portal xTibia. -->
<?php
$skills = $SQL->query('SELECT * FROM players WHERE deleted = 0 AND group_id < '.$config['site']['players_group_id_block'].' AND account_id != 1 ORDER BY level DESC LIMIT 5');
?>
<style type="text/css" media="all">
.Toplevelbox {
position: relative;
margin-bottom: 10px;
width: 180px;
height: 200px;
}
.top_level {
position: absolute;
top: 30px;
left: 6px;
height: 180px;
width: 168px;
z-index: 20;
text-align: center;
padding-top: 6px;
font-family: Tahoma, Geneva, sans-serif;
font-size: 9.2pt;
color: #FFF;
font-weight: bold;
text-align: right;
text-decoration: inherit;
text-shadow: 0.1em 0.1em #333
}

#Topbar a {
text-decoration: none;
cursor: auto;
}
a.topfont {
font-family: Verdana, Arial, Helvetica;
font-size: 13px;
color: #0F0;
text-decoration: none
}
a:hover.topfont {
font-family: Verdana, Arial, Helvetica;
font-size: 13px;
color: #CCC;
text-decoration:none
}
</style>

<div id="Topbar" class="Toplevelbox" style="background-image:url(<?PHP echo $layout_name; ?>/images/top_level.png);">
<div class="top_level" style="background:url(<?PHP echo $layout_name; ?>/images/bg_top.png)" align="left">
<?php
$a = 1;
foreach($skills as $skill) {
echo '<div align="left"><a href="?subtopic=characters&name='.$skill['name'].'" class="topfont">
<font color="#CCC">    <font size=1>'.$a.' - </font></font><font size=1>'.$skill['name'].'</font>
<br>
<small><font color="white">      <font size=1>Level: ('.$skill['level'].')</font></font></small>
<br>
</a>
</div>';
$a++;
}
?>
<div class="Bottom" style="background-image:url(layouts/tibiacom/images/box-bottom.gif); left:-5px;">
</div>
</div>
</div>

 

 

 

post-138652-0-59889100-1360772417.jpg

 

É possível notar que todos os nomes estão verdes, porém gostaria de que ficasse VERDE para os players que estão ONLINE e VERMELHO para os que estão OFFLINE, teria como alguém fazer isso?

 

Vlws.

Link para o comentário
Compartilhar em outros sites

13 respostass a esta questão

Posts Recomendados

  • 0

Bom, aqui está o que tenho no meu OT.

Tá no SPOILER, mas se quiser tem mais completo aqui:

http://www.xtibia.com/forum/topic/207572-gesior-widget-top-level-box/

 

 

<!-- Script Feito por Jb2 - Fixthow a pedido de um usuário do portal xTibia. -->

<?php

$skills = $SQL->query('SELECT * FROM players WHERE deleted = 0 AND group_id < '.$config['site']['players_group_id_block'].' AND account_id != 1 ORDER BY level DESC LIMIT 5');

?>

<style type="text/css" media="all">

.Toplevelbox {

position: relative;

margin-bottom: 10px;

width: 180px;

height: 200px;

}

.top_level {

position: absolute;

top: 30px;

left: 6px;

height: 180px;

width: 168px;

z-index: 20;

text-align: center;

padding-top: 6px;

font-family: Tahoma, Geneva, sans-serif;

font-size: 9.2pt;

color: #FFF;

font-weight: bold;

text-align: right;

text-decoration: inherit;

text-shadow: 0.1em 0.1em #333

}

 

#Topbar a {

text-decoration: none;

cursor: auto;

}

a.topfont {

font-family: Verdana, Arial, Helvetica;

font-size: 13px;

color: #0F0;

text-decoration: none

}

a:hover.topfont {

font-family: Verdana, Arial, Helvetica;

font-size: 13px;

color: #CCC;

text-decoration:none

}

</style>

 

<div id="Topbar" class="Toplevelbox" style="background-image:url(<?PHP echo $layout_name; ?>/images/top_level.png);">

<div class="top_level" style="background:url(<?PHP echo $layout_name; ?>/images/bg_top.png)" align="left">

<?php

$a = 1;

foreach($skills as $skill) {

echo '<div align="left"><a href="?subtopic=characters&name='.$skill['name'].'" class="topfont">

<font color="#CCC">    <font size=1>'.$a.' - </font></font><font size=1>'.$skill['name'].'</font>

<br>

<small><font color="white">      <font size=1>Level: ('.$skill['level'].')</font></font></small>

<br>

</a>

</div>';

$a++;

}

?>

<div class="Bottom" style="background-image:url(layouts/tibiacom/images/box-bottom.gif); left:-5px;">

</div>

</div>

</div>

 

 

 

post-138652-0-59889100-1360772417.jpg

 

É possível notar que todos os nomes estão verdes, porém gostaria de que ficasse VERDE para os players que estão ONLINE e VERMELHO para os que estão OFFLINE, teria como alguém fazer isso?

 

Vlws.

posta o script que vemos que que da pra fazer!

Link para o comentário
Compartilhar em outros sites

  • 0

O script é o que ta dentro do spoiler, o que ta dentro do SPOILER é o arquivo widget_rank.php que fica dentro da pasta layouts/tibiacom .

 

Ai dentro do layout.php precisa adicionar esta linha depois da <div> do Premium Box para funcionar:

<?php include($layout_name.'/widget_rank.php'); ?>

E as imagens(bg_top.png e top_level.png) tem para fazer download em um link do outro tópico no qual citei acima, o mesmo a baixo.

http://www.xtibia.com/forum/topic/207572-gesior-widget-top-level-box/

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

Não sei se teria algo a ver mais tem isso também em GUILDS.PHP(na linha 199);

 $main_content .= '<TR><TD><FORM ACTION="?subtopic=guilds&action=change_nick&name='.urlencode($player->getName()).'" METHOD=post><A HREF="?subtopic=characters&name='.urlencode($player->getName()).'">'.($player->isOnline() ? "<font color=\"green\">".$player->getName()."</font>" : "<font color=\"red\">".$player->getName()."</font>").'</A> <br><small>Level: '.$player->getLevel().' '.$vocation_name[$player->getWorld()][$player->getPromotion()][$player->getVocation()].'</small>';

ou seja, se o player dessa guild está online, o nome dele fica em verde, se está offline fica vermelho.

Editado por Helflin
Link para o comentário
Compartilhar em outros sites

  • 0
foreach($skills as $skill) {
$color = "";
if ($skills["online"] == 0){$color = " style=\"color:cf0000\" "}
echo '<div align="left"><a href="?subtopic=characters&name='.$skill['name'].'" class="topfont" $color>

troca só as linhas q eu mexi

Link para o comentário
Compartilhar em outros sites

  • 0

Aew cara, aqui deu erro.

 

Acho que você precisa adicionar algo no começo do script la onde tem isso:

<!-- Script Feito por Jb2 - Fixthow a pedido de um usuário do portal xTibia. -->
<?php
$skills = $SQL->query('SELECT * FROM players WHERE deleted = 0 AND group_id < '.$config['site']['players_group_id_block'].' AND account_id != 1 ORDER BY level DESC LIMIT 5');
?>

Não precisaria definir:

if ($skills["online"]

???

 

Porque o erro é esse, ele acusa linha 54, que é a do IF.

Parse error: syntax error, unexpected '}' in C:\xampp\htdocs\site\layouts\tibiacom\widget_rank.php on line 54
Editado por Helflin
Link para o comentário
Compartilhar em outros sites

  • 0

fiz rapido, errei bobera, faltou o ;

 

já ta definido... agora dá certo

foreach($skills as $skill) {
$color = "";
if ($skills["online"] == 0){$color = " style=\"color:cf0000\" ";}
echo '<div align="left"><a href="?subtopic=characters&name='.$skill['name'].'" class="topfont" $color>
Link para o comentário
Compartilhar em outros sites

  • 0

tenta assim, eu adaptei, mais nao tenhu precisao de vai funfar, e to sem nada pra testar aqui!

 

 

<?php
$skills = $SQL->query('SELECT * FROM players WHERE deleted = 0 AND group_id < '.$config['site']['players_group_id_block'].' AND account_id != 1 ORDER BY level DESC LIMIT 5');
?>
<style type="text/css" media="all">
  .Toplevelbox {
    position: relative;
    margin-bottom: 10px;
    width: 180px;
    height: 200px;
  }
  .top_level {
    position: absolute;
    top: 30px;
    left: 6px;
    height: 180px;
    width: 168px;
    z-index: 20;
    text-align: center;
    padding-top: 6px;
    font-family: Tahoma, Geneva, sans-serif;
    font-size: 9.2pt;
    color: #FFF;
    font-weight: bold;
    text-align: right;
    text-decoration: inherit;
    text-shadow: 0.1em 0.1em #333
  }
 
  #Topbar a {
  text-decoration: none;
  cursor: auto;
  }
  a.topfont {
    font-family: Verdana, Arial, Helvetica;
    font-size: 13px;
    color: #0F0;
    text-decoration: none
  }
  a:hover.topfont {
    font-family: Verdana, Arial, Helvetica;
    font-size: 13px;  
    color: #CCC;
    text-decoration:none
  }
</style>
 
<div id="Topbar" class="Toplevelbox" style="background-image:url(<?PHP echo $layout_name; ?>/images/top_level.png);">
  <div class="top_level" style="background:url(<?PHP echo $layout_name; ?>/images/bg_top.png)" align="left">
    <?php
    $a = 1;
    foreach($skills as $skill) {
      echo '<div align="left"><a href="?subtopic=characters&name='.$skill['name'].'" class="topfont">
        (.$skill['name']. ->isOnline()) ? 'green' : 'red'
 
        <br>
        <small><font color="white">      <font size=1>Level: ('.$skill['level'].')</font></font></small>
        <br>
      </a>
      </div>';
      $a++;
    }
    ?>
    <div class="Bottom" style="background-image:url(layouts/tibiacom/images/box-bottom.gif); left:-5px;">
    </div>
  </div>
</div>

 

 

Editado por VictorWebMaster
Adição de spoiler no código;
Link para o comentário
Compartilhar em outros sites

  • 0

Fatal error: Cannot use object of type PDOStatement as array in C:\xampp\htdocs\site\layouts\tibiacom\widget_rank.php on line 54

foreach($skills as $skill) {
$color = "";
if ($skill["online"] == 0){$color = " style=\"color:cf0000\" ";}
echo '<div align="left"><a href="?subtopic=characters&name='.$skill['name'].'" class="topfont" $color>

corrigido

Link para o comentário
Compartilhar em outros sites

  • 0

O que o Piabeta modificou:

Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in C:\xampp\htdocs\site\layouts\tibiacom\widget_rank.php on line 53

 

O que o Eskylo modificou:

O Top Level está aparecendo normalmente, porém não está aparecendo em vermelho os que estão offline, acho que tem erro na checagem.

Link para o comentário
Compartilhar em outros sites

  • 0

Só estava vendo o pessoal colocando script tudo errado, resolvi postar o correto.

 

 

<?php
$skills = $SQL->query('SELECT * FROM players WHERE deleted = 0 AND group_id < '.$config['site']['players_group_id_block'].' AND account_id != 1 ORDER BY level DESC LIMIT 5');
?>
<style type="text/css" media="all">
  .Toplevelbox {
    position: relative;
    margin-bottom: 12px;
    width: 180px;
    height: 225px;
  }
  .top_level {
    position: absolute;
    top: 30px;
    left: 6px;
    height: 180px;
    width: 168px;
    z-index: 20;
    text-align: center;
    padding-top: 6px;
    font-family: Tahoma, Geneva, sans-serif;
    font-size: 9.2pt;
    color: #FFF;
    font-weight: bold;
    text-align: right;
    text-decoration: inherit;
    text-shadow: 0.1em 0.1em #333
  }
  #Topbar a {
  text-decoration: none;
  cursor: hand;
  }
  a.topfont {
    font-family: Verdana, Arial, Helvetica;
    font-size: 13px;
    color: #0F0;
    text-decoration: none
  }
  a:hover.topfont {
    font-family: Verdana, Arial, Helvetica;
    font-size: 13px; 
    color: #CCC;
    text-decoration:none
  }
  .Bottom1 {
  position: relative;
  bottom: -12px;
  left: -5px;
  height: 12px;
  width: 180px;
}
</style>
<div id="Topbar" class="Toplevelbox" style="background-image:url(layouts/images/top_level.png);">
  <div class="top_level" style="background:url(layouts/images/bg_top.png)" align="left">
    <?php
    $a = 1;
    foreach($skills as $skill) {
	  echo '<div align="left"><a href="?subtopic=characters&name='.$skill['name'].'" class="topfont">
	       '.$a.' <font color="';
		if ($skill['online'] == 1){echo 'green';} else {echo 'red';}
		echo '"> - '.$skill['name'].'</font>
	    <br />
	    <small><font color="white">      Level: ('.$skill['level'].')</font></small>
	    <br>
	  </a>
	  </div>';
	  $a++;
    }
    ?>
    <div class="Bottom1" style="background-image:url(layouts/images/general/box-bottom.gif);">
    </div>
  </div>
</div> 

 

 

Dúvida sanada? Reporte o topico.

Link para o comentário
Compartilhar em outros sites

  • 0

Só estava vendo o pessoal colocando script tudo errado, resolvi postar o correto.

 

 

<?php
$skills = $SQL->query('SELECT * FROM players WHERE deleted = 0 AND group_id < '.$config['site']['players_group_id_block'].' AND account_id != 1 ORDER BY level DESC LIMIT 5');
?>
<style type="text/css" media="all">
  .Toplevelbox {
    position: relative;
    margin-bottom: 12px;
    width: 180px;
    height: 225px;
  }
  .top_level {
    position: absolute;
    top: 30px;
    left: 6px;
    height: 180px;
    width: 168px;
    z-index: 20;
    text-align: center;
    padding-top: 6px;
    font-family: Tahoma, Geneva, sans-serif;
    font-size: 9.2pt;
    color: #FFF;
    font-weight: bold;
    text-align: right;
    text-decoration: inherit;
    text-shadow: 0.1em 0.1em #333
  }
  #Topbar a {
  text-decoration: none;
  cursor: hand;
  }
  a.topfont {
    font-family: Verdana, Arial, Helvetica;
    font-size: 13px;
    color: #0F0;
    text-decoration: none
  }
  a:hover.topfont {
    font-family: Verdana, Arial, Helvetica;
    font-size: 13px; 
    color: #CCC;
    text-decoration:none
  }
  .Bottom1 {
  position: relative;
  bottom: -12px;
  left: -5px;
  height: 12px;
  width: 180px;
}
</style>
<div id="Topbar" class="Toplevelbox" style="background-image:url(layouts/images/top_level.png);">
  <div class="top_level" style="background:url(layouts/images/bg_top.png)" align="left">
    <?php
    $a = 1;
    foreach($skills as $skill) {
	  echo '<div align="left"><a href="?subtopic=characters&name='.$skill['name'].'" class="topfont">
	       '.$a.' <font color="';
		if ($skill['online'] == 1){echo 'green';} else {echo 'red';}
		echo '"> - '.$skill['name'].'</font>
	    <br />
	    <small><font color="white">      Level: ('.$skill['level'].')</font></small>
	    <br>
	  </a>
	  </div>';
	  $a++;
    }
    ?>
    <div class="Bottom1" style="background-image:url(layouts/images/general/box-bottom.gif);">
    </div>
  </div>
</div> 

 

 

Dúvida sanada? Reporte o topico.

 

Mas vale lembrar que a tag <font> é ultrapassada, uma vez que temos CSS

Link para o comentário
Compartilhar em outros sites

  • 0

 

Só estava vendo o pessoal colocando script tudo errado, resolvi postar o correto.

 

 

<?php
$skills = $SQL->query('SELECT * FROM players WHERE deleted = 0 AND group_id < '.$config['site']['players_group_id_block'].' AND account_id != 1 ORDER BY level DESC LIMIT 5');
?>
<style type="text/css" media="all">
  .Toplevelbox {
    position: relative;
    margin-bottom: 12px;
    width: 180px;
    height: 225px;
  }
  .top_level {
    position: absolute;
    top: 30px;
    left: 6px;
    height: 180px;
    width: 168px;
    z-index: 20;
    text-align: center;
    padding-top: 6px;
    font-family: Tahoma, Geneva, sans-serif;
    font-size: 9.2pt;
    color: #FFF;
    font-weight: bold;
    text-align: right;
    text-decoration: inherit;
    text-shadow: 0.1em 0.1em #333
  }
  #Topbar a {
  text-decoration: none;
  cursor: hand;
  }
  a.topfont {
    font-family: Verdana, Arial, Helvetica;
    font-size: 13px;
    color: #0F0;
    text-decoration: none
  }
  a:hover.topfont {
    font-family: Verdana, Arial, Helvetica;
    font-size: 13px; 
    color: #CCC;
    text-decoration:none
  }
  .Bottom1 {
  position: relative;
  bottom: -12px;
  left: -5px;
  height: 12px;
  width: 180px;
}
</style>
<div id="Topbar" class="Toplevelbox" style="background-image:url(layouts/images/top_level.png);">
  <div class="top_level" style="background:url(layouts/images/bg_top.png)" align="left">
    <?php
    $a = 1;
    foreach($skills as $skill) {
	  echo '<div align="left"><a href="?subtopic=characters&name='.$skill['name'].'" class="topfont">
	       '.$a.' <font color="';
		if ($skill['online'] == 1){echo 'green';} else {echo 'red';}
		echo '"> - '.$skill['name'].'</font>
	    <br />
	    <small><font color="white">      Level: ('.$skill['level'].')</font></small>
	    <br>
	  </a>
	  </div>';
	  $a++;
    }
    ?>
    <div class="Bottom1" style="background-image:url(layouts/images/general/box-bottom.gif);">
    </div>
  </div>
</div> 

 

 

Dúvida sanada? Reporte o topico.

 

Mas vale lembrar que a tag <font> é ultrapassada, uma vez que temos CSS

 

 

Se voce é tão bom, porque não fez antes o sistema? Topico feixado e movido

Tópico movido para a seção de dúvidas e pedidos resolvidos.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...