View Full Version : Substituição das frames, layout dos websites
Já vi que há aqui muitos webcoders e webdesigners por isso creio ter escolhido bem o local para expor esta dúvida que já me acompanha há algum tempo. :)
O que é que vocês usam para poupar trabalho e fazer com que a página vá buscar, por exemplo, um menu a um ficheiro de maneira que quando o quiserem alterar, não tenham que ir a todas as páginas. Eu já vi que há duas tags do PHP porreiras para isso, a include e a require, mas não creio que seja isso que o pessoal use, ou é?
Eu com frames o que fazia era criar uma página com uma iframe no meio e todas as páginas do site abriam nessa iframe. Não dá para fazer algo semelhante mas sem frames?
Se as páginas forem em PHP, deve-se usar PHp. Acho que simplifica muita coisa.
Não sendo, pode-se usar javascript. Chama-se o ficheiro .js onde se quer o menu, que é composto por vários document.write(), que no fundo compõem o menu em HTML.
Não me parece que seja uma solução muito eficaz, mas penso que funcione.
Frames já deixaram de ser tão usadas. Estão... hum... demodé.
Penso que actualmente o uso destas faça mais sentido apenas em menus muito logos, como é o caso de documentações (referências, tipo a do MSDN), ou assim...
Frames já deixaram de ser tão usadas. Estão... hum... demodé.
Penso que actualmente o uso destas faça mais sentido apenas em menus muito logos, como é o caso de documentações (referências, tipo a do MSDN), ou assim...
mesmo para esses casos ha as DIV com a opcao de scroll activa e que la dentro pode-se fazer na mesma um include do menu ou doutra coisa qualquer
mesmo para esses casos ha as DIV com a opcao de scroll activa e que la dentro pode-se fazer na mesma um include do menu ou doutra coisa qualquer
Mas sempre com JS, suponho...
eu de JS nao tenho grandes conhecimentos, nao sei se ha alguma funcao que faca isso, mas se ja se tiver a usar uma linguagem tipo PHP ou ASP (ja fiz isto com ASP e resultou bem) mais vale aproveitar o poder de uma delas
SoundSurfer 11-04-2007, 11:21 http://www.boutell.com/newfaq/creating/include.html
Este link, para coisas básicas.
lfdesign 11-04-2007, 12:47 Penso que o "include" do PHP serve também para isso... Pelo menos eu já usei algumas vezes e é bastante prático...
Squillace 11-04-2007, 17:21 Mas sempre com JS, suponho...
Não, não é preciso. Basta criar um div com os valores adequados nas propriedades CSS (overflow:scroll/auto/etc.).
ruimoura 11-04-2007, 18:06 Não, não é preciso. Basta criar um div com os valores adequados nas propriedades CSS (overflow:scroll/auto/etc.).
Mas isso é alto filme, e dá mais trabalho do que o que vale. Para essas coisas o melhor é mesmo js
:-D da um trabalho desgracado
Squillace 11-04-2007, 18:51 Mas isso é alto filme, e dá mais trabalho do que o que vale. Para essas coisas o melhor é mesmo js:-D da um trabalho desgracadoVocês estão-se a passar?
Fazer um <div style="overflow: auto;">o conteúdo vai aqui</div> dá mais trabalho que um JS? Epá, vocês nem as pensam... LOOOOOOOOOOOOOOOOOOOOOOOOOOL
:-D da um trabalho desgracado
(nem com o smile... ;))
Squillace 11-04-2007, 19:24 Ah desculpa. Visto que o post do Ruimoura não parecia irónico levei tudo à frente. E pensei que o smiley era para "gozar" com o método. Mas a minha resposta mantém-se... não te sintas é visado. :D
O que acham de ter uma função "menu" num ficheiro, fazer include(ficheiro.php) e executar a função menu no site?
Parece-me ser uma boa forma.
ruimoura 11-04-2007, 19:59 Ah desculpa. Visto que o post do Ruimoura não parecia irónico levei tudo à frente. E pensei que o smiley era para "gozar" com o método. Mas a minha resposta mantém-se... não te sintas é visado. :D
Peço é eu desculpa pela carga de ironia tão elevada :002:
Squillace 11-04-2007, 20:33 O teu post era irónico? Poças...
ruimoura 11-04-2007, 21:25 O teu post era irónico? Poças...
Pá, o pessoal tem o vício de usar jscript à parva, para tudo e para nada (tipo como à uns tempos se usava tabelas até para tirar a caspa e lavar os dentes), portanto sim, era irónico.
O que acham de ter uma função "menu" num ficheiro, fazer include(ficheiro.php) e executar a função menu no site?
Parece-me ser uma boa forma.
Esta é a solução que eu utilizo em qualquer página que faço.
Quer para o menu, quer para qualquer coisa que apareça repetidamente em cada página.
Ex.: header(), menu(), rodape()
Parece-me ser das melhorzinhas, senão a melhor.
Se existir melhor, começo a utilizar melhor. :)
Squillace 12-04-2007, 00:10 Pronto, é que não pareceu nada. Concordo contigo quando dizes que o pessoal abusa no Javascript. É nisso, nos GIFs animados e nos contadores de visitas.
msdevweb 14-04-2007, 18:47 Já vi que há aqui muitos webcoders e webdesigners por isso creio ter escolhido bem o local para expor esta dúvida que já me acompanha há algum tempo. :)
O que é que vocês usam para poupar trabalho e fazer com que a página vá buscar, por exemplo, um menu a um ficheiro de maneira que quando o quiserem alterar, não tenham que ir a todas as páginas. Eu já vi que há duas tags do PHP porreiras para isso, a include e a require, mas não creio que seja isso que o pessoal use, ou é?
Eu com frames o que fazia era criar uma página com uma iframe no meio e todas as páginas do site abriam nessa iframe. Não dá para fazer algo semelhante mas sem frames?
Partilho da mesma opinião quanto aos frames, agora quanto a paginas/menus a usar em php, eu uso bastantes vezes a separaçao que já aqui foi dita.
normalmente, em muitos sites, tenho head, menu, content e footer.
defino as cores e aspecto de tudo em ficheiros como head.cfg, menu.cfg, footer.cfg depois no decorrer do desenvolver da pagina é só chamar as devidas configurações atraves do include ou se quiseres do require, alem de te tornar o código mais limpo, é sem duvida uma maneira de teres maior controlo sobre alterações sem grandes trabalhos.
Um abraço.
Rob-Zombie 21-04-2007, 18:24 Olá alguem pode-me fazer basicamente "um desenho" ? lol
Estava aqui a tentar o que voces estão a referir... mas ando meio atrapalhado. Dêm-me um exemplo simples para eu ver a sintaxe do seguinte caso.
Tenho um ficheiro chamado menu.cfg ... que tem lá dentro o código de uma tabela com 2 linhas escritas de "blablabla"
Agora quero chamar esse mesmo ficheiro para mostrar a tabela dentro de uma pagina que eu criei chamada yeye.html.
Já andei por aqui a googlar mas tudo o q experimentei não deu resultado... se poderem dar uma ajudinha!
Para incluires o ficheiro menu.cfg fazes um ficheiro (por exemplo, index.php) com:
<html>
<body>
<?php include('menu.cfg'); ?>
</body>
</html>
Aproveita e dá uma vista de olhos aqui (http://w3schools.com/php/php_includes.asp) também. ;)
Squillace 22-04-2007, 01:25 Epá isto pode ser ignorância minha mas para quê usar o raio do formato .CFG? Não basta fazer um include dum simples ficheiro HTML ou de um ficheiro PHP?
Aparicio 22-04-2007, 02:03 Epá isto pode ser ignorância minha mas para quê usar o raio do formato .CFG? Não basta fazer um include dum simples ficheiro HTML ou de um ficheiro PHP?
A extensão pode ser qualquer uma, provavelmente nestes casos utiliza-se outras extensões que não .html ou .php para identificar mais facilmente os ficheiros com os conteúdos para incluir nas páginas e as páginas propriamente ditas.
Má idea. Se um ficheiro é php deve ter sempre uma extensão php. Caso contrário será sempre possível para um user malicioso ver o vosso código.
Podem é por tipo inc.php ou cfg.php. Mas nunca sem o .php
Vou deixar aqui um exemplo:
Ficheiro inc.php:
<?php
function menu(){ ?>
<ul class="navbar">
<li><a href="./index.php" class="nav">Home</a></li>
<li><a href="./about.php" class="nav">Sobre nós </a></li>
<li><a href="./prototypes.php" class="nav">Protótipos</a></li>
<li><a href="./reports.php" class="nav">Relatórios</a></li>
</ul>
<? } ?>
<?php
function last_update() { ?>
<script language="javascript" type="text/javascript">
<!-- hide script begin
var m = document.lastModified;
var p = m.length-8;
document.write(m.substring(p, 0));
// End --> </script>
<? } ?>
E depois em cada uma das página em que eu precise do menu ou da data da ultima modificação faço:
Ficheiro index.php
<?php include "cenas.php" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>IHMaq</title>
<link rel="stylesheet" type="text/css" href="screenstyle.css" /></head>
<body>
<div class="container">
<div>
<?php
menu();
?>
aqui leva o bl bla todo
<p>Última actualização: <? last_update(); ?> </p>
</div>
</body>
</html>
Espero ter ajudado.
E sim, também penso que convém a extenção do ficheiro ser .php.
Já agora, porque é que não metem o ficheiro todo como PHP e usam echos em vez de abrirem e fecharem o código PHP sempre que precisam de fazer algo?
É por o conteúdo do echo (logo, o HTML) ficar todo da mesma cor no Notepad++ e por isso ser mais chato fazer o HTML? :-D
Aparicio 24-04-2007, 20:22 Já agora, porque é que não metem o ficheiro todo como PHP e usam echos em vez de abrirem e fecharem o código PHP sempre que precisam de fazer algo?
É por o conteúdo do echo (logo, o HTML) ficar todo da mesma cor no Notepad++ e por isso ser mais chato fazer o HTML? :-D
Olha que sim, em grandes códigos de HTML para mim é muito mais cómodo pô-lo fora do PHP, e sempre não tenho de usar ' em vez de ".
Já agora, porque é que não metem o ficheiro todo como PHP e usam echos em vez de abrirem e fecharem o código PHP sempre que precisam de fazer algo?
É por o conteúdo do echo (logo, o HTML) ficar todo da mesma cor no Notepad++ e por isso ser mais chato fazer o HTML? :-D
É muito mais simples trabalhar o código HTML do que com os echos. Se utilizares por exemplo o dreamweaver que dá para ires trabalhando no layout, aí então fica mais simples utilizar código HTML do que echos.
E com os echos existe algumas coisas que tens de fazer diferente do HTML, como o caso das barras e mais alguns afins.
Parece-me bem mais simples assim.
infinity 22-06-2007, 10:19 É pá para tudo isso q voces falam...
Porque n usam xsl/xml???
Voces estao c tanto trabalho a estruturar os varios ficheiros php... a fazer varias funcoes...
No xml colocam tudo tipo uma BD no xml e depois no xsl e mt mt simples aceder aos conteudos...
por exemplo:
no xml:
<menu>
<link_img>imagens/folder_home.png</link_img>
<url>./index2.php?content=home</url>
<name>Página Inicial</name>
</menu>
<menu>
<link_img>imagens/kate.png</link_img>
<url>./index2.php?content=missao</url>
<name>Missão</name>
</menu>
<menu>
<link_img>imagens/kedit.png</link_img>
<url>./index2.php?content=estatutos</url>
<name>Estatutos</name>
</menu>
no xsl basta escrever basta fazer uma funcao do genero:
<xsl:template name="menu">
<xsl:element name="td1">
<xsl:element name="img">
<xsl:attribute name="src">
<xsl:value-of select="link_img/text()"/>
</xsl:attribute>
</xsl:element>
<xsl:element "a">
<xsl:attribute name="href">
<xsl:value-of select="url"/>
<xsl:attribute>
<xsl:value-of select="name"/>
</xsl:element>
</xsl:element>
</xsl:template>
na minha opiniao o xsl/xml é muit mais pratico de trabalhar no que estao a falar!
Espero ter ajudado.
Alguma duvida:
http://www.w3schools.com/
Abraços!
Não conheço nem trabalho com xsl/xml, mas tenho de exprimentar a ver se dá jeito.
De qualquer forma, parece-me à vista mais simples como eu utilizo o php:
<?php
function menu(){ ?>
<ul class="navbar">
<li><a href="./index.php" class="nav">Home</a></li>
<li><a href="./about.php" class="nav">Sobre nós </a></li>
<li><a href="./prototypes.php" class="nav">Protótipos</a></li>
<li><a href="./reports.php" class="nav">Relatórios</a></li>
</ul>
<? } ?>
E depois é só chamar este pedçado de código html com:
<? menu(); ?>
|
|