← PHP

[PHP] Como Estruturar Site

Lida 6573 vezes

Offline

STronic 
Elite
Mensagens 546 Gostos 8
Feedback +5

Troféus totais: 30
Trófeus: (Ver todos)
Mobile User Search Apple User Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3

Pessoal, estou a desenvolver um projecto em que a página tem o seguinte aspecto...


A "sidebar" e o "header" serão de conteúdo fixo, o único que irá ser alterado será o "HOME"...
Qual a melhor forma de "escrever" isto ?

Estava a pensar em criar uma página para cada "HOME" diferente, em que terão o include ao header e á SideBar... Será a opção mais viavel?

Secalhar seria de evitar "recarregar" o header e a sidebar a cada click, é possivel fazer isso (sem ser com frames :P ) ??
A sidebar irá ter dropdown menus logo era bom que não recarregasse a sidebar para não voltarem sempre ao estado inicial....
Offline

Pedro Lopes 
Beta tester
Mensagens 3568 Gostos 18
Feedback +6

Troféus totais: 32
Trófeus: (Ver todos)
Level 6 Windows User Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3

Podes usar AJAX. Mas se é por causa do drop-down, podes mudar onde ele fica em cada pagina com a opção selected.
Offline

STronic 
Elite
Mensagens 546 Gostos 8
Feedback +5

Troféus totais: 30
Trófeus: (Ver todos)
Mobile User Search Apple User Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3

Podes usar AJAX. Mas se é por causa do drop-down, podes mudar onde ele fica em cada pagina com a opção selected.

O dropdown será com jQuery e não estou muito á vontade para lhe mexer... nao sei se seria capaz...

Consegues dar uma ideia de como fazer com AJAX ?
Offline

Pedro Lopes 
Beta tester
Mensagens 3568 Gostos 18
Feedback +6

Troféus totais: 32
Trófeus: (Ver todos)
Level 6 Windows User Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3

O dropdown será com jQuery e não estou muito á vontade para lhe mexer... nao sei se seria capaz...

Consegues dar uma ideia de como fazer com AJAX ?
Com ajax serie difícil já que não sabes. O mais fácil é mesmo fazeres com iframes.
Offline

STronic 
Elite
Mensagens 546 Gostos 8
Feedback +5

Troféus totais: 30
Trófeus: (Ver todos)
Mobile User Search Apple User Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3

hmm.. thanks na mesma..
vou pesquisar ;)
Offline

Pedro Lopes 
Beta tester
Mensagens 3568 Gostos 18
Feedback +6

Troféus totais: 32
Trófeus: (Ver todos)
Level 6 Windows User Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3

hmm.. thanks na mesma..
vou pesquisar ;)

Procura na documentação do jQuery, pode ser que tenhas sorte: http://docs.jquery.com/Main_Page ;)
Offline

raugusto 
Elite
Mensagens 3145 Gostos 33
Feedback +13

Troféus totais: 31
Trófeus: (Ver todos)
Level 6 Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3 Level 2

Posso-te dar várias razões para que o header e a sidebar seja carregadas de cada vez que alguem clicka no menu...

O que eu fazia era com um include para cada um.
Offline

STronic 
Elite
Mensagens 546 Gostos 8
Feedback +5

Troféus totais: 30
Trófeus: (Ver todos)
Mobile User Search Apple User Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3

Posso-te dar várias razões para que o header e a sidebar seja carregadas de cada vez que alguem clicka no menu...

O que eu fazia era com um include para cada um.

também ja pensei melhor e realmente vai dar mais jeito assim ;) ja estou a trabalhar nesse sentido...
Offline

tonebiclas 
Membro
Mensagens 29 Gostos 0
Troféus totais: 16
Trófeus: (Ver todos)
Super Combination Combination Level 3 Level 2 Level 1 10 Posts First Post Karma Eighth year Anniversary Seventh year Anniversary

usa a técnica do template:

crias um ficheiro chamado "template.php" que terá a marcação/conteúdo igual em todas as páginas

depois crias os ficheiros relativos ao projecto 'index.php', 'carrinho.php', 'produtos.php' etc.
nesses ficheiros conterão uma variável -> $html ( p.ex. ) e metes nessa variável tudo o que quiseres imprimir na área que muda consoante as páginas, podes meter também css/javascript adicional e meta tags(keywords,description,title,etc).

no ficheiro 'template.php' irá imprimir as variáveis que tens nas restantes páginas ( ex. $html )

acho que está um pouco confuso, por isso vou deixar um exemplo:

template.php

Código: [Seleccione]
<html>
<head>
  <title>Projecto 1 <?=$titleComplement?</title>
  <?=$headComplement?>
</head>
<body>
  <div id="header">
    isto vai ser igual em todas as páginas
  </div>
  <div id="colLeft">
    isto também
  </div>
  <div id="content">
    <?=$html?>
  </div>
</body>
</html>

index.php

Código: [Seleccione]
<?php
$titleComlement 
'Bem Vindo';
$headComplement '<script>alert(1);</script>';
$html 'isto é diferente em todas as páginas';

include_once(
'template.php');
?>


espero que tenham percebido :S

cumps ;)
Offline

anjo2 
Membro
Mensagens 3020 Gostos 0
Troféus totais: 31
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

index.php
Código: [Seleccione]
<?php
  
require_once("config.php");
  
// Outras configs que precises
  
if(isset($_GET['page']) && file_exists("pages/".$_GET['page'].".php")) $pagina $_GET['page'];
  else 
$pagina "index";
?>

<html>
<?php
  
require_once("pages/head.php");
?>

  <body>
<?php
  
require_once("pages/header.php");
  require_once(
"pages/$pagina.php");
  require_once(
"pages/footer.php");
?>

  </body>
</html>

Depois fazes um .htaccess para abrires assim, deste modo é fácil no futuro andares a fazer actualizações, até para ajax se precisares, já que ficas com o conteúdo das páginas separado.

PS.: Não sei se tem erros, fiz um pouco à pressa, mas a ideia está lá.
Offline

Zed_Blade 
Membro
Mensagens 10 Gostos 0
Troféus totais: 17
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Level 3 Level 2 Level 1 10 Posts First Post Karma Eighth year Anniversary

index.php
Código: [Seleccione]
<?php
  
require_once("config.php");
  
// Outras configs que precises
  
if(isset($_GET['page']) && file_exists("pages/".$_GET['page'].".php")) $pagina $_GET['page'];
  else 
$pagina "index.php";
?>

<html>
<?php
  
require_once("pages/header.php");
?>

  <body>
<?php
  
require_once("pages/$pagina.php");
  require_once(
"pages/body.php");
?>

  </body>
</html>

Depois fazes um .htaccess para abrires assim, deste modo é fácil no futuro andares a fazer actualizações, até para ajax se precisares, já que ficas com o conteúdo das páginas separado.

PS.: Não sei se tem erros, fiz um pouco à pressa, mas a ideia está lá.

Tens aí uma coisita mal (a meu ver):
Estás a abrir o body depois de chamader o "header.php", que vai ser conteúdo e não algo referente a <head>
Offline

Pedro Lopes 
Beta tester
Mensagens 3568 Gostos 18
Feedback +6

Troféus totais: 32
Trófeus: (Ver todos)
Level 6 Windows User Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3

Tens aí uma coisita mal (a meu ver):
Estás a abrir o body depois de chamader o "header.php", que vai ser conteúdo e não algo referente a <head>
O header.php vai ser o que ele quiser...
Offline

anjo2 
Membro
Mensagens 3020 Gostos 0
Troféus totais: 31
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

Tens aí uma coisita mal (a meu ver):
Estás a abrir o body depois de chamader o "header.php", que vai ser conteúdo e não algo referente a <head>
Isso é indiferente, organizas como queres, é só o exemplo, mas já vi um erro, no else pus o index.php e não devia.
Editei e mudei umas organizações, ninguém tem de fazer como está ali, é só para tirar ideias ;)