gimbras Posted December 5, 2005 at 06:18 PM Report #8110 Posted December 5, 2005 at 06:18 PM Alguém me dá umas luzes básicas sobre como colocar páginas de template .TPL a funcionar num ficheiro .PHP Explicando melhor, temos a index.php e depois temos uns ficheiros .TPL da header, do corpo (main), e do footer. Eu costumo fazer assim: <?PHP include("path/header.php"); ?> Mas queria usar mesmo ficheiros template, mas não sei como se incluem no código. revX: já tinhamos falado disto, se puderes explicar com um mini-tutorial (se for preciso tanto) agradecia. Quem quiser ajudar força e obg. Cumps. Redcodestudio - Programação Web - http://www.redcodestudio.com/
milks Posted December 6, 2005 at 04:09 AM Report #8164 Posted December 6, 2005 at 04:09 AM Sem ter a certeza se é isto que queres, podes incluir da mesma forma, usando o include ou o require, no ficheiro .tpl deves ter as variaveis e depois é so definires os valores que essas variaveis vao ter antes de incluires o ficheiro. ficheiro.php <?php $var1 = 'Hello World!'; require_once('template.tpl'); ?> template.tpl <?php <html> <body> <h1><?=$var1;?></h1> </body> </html> ?> Penso que possas fazer assim, mas existem outras formas, talvez a forma que o revX te explique seja melhor, pois esta apenas estás a incluir na mesma o ficheiro, simplesmente as variaveis são definidas noutro lugar. Podes também usar outra forma de escrever as variaveis, usando tipo #var1#, leres o ficheiro e substituires #var1# pelo valor de $var1. O Smarty funciona mais ou menos assim, mas tem uma sintaxe diferente de php para os templates, a vantagem é que estas a separar a informação da estrutura, e depois é só separares a estrutura do design (usando CSS) para teres um sistema mais fácil de manter 😄
revX Posted December 6, 2005 at 06:55 PM Report #8193 Posted December 6, 2005 at 06:55 PM hm... eu costumo fazer com tema.php mas tenho a certeza que que fazer a função com php num tpl é o mesmo.... :twisted: Aqui vai... Criamos a pasta temas (é um bom começo :-D ) depois criamos a pasta do nosso tema para depois ser facil trocar de tema, vamos chamar-lhe base.... ora bem dentro da pasta 'base' vamos criar um ficheiro chamado tema.tpl e vamos fazer algo do genero de : <?php function cabecalho(){ ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-15" /> <link rel="stylesheet" href="temas/base/estilo.css" type="text/css" media="all" /> <title>Tema Base</title> </head> <body> <?php } function conteudo(){ ?> [ Aqui não metam nada pois é onde fica o conteúdo, simplesmente apaguem este comentário ] <?php } function rodape(){ ?> </body> </html> <?php } ?> Eu pus o código para o file estilo.css pois presumo que o usem :? De seguida no index.php ou onde quisermos que seja usado o tema na raiz do script pomos assim : <? /* Ficheiro Incluido *********************/ session_start(); include ("temas/base/tema.tpl"); /*************************************/ cabecalho(); ?> <?php conteudo(); ?> <? //Aqui podem inclusive fazer a variação e ligação às paginas de conteúdo //Aqui fica o exemplo, apesar de poderem por aqui o conteúdo mas dá mais trabalho e é menos organizado... // os urls com isto ficarão index.php?ver=pagina switch ($ver) { case 'pagina1': include( 'pagina1.php' ); break; case 'pagina2': include( 'página2.php' ); break; default: echo "Página inexistente"; break; } ?> <?php rodape(); ?> E aqui fica a leitura do tema... lógico que podiamos fazer vários ficheiros, incluir todos num ficheiro chamado index.php e fazer a ligação a esse file... como no phpBB... se quiserem um exemplo com mais de um ficheiro tpl digam :twisted: Próps... Atenção isto foi testado - P.s. a extensao nao interessa ate podiamos lhe chamar tema.portugal-a-programar roftl :-D
gimbras Posted December 6, 2005 at 11:03 PM Author Report #8229 Posted December 6, 2005 at 11:03 PM Mta boa ajuda, mto obg a todos 😄 Que porreirinho. Vou já experimentar. Redcodestudio - Programação Web - http://www.redcodestudio.com/
deathseeker25 Posted December 7, 2005 at 10:28 PM Report #8273 Posted December 7, 2005 at 10:28 PM Bom tutorial. Inamovível. 😄 Obrigado pelo trabalho, mais uma vez, revX.
alfatek Posted February 19, 2006 at 01:20 AM Report #14563 Posted February 19, 2006 at 01:20 AM O ideal é mesmo usar algo como o smarty: smarty.php.net que não é muito dificil de usar e tem vários addons para ajudar a fazer uma quantidade de coisas (formularios por exemplo). E isso sim é um sistema de templates completo, que obriga a seguires uma boa separaçao e organização do código. E já agora, o desafio é n meterem código html em nenhum ficheiro .php, apenas nos .tpl's 😕 [ok, n digo nenhum, mas muito muito pouco]
gimbras Posted March 1, 2006 at 07:12 PM Author Report #16237 Posted March 1, 2006 at 07:12 PM Olha o alfatek 👍 Welcome. Vou seguir tmb o teu conselho. Conselhos de um mestre que aprendeu tudo sozinho e bem falem sempre a pena!!! Redcodestudio - Programação Web - http://www.redcodestudio.com/
gimbras Posted March 2, 2006 at 12:00 AM Author Report #16296 Posted March 2, 2006 at 12:00 AM Está-me a dar este erro: Notice: Undefined variable: ver in d:\os meus documentos\servidor\www\testes\index.php on line 17 Página inexistente Parece que há um problema com a variavel ver. Segui todos os passos que o revX disse. Deve faltar qualquer coisa. Peço ajuda. Obg. Redcodestudio - Programação Web - http://www.redcodestudio.com/
gimbras Posted March 3, 2006 at 01:20 AM Author Report #16496 Posted March 3, 2006 at 01:20 AM Então pessoal ninguém me dá umas luzes? Obg. Redcodestudio - Programação Web - http://www.redcodestudio.com/
milks Posted March 4, 2006 at 05:59 PM Report #16785 Posted March 4, 2006 at 05:59 PM Isso é da variavel $ver não estar definida, e também porque para ires buscar uma variavel ao URL, tens de usar $_GET['ver'] ou seja, o switch deve ficar assim <? switch($_GET['ver']) [...etc etc...] ?> Mas para teres a certeza que não dá mais esse erro, e que $ver fica sempre com algum valor deves adicionar mais uma linha antes do switch <? $ver = isset($_GET['ver']) ? $_GET['ver'] : 'pagina1.php'; switch($ver) [... etc etc ...] ?> Para explicar, na 1ª linha o que faz é uma verificação booleana, se estiver definida a var $_GET['ver'] então a var $ver fica com o valor dela (o que está antes dos ':') se não, fica com o valor 'pagina1.php' Acho que isto deve resolver o teu problema, se não, posta, que o pessoal dá uma vista de olhos 🙂
gimbras Posted March 5, 2006 at 02:45 PM Author Report #16886 Posted March 5, 2006 at 02:45 PM Obg, vou experimentar e já digo qq coisa. Redcodestudio - Programação Web - http://www.redcodestudio.com/
Gurzi Posted August 4, 2006 at 07:04 PM Report #42274 Posted August 4, 2006 at 07:04 PM Vou ver se percebi bem... Eu queria fazer uma coisa, que era um software geral de controlo de Papelaria.. mas que não fosse específico e open source, ok, mas o que queria realmente é que cada empresa tivesse um painel de administração que podia colocar lá um template e a página inicial(index.php) aparecia com o template que essa empresa queria, ou seja logo da empresa etc etc... Outra dúvida mas sem ter a ver com isto, se eu quiser implementar um sistema Php/ Sql mas que não use a Internet(motivos de segurança) ou seja é tudo feito em rede, que preciso de fazer ? Imaginem que um computador Linux faz de servidor na escola e tenho um na papelaria ligado por um cabo de rede , como é que indico no programa que estou a desenvolver por exemplo include "tiago.php" estando o tiago.php na pasta /var/www/html do servidor e como é que esse pc que é o client se liga a lá para ver os conteudos ?
kingless Posted August 4, 2006 at 07:40 PM Report #42291 Posted August 4, 2006 at 07:40 PM Outra dúvida mas sem ter a ver com isto, se eu quiser implementar um sistema Php/ Sql mas que não use a Internet(motivos de segurança) ou seja é tudo feito em rede, que preciso de fazer ? Imaginem que um computador Linux faz de servidor na escola e tenho um na papelaria ligado por um cabo de rede , como é que indico no programa que estou a desenvolver por exemplo include "tiago.php" estando o tiago.php na pasta /var/www/html do servidor e como é que esse pc que é o client se liga a lá para ver os conteudos ? Podes desenvolver um sistema php/sql localmente sem internet mas acho que para outras pessoas verem o site tens que ter acesso a internet, só por um cabo de rede acho que não da. Quanto ao include podes fazer include '/var/www/html/tiago.php'; Espero ter ajudado...
AriOps Posted August 4, 2006 at 09:51 PM Report #42346 Posted August 4, 2006 at 09:51 PM Para acederes ao pc em rede (servidor) basta fazeres //nomedopc e ficas logo com a página principal do server. Cumps Daniel Correia
Gurzi Posted August 4, 2006 at 11:31 PM Report #42388 Posted August 4, 2006 at 11:31 PM Valeu a ajuda 😉
Procrastinator Posted October 9, 2006 at 02:27 PM Report #56056 Posted October 9, 2006 at 02:27 PM Usa mas é o DreamWeaver! Com o sistema de library e template é o melhor, na minha opiniao é claro 👍
REVISTAPHP Posted December 28, 2006 at 03:34 PM Report #72946 Posted December 28, 2006 at 03:34 PM Tenho dois artigos sobre Smarty Parte 1 http://www.revistaphp.com.br/artigo.php?id=24 Parte 2 http://www.revistaphp.com.br/artigo.php?id=44 Espero ter ajudado jQuery Magazinewww.jquerymagazine.com.br-------------------------------Revista PHPwww.revistaphp.com.br
cyclop Posted January 11, 2008 at 09:40 AM Report #159219 Posted January 11, 2008 at 09:40 AM Ora viva se pretendes desenvolver um sistema de templates, o básico que se deve fazer será: -> carregar um ficheiro -> defenir variaveis -> Substituir as variaveis pelo que se deseja.... -> criar outras opções, loops apartar de arrays... etc... qqr duvida, é so avisar! "Quando eu for grande quero ser como o Celso"
Neptune(o verdadeiro) Posted July 2, 2008 at 10:22 PM Report #195117 Posted July 2, 2008 at 10:22 PM Bem, eu criei isto para o meu site, pode ser que vos ajude 😛 function tema_cima() { global $ss_uri; header("Content-Type: text/html; charset=iso-8859-1"); if (!$ss_uri) { ($r = mysql_query("SELECT uri FROM temas WHERE id=1")) or die(Erro, não é possível aceder à bd); ($a = mysql_fetch_array($r)) or die(Erro, não é possível aceder à bd); $ss_uri = $a["uri"]; } require_once("temas/" . $ss_uri . "/tema_cima.php"); } function tema_baixo() { global $ss_uri; if (!$ss_uri) { ($r = mysql_query("SELECT uri FROM temas WHERE id=1")) or die(Erro, não é possível aceder à bd); ($a = mysql_fetch_array($r)) or die(Erro, não é possível aceder à bd); $ss_uri = $a["uri"]; } require_once("temas/" . $ss_uri . "/tema_baixo.php"); }
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now