GA
suporte websites

[Encerrado] ThemeBox Bugado

Por Gabrielkss, 28 de set. de 2017 em Tópicos Sem Resposta

10
2.3k
GabrielkssG
28 de setembro de 2017 às 16:04

Olá pessoal estou tentando usar um themebox de um site que veio mais não estou conseguindo pois dá o seguinte erro 

 

Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\layouts\tibiarl\layout.php on line 742

Essa é minha linha 742 completa

Spoiler

<div id="warcastle" class="Themebox" style="background-image:url(<?PHP echo $layout_name; ?>/images/themeboxes/warcastle.png);">
  <div id="warcastle" style="height:190px; width:180px; background-image:url(./layouts/tibiarl/images/themeboxes/warcastle.png);">
  <?php 
     $b = 1;
    foreach($castle as $guild) {
      echo '<div style="float:center;margin:auto"><br><br><br><br>
      <a href="?subtopic=guilds&action=show&guild='.$guild['guild_id'].'" style="background: transparent url(layouts/tibiarl/images/menu/fire.gif);font-size:14px;text-shadow: 0.1em 0.1em #333" class="topfont">
       <img class="img" src="guild_image.php?id='.$guild['guild_id'].'" width=64 height=64><br>
      '.$guild['guildname'].'
      </a>
      </div>';
      $b++;
    }
    ?>
    </div>
</div>    <br>

Tem outra parte também que faz parte.

Spoiler

<?php
$castle = $SQL->query('SELECT c.id AS id, g.logo_gfx_name AS `logo`, g.name AS guildname, c.guild_id AS guild_id
      FROM castle_dono AS c
   INNER JOIN guilds AS g
      ON g.id = c.guild_id
   ORDER BY id DESC LIMIT 10;');
?>

Alguém poderia ajudar por favor ?

VictorWEBMasterV
29 de setembro de 2017 às 11:05

Pelo que deu para perceber ele está dando erro no foreach(), procure por todos ->foreach() e remova-os, salve o arquivo e veja se há alguma alteração, no código que você passou não há nenhum, no entanto não tem capacidade de dar algum erro... Veja se resolve, caso não resolva, posta da mesma forma em spoiler o seu layout.php inteiro para que possa ser feita uma verificação mais detalhada para solução do caso, fico no aguardo.

 

Obrigado por nos contactar, é uma honra poder ajudar as pessoas que estão com problemas, XTibia sempre disponível a ajudar.

GabrielkssG
29 de setembro de 2017 às 12:12

@VictorWEBMaster No primeiro spoiler tem o foreach()

 

Spoiler

 foreach($castle as $guild) {
      echo '<div style="float:center;margin:auto"><br><br><br><br>
      <a href="?subtopic=guilds&action=show&guild='.$guild['guild_id'].'" style="background: transparent url(layouts/tibiarl/images/menu/fire.gif);font-size:14px;text-shadow: 0.1em 0.1em #333" class="topfont">
       <img class="img" src="guild_image.php?id='.$guild['guild_id'].'" width=64 height=64><br>
      '.$guild['guildname'].'
      </a>
      </div>';

 

 

VictorWEBMasterV
29 de setembro de 2017 às 12:16

Ai caraio, vi agora. Falei merda.. Confundi com fetch..

 

 

Verifique se ha no banco de dados as tabelas que o sistema utiliza, já certificou-se disso?

GabrielkssG
29 de setembro de 2017 às 12:19

Já sim, no caso ele usa a tabela castle_dono certo ? no caso já tem sim, mais mesmo assim dá esse erro.

 

ola.png

GabrielkssG
30 de setembro de 2017 às 13:48

@VictorWEBMaster ajuda porfavor

VictorWEBMasterV
01 de outubro de 2017 às 23:59

Vamos fazer o seguinte, fica mais fácil pra mim e pra voce =)

 

Onde voce pegou esse sistema? Poderia postar aqui neste topico o link para que eu possa revisar, se não há nenhum erro no mesmo já de 'fabrica'.

Posso demorar alguns dias para postar, não passa de 3 dias, estou meio compromissado com umas tarefas, mas pretendo ajudar a todos!

GabrielkssG
02 de outubro de 2017 às 18:38

@VictorWEBMaster Olha eu peguei esse sistema de um site que já vinha com ele, todo mundo que baixou o site tá com o mesmo erro. Só o que compoem o script é isso mesmo pelo menos que eu achei. não encontrei o link aqui no xtibia, irei te passar por PM o link. um membro de outro forum, fez uma coisa mais não funciona tbm. mais pelo menos o dele aparece no site o castle siege só não aparace nada. Olha tbm por favor.

 

Crie um arquivo.php em layout/widgets e adicione isso:

Spoiler
<div class="sidebar">
<?php
    $guild = mysql_select_single('SELECT `name` FROM `guilds` WHERE `real_castle` = 1;');
?>
<style type="text/css" media="all">
   .name {
    position: relative;
    top:40px;
    text-align: center;
    font-family: Tahoma, Geneva, sans-serif;
    font-size: 9.2pt;
    color: #FFF;
    font-weight: bold;
   }
   .logo {
    position: relative;
    top: 50px;
    text-align: center;
   }
  .CastleWarbox {
    position: relative;
    margin-top: 10px;
    margin-bottom: 5px;
    width: 200px;
    height: 200px;
  }
</style>
    <div id="CastleWar" class="CastleWarbox" style="background-image:url(https://i.imgur.com/HKCJnQy.png);">
         <?php
        if ($guild) {
        ?>
            <div class="logo">
                 <img style="max-height:100px;" src="<?php logo_exists($guild['name']); ?>">
            </div>
            <div class = "name">
                <?php echo '<br><a href="guilds.php?name='.$guild['name'].'">'.$guild["name"].'</a><br>';?>
            </div>
                        
        <?php
        }else ?>
        <div class = "name">
                <?php echo '<br><br><br><br><p>Castle is not dominated</p><br>';?>
        </div>
   </div>
</div>

 

No mysql, execute o comando para criar uma nova  coluna na tabela guilds:

ALTER TABLE `guilds` ADD `real_castle` INT NOT NULL DEFAULT 0;

Como não conheço o evento, acho que deve ter a lib dele aí, adicione a seguinte função na lib:

function setGuildRealCastle(cid)
db.executeQuery("UPDATE `guilds` SET  `real_castle` = REPLACE(`real_castle`, 1, 0);")
db.executeQuery("UPDATE `guilds` SET `real_castle` = 1 WHERE `id` = '" .. getPlayerGuildId(cid) .."';")
end

E na função da lib que dá o domínio do castelo, adicione: 

setGuildRealCastle(cid)

 

 

image.png.e164160d0c69295d3ffa8caf629e6734.png

1 mês depois...
VictorWEBMasterV
11 de novembro de 2017 às 12:37

Passando o olho no script já percebo de cara que não é para gesior... Segue abaixo script compatível com gesior.

Espero que ajude

 

Spoiler
<style type="text/css" media="all">
		#CastleWarBox a {
			color:#FFF !important;
			font-weight:bold;
			font-size:14px;
			text-decoration: none;
			text-shadow: #FF0404 1px 1px 10px
		}
		#CastleWarBox p {
			color:#FFF !important;
			font-weight:bold;
			font-size:14px;
		}
		.topfont {			
			font-family: "Trebuchet MS", sans-serif;
		}
		@keyframes blink {
    0% {
        opacity: 1;
    }
    50% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}
		</style>
		<?php
		$guild = $SQL->query('SELECT * FROM `guilds` WHERE `real_castle` = 1');
		foreach($guild as $guild) {
		?>
		<div id="CastleWarBox" class="Themebox"  style="animation: blink 2s;animation-iteration-count: infinite;background-image:url(https://i.imgur.com/p1JFuwJ.png); margin-bottom:20px; height:192px; opacity: 0.9;filter: alpha(opacity=90);" >
			<div style="padding-top:48px;">			
				<div align="center" style="text-align:center;">
					<a href="?subtopic=castlewar" class="topfont">
					<?php
						if (!$guild['guild_logo']){
					?>
						<img src="/images/default_logo.jpg" width="64" height="64" border="0" style="margin-top:5px;">
					<?php }
					else
					{
						echo '<img src="guild_image.php?id='.$guild['id'].'" width="64" height="64" border="0" style="margin-top:5px;">';
					}
					
					?>
					</a>
					<p><a href="?subtopic=castlewar" class="topfont"><?php echo $guild['name']; ?></a></p>
				</div>			</div>
			<div class="Bottom" style="background-image:url(<?php echo $layout_name; ?>/images/global/general/box-bottom.gif); top:191px;"></div>
		</div>
		<?php } ?>

 

 

5 meses depois...
StigalS
19 de abril de 2018 às 17:23
A questão neste tópico de suporte foi encerrada por falta de respostas. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta.

+ Caso a dúvida não tenha sido resolvida você poderá criar outro tópico solicitando ajuda.
* Lembre-se que é permitido dar UP no tópico a cada 24 horas para assim o destacar e manter movimentado.