Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

williamfoose

Problema com Template.

Recommended Posts

Olá. Estou criando uma pagina iqual do forum phpbb. Que contem linquas, temas e até cache.

 

Tudo esta´funcionando perfeitamente. Só que o problema e o sequinte.

 

O index_body.html contem o sequinte codigo html.

 

<tr>

<th class="{TIPO}">{TIPO}</th>

<td><a target="_blank" href="download.php?id={ID}" title="{CLIQUES} Cliques">{TITULO}</a></td>

<th>{DATA}</th>

<th><span class="k"></span><a href="{SURL}" target="_blank">{SNAME}</a></th>

<th>{RATE}</th>

</tr>

E o arquivo index.php

 

contem o sequinte codigo

 

<?php

require "includes/config.class.php";

require "includes/main.class.php";

require "includes/config.php";

include_once 'include/cache.php';

include("include/vars.php");

include("include/mysql.php");

require("include/functions_template.php");

include "linquagens/portuques.php";

$ddl = new ddl();

$ddl->open();

$ddl->get($q, $types);

$cat = $_GET['type'];

$cache = new Cache;

$cache->Inicio();

$template = 'lago_azul';

$template = new ddl_template("template/$template/index.html");

while(list($id, $type, $title, $url, $sname, $surl, $date, $email, $views) = mysql_fetch_row($ddl->get)) {

$template->assign("ID", $id);

$template->assign("TIPO", $type);

$template->assign("DATA", $date);

$template->assign("SNAME", $sname);

$template->assign("RATE", $views);

$template->assign("SURL", $surl);

$template->assign("TITULO", $title);

}

$template->ddl_print() or die($template->error);

/* Coloque

$cache->Fim();

exit;

para ativar o cache e

exit;

$cache->Fim();

para desativar

*/

$cache->Fim();

exit;

?>

Ae na pagina aparece assim.

 

Games AGE OF EMPIRES 2 TRIAL 12-04-08 GOOGLE 94

 

Então na pagina tem

tipo = Games

Nome = AGE OF EMPIRES 2 TRIAL

data = 12-04-08

quem adicionou o arquivo = GOOGLE

quantas vezes a pagina foi visitada = 94

 

Como tem mais dados no banco de dados. Eu queria saber como faço para mostrar mais.

 

Não estou consequindo.

 

Exemplo eu queria colocar 10 por pagina.

 

Exemplo assim

 

Games AGE OF EMPIRES 2 TRIAL 12-04-08 GOOGLE 94

Games AGE OF EMPIRES 2 TRIAL 12-04-08 GOOGLE 94

Games AGE OF EMPIRES 2 TRIAL 12-04-08 GOOGLE 94

Games AGE OF EMPIRES 2 TRIAL 12-04-08 GOOGLE 94

Games AGE OF EMPIRES 2 TRIAL 12-04-08 GOOGLE 94

Games AGE OF EMPIRES 2 TRIAL 12-04-08 GOOGLE 94

Games AGE OF EMPIRES 2 TRIAL 12-04-08 GOOGLE 94

Games AGE OF EMPIRES 2 TRIAL 12-04-08 GOOGLE 94

Games AGE OF EMPIRES 2 TRIAL 12-04-08 GOOGLE 94

Games AGE OF EMPIRES 2 TRIAL 12-04-08 GOOGLE 94

 

Mais não estou consequindo fazer isso

 

Alquem poderia dar uma força.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seja bem vindo(a) ao iMasters.

 

Bem amigão, pra você listar apenas as 10, você deverá definir isso na query que se responsabiliza para fazer a busca no banco de dados... enquanto a mostrar o que você quer faça o seguinte, substitua a parte de seu while por este, mais antes faça um backup da página por questão de segurança:

 

while($ver=mysql_fetch_row($ddl->get)) {
$template->assign("ID", $ver['id']);
$template->assign("TIPO", $ver['type']);
$template->assign("DATA", $ver['date']);
$template->assign("SNAME", $ver['sname']);
$template->assign("RATE", $ver['views']);
$template->assign("SURL", $ver['surl']);
$template->assign("TITULO", $ver['title']);
}
porém, confira se os capos da tabela são realmente esses que deduzi ai, e veja se funciona

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seja bem vindo(a) ao iMasters.

 

Bem amigão, pra você listar apenas as 10, você deverá definir isso na query que se responsabiliza para fazer a busca no banco de dados... enquanto a mostrar o que você quer faça o seguinte, substitua a parte de seu while por este, mais antes faça um backup da página por questão de segurança:

 

while($ver=mysql_fetch_row($ddl->get)) {
$template->assign("ID", $ver['id']);
$template->assign("TIPO", $ver['type']);
$template->assign("DATA", $ver['date']);
$template->assign("SNAME", $ver['sname']);
$template->assign("RATE", $ver['views']);
$template->assign("SURL", $ver['surl']);
$template->assign("TITULO", $ver['title']);
}
porém, confira se os capos da tabela são realmente esses que deduzi ai, e veja se funciona

 

Abraço.

Olá.

 

Obrigado por ter respondido http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

 

 

Bom. Agora não apareceu nada na pagina.

 

Ficou tudo vazio.

 

Veja

 

<tr>

<th class=""></th>

<td><a target="_blank" href="download.php?id=" title="{CLIQUES} Cliques"></a></td>

<th></th>

<th><span class="k"></span><a href="" target="_blank"></a></th>

<th></th>

</tr>

Compartilhar este post


Link para o post
Compartilhar em outros sites

hummm me esqueci de uma coisinha mano, troque novamente:

 

 

como te falei, verifique se os capos são esses mesmos de sua tabela?

while($ver=mysql_fetch_array($ddl->get)) {
$template->assign("ID", $ver['id']);
$template->assign("TIPO", $ver['type']);
$template->assign("DATA", $ver['date']);
$template->assign("SNAME", $ver['sname']);
$template->assign("RATE", $ver['views']);
$template->assign("SURL", $ver['surl']);
$template->assign("TITULO", $ver['title']);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

hummm me esqueci de uma coisinha mano, troque novamente:

 

 

como te falei, verifique se os capos são esses mesmos de sua tabela?

while($ver=mysql_fetch_array($ddl->get)) {
$template->assign("ID", $ver['id']);
$template->assign("TIPO", $ver['type']);
$template->assign("DATA", $ver['date']);
$template->assign("SNAME", $ver['sname']);
$template->assign("RATE", $ver['views']);
$template->assign("SURL", $ver['surl']);
$template->assign("TITULO", $ver['title']);
}

Agora aparecer os dados. Mais somente 1.

 

<tr>

<th class="Games">Games</th>

<td><a target="_blank" href="download.php?id=9347" title="117 Cliques">Need For Speed Carbon demo</a></td>

<th>02-12-07</th>

<th><span class="k"></span><a href="http://www.google.com.br" target="_blank">google</a></th>

<th>117</th>

</tr>

 

Um cara aqui do meu msn flw que preciso adicionar mais codigos no template para aparecer o conteudo todo. Como ele ficou off não deu para eu perguntar ele como fas.

 

Ele flw que terei que fazer um simbolo assim

 

<!-- IF INICIO -->

<tr>

<th class="{TIPO}">{TIPO}</th>

<td><a target="_blank" href="download.php?id={ID}" title="{CLIQUES} Cliques">{TITULO}</a></td>

<th>{DATA}</th>

<th><span class="k"></span><a href="{SURL}" target="_blank">{SNAME}</a></th>

<th>{RATE}</th>

</tr>

<!-- ENDIF -->

 

O IF INICIO para iniciar o dado.

 

E o ENDIF que é para fechar.

 

Ele tinha falado que no ENDIF colocava no template o codigo.

 

case 'ENDIF':

$compile_blocks[] = '<?php } ?>';

break;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom hoje eu consequi fazer aparecer mais de 1.

 

Mais não foi bem o que eu queria. :(

 

Porque coloquei a parte que tinha que fikar no template no arquivo php.

 

Então não é um template - template mesmo http://forum.imasters.com.br/public/style_emoticons/default/blush.gif

 

Toda parte que for mostrar o banco de dados terei que colocar aquele codigo no script php.

 

Coloquei o sequinte codigo para ele funcionar.

 

<?php

require "includes/config.class.php";

require "includes/main.class.php";

require "includes/config.php";

include_once 'include/cache.php';

include("include/vars.php");

include("include/mysql.php");

require("include/functions_template.php");

include "linquagens/portuques.php";

$ddl = new ddl();

$ddl->open();

$ddl->get($q, $types);

$cache = new Cache;

$cache->Inicio();

$template = 'katz';

$template = new ddl_template('template/' . $template . '/index.html');

while($ver=mysql_fetch_array($ddl->get)) {

$tipo2 = $ver['type'];

$id2 = $ver['id'];

$title2 = $ver['title'];

$data2 = $ver['date'];

$surl2 = $ver['surl'];

$sname2 = $ver['sname'];

$views2 = $ver['views'];

$down .= "<tr>

<th class=\"$tipo2\">$tipo2</th>

<td><a target=\"_blank\" href=\"download.php?id=$id2\" title=\"$views2 Cliques\">$title2</a></td>

<th>$data2</th>

<th><span class=\"k\"></span><a href=\"$surl2\" target=\"_blank\">$sname2</a></th>

<th>$views2</th>

</tr><br />";

}

$template->assign("CONTEUDO", $down);

$template->ddl_print() or die($template->error);

exit;

$cache->Fim();

?>

 

E na pagina html que é o template coloquei apenas isso. {CONTEUDO}

 

 

 

Se alquem solber como faço para consertar isso favor http://forum.imasters.com.br/public/style_emoticons/default/grin.gif da uma ajudinha.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está usando Smarty ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não.

 

Para gerar o template estou usando o index acima e o script abaixo que está no function_template.php

 

<?php

# Template

class ddl_template

{

var $error = "";

var $tags = array();

 

function ddl_template($template_file)

{

if(!file_exists($template_file))

{

$this->error = "O tema $template_file não existe.";

}

$this->template_file = $template_file;

}

 

function assign($tag, $value)

{

if(empty($tag))

{

$this->error = "A tag está vazia!";

return(false);

}

 

$this->tags[$tag] = $value;

return(true);

}

 

function ddl_parse()

{

$contents = @implode("", (@file($this->template_file)));

 

while(list($key, $value) = each($this->tags))

{

$tag = '{'.$key.'}';

$contents = str_replace($tag, $value, $contents);

 

}

return($contents);

}

 

function ddl_print()

{

$ret = $this->ddl_parse();

if($ret == false)

{

return(false);

}

print($ret);

return(true);

}}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara tem certeza de que não está usando o smarty ? estou vendo ali class do smarty ?

Tenho sim mano. Eu coloquei o script completo no dominio do meu amigo para você's verem como é o script.

 

http://jogos.ultimateddl.net/script_template.rar

 

 

Nele tirei o cache para você's verem como é o template.

 

Minha unica duvida nele e mostrar mesmo o conteudo do banco de dados. Com mais de 1x, isso que não estou consequindo :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não. Eu só coloquei a função do template.

 

Que fas ele funcionar.

 

Porque pensei que você tavam achando que era o smarty :/

 

Ae coloquei só o template.

 

Se kizer posso colocar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vê se funciona ai, lembrando que, você deve ir no arquivo mysql.php e colocar o nome da base de dados, vou colocar aqui as modificações:

 

index.php

<?php
include("include/vars.php");
require("include/functions_template.php");
include "linquagens/portuques.php";
$template = 'banho de lua';
$template = new ddl_template('template/' . $template . '/index.html');
include("include/mysql.php");
while($ver=mysql_fetch_array($result)) {


echo $ver['idcd'];
#Agora coloque o que você deseja exibir aqui...


}
$template->assign("CONTEUDO", $down);
$template->ddl_print() or die($template->error);
exit;
$cache->Fim();
?>

mysql.php

 

<?php
/* Aqui você deve colocar o nome da sua tabela da base de dados... */
set_magic_quotes_runtime(0);
$con=mysql_connect($mysql_host,$mysql_username,$mysql_passwd) OR DIE (mysql_error());
mysql_select_db($mysql_dbase,$con);
$result = mysql_query("SELECT * FROM <><><>");
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vê se funciona ai, lembrando que, você deve ir no arquivo mysql.php e colocar o nome da base de dados, vou colocar aqui as modificações:

 

index.php

<?php
include("include/vars.php");
require("include/functions_template.php");
include "linquagens/portuques.php";
$template = 'banho de lua';
$template = new ddl_template('template/' . $template . '/index.html');
include("include/mysql.php");
while($ver=mysql_fetch_array($result)) {


echo $ver['idcd'];
#Agora coloque o que você deseja exibir aqui...


}
$template->assign("CONTEUDO", $down);
$template->ddl_print() or die($template->error);
exit;
$cache->Fim();
?>

mysql.php

 

<?php
/* Aqui você deve colocar o nome da sua tabela da base de dados... */
set_magic_quotes_runtime(0);
$con=mysql_connect($mysql_host,$mysql_username,$mysql_passwd) OR DIE (mysql_error());
mysql_select_db($mysql_dbase,$con);
$result = mysql_query("SELECT * FROM <><><>");
?>

Funcionou não. :/

 

Nossa isso tá dificel mesmo xD.

 

Bom acho que terei que add uns codigos a mais para isso.

 

Ou vou ter que olhar outro tipo de script.

 

Acho que tem que add o script que fika dentro do <!-- -->

 

que falei acima. <!-- IF CONTEUDO INICIO -->

 

e no final <!-- END IF -->

 

 

Mais Bom obrigado a todos, Por terem respondido. http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

 

t+ pessoal.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara fica difícil eu entender o seu script pois eu fiquei confuso ai, não entendi quase nada... não estou entendendo até agora...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom o script

 

<tr>

<th class=""></th>

<td><a target="_blank" href="./download////" title=" Cliques"></a></td>

<th><?=$ver['date'];?></th>

<th><a target="_blank" href=""></a></th>

<th></th>

</tr>

Precisa de um codigo para iniciar o resultado do banco de dados.

 

E para terminar também.

 

Estou olhando uns tutoriais aqui no google. Só que não estou consequindo fazer.

 

Que eu precisa fazer assim.

 

<!-- IF CONTEUDO INICIO --><tr>

<th class=""></th>

<td><a target="_blank" href="./download////" title=" Cliques"></a></td>

<th><?=$ver['date'];?></th>

<th><a target="_blank" href=""></a></th>

<th></th>

</tr><!-- ENDIF -->

Que estes codigos if conteudo inicio serve para mostra o script onde começar a iniciar e o end if para finalizar.

 

Veja no Tema do phpbb3. Vou postar um pedaço para você ver. Que tem este script.

 

<!-- IF S_DISPLAY_ONLINE_LIST -->

<br clear="all" />

 

<table class="tablebg" width="100%" cellspacing="{$CA_SPACING}">

{$CA_CAP_START}<!-- IF U_VIEWONLINE --><a href="{U_VIEWONLINE}">{L_WHO_IS_ONLINE}</a><!-- ELSE -->{L_WHO_IS_ONLINE}<!-- ENDIF -->{$CA_CAP_END}

<tr>

<!-- IF LEGEND -->

<td class="row1" rowspan="2" align="center" valign="middle"><img src="{T_THEME_PATH}/images/whosonline.gif" alt="{L_WHO_IS_ONLINE}" /></td>

<!-- ELSE -->

<td class="row1" align="center" valign="middle"><img src="{T_THEME_PATH}/images/whosonline.gif" alt="{L_WHO_IS_ONLINE}" /></td>

<!-- ENDIF -->

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mete um _ nesse conteudo inicio.

conteudo_inicio

 

Pode ser que S_DISPLAY_ONLINE_LIST do exemplo, seja um array, por isso não esteja funcionando seu CONTEUDO INICIO.

Sei lá, só um palpite. :P

 

Eu gostaria de fazer um sistema de templates também.

Se você conseguiu resolver, dá um update aqui. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.