View Full Version : Substituição das frames, layout dos websites


vjoe
10-04-2007, 22:09
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?

shello
10-04-2007, 23:38
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...

OldMan
11-04-2007, 00:18
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

shello
11-04-2007, 00:24
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...

OldMan
11-04-2007, 00:32
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

OldMan
11-04-2007, 18:47
:-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

OldMan
11-04-2007, 19:06
:-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

vjoe
11-04-2007, 19:36
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.

rszeus
11-04-2007, 21:38
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!

vjoe
21-04-2007, 19:35
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.

Demio
24-04-2007, 12:09
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

rszeus
24-04-2007, 14:34
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&oacute;s </a></li>
<li><a href="./prototypes.php" class="nav">Prot&oacute;tipos</a></li>
<li><a href="./reports.php" class="nav">Relat&oacute;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&ccedil;&atilde;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.

vjoe
24-04-2007, 19:51
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 ".

rszeus
25-04-2007, 21:57
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!

rszeus
23-06-2007, 00:06
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&oacute;s </a></li>
<li><a href="./prototypes.php" class="nav">Prot&oacute;tipos</a></li>
<li><a href="./reports.php" class="nav">Relat&oacute;rios</a></li>
</ul>
<? } ?>

E depois é só chamar este pedçado de código html com:
<? menu(); ?>