Ordem de execução do PHP: Cabeçalho, página principal e rodapé
Este tutorial para desenvolvedores mostra, com um layout básico usando bx_Header.html, index.html e bx_Footer.html, quando os diferentes scripts PHP são executados. Você aprenderá como o conteúdo de $LayoutHTML é ampliado passo a passo e onde pode fazer alterações dependentes da página ou globais.
Pré-requisitos e objetivo
Para este tutorial de desenvolvimento, você deve saber como o CMS bluetronix compõe uma página a partir do seu layout, do cabeçalho, da página principal e do rodapé. Vamos mostrar a você, em que ordem os scripts PHP dessas áreas são executados e quais partes de $LayoutHTML já estão carregadas.
No exemplo, o layout básico consiste nos arquivos do CMS bx_Header.html, index.html e bx_Footer.html. A página principal index.html representa a página HTML chamada.
Layout básico: Cabeçalho, página principal e rodapé
O layout básico determina a ordem em que as três áreas são incluídas. No exemplo mostrado, você encontra a definição do layout na tabela 00_layout.
O trecho relevante do layout é assim:
__DB_Layout_/bx_Header.html__
<main>
__DB_Layout_Main__
</main>
__DB_Layout_/bx_Footer.html__
O primeiro marcador inclui bx_Header.html. Dentro do elemento main, o __DB_Layout_Main__ inclui a página atualmente acessada, no nosso exemplo index.html. Em seguida, é incluído bx_Footer.html.
Embora a definição do layout contenha as três áreas, o conteúdo HTML específico para o código PHP de cada área é carregado gradualmente em $LayoutHTML.
1. O código PHP do cabeçalho é executado primeiro
Abra no Gerenciador de Arquivos o arquivo bx_Header.html. Através do Código PHP, você pode editar o código PHP desta área.
O cabeçalho é a primeira área da página a ser carregada. Enquanto seu código PHP é executado, $LayoutHTML contém apenas o HTML de bx_Header.html.
PHP-Code: bx_Header.html
$LayoutHTML enthält:
bx_Header.html
Aqui você pode, por exemplo, substituir marcadores do cabeçalho ou preparar a navegação. O conteúdo HTML real de index.html ou bx_Footer.html ainda não pode ser acessado por $LayoutHTML neste ponto.
2. O código PHP da página principal é executado em seguida
Após o cabeçalho, o CMS carrega a página principal chamada, aqui index.html, e executa seu código PHP. Nesse momento, $LayoutHTML contém tanto o código HTML do cabeçalho quanto o código HTML da página principal.
PHP-Code: index.html
$LayoutHTML enthält:
bx_Header.html
index.html
Assim, o código PHP da página principal pode substituir não apenas seus próprios marcadores, mas também alterar marcadores já existentes dentro do cabeçalho.
Um exemplo: se seu cabeçalho contém o marcador __HeaderClass__, você pode substituí-lo a partir da página principal.
$LayoutHTML = str_replace("__HeaderClass__","active",$LayoutHTML);
Dessa forma, uma determinada página principal pode, por exemplo, marcar seu item de menu dentro do cabeçalho já carregado como ativo.
O rodapé ainda não foi carregado neste momento. Portanto, seu conteúdo HTML ainda não pode ser alterado de maneira confiável através de $LayoutHTML.
3. O código PHP do rodapé é executado por último
Por último, o CMS carrega bx_Footer.html e executa seu código PHP. Agora $LayoutHTML contém os conteúdos HTML de todas as três áreas.
PHP-Code: bx_Footer.html
$LayoutHTML enthält:
bx_Header.html
index.html
bx_Footer.html
O código PHP do rodapé pode, portanto, substituir marcadores dentro do cabeçalho, da página principal ou do rodapé, desde que eles ainda estejam presentes neste momento.
Se o HTML já carregado, por exemplo, contém o marcador __MyTitle__, você pode substituí-lo lá:
$LayoutHTML = str_replace("__MyTitle__","My Custom Title",$LayoutHTML);
O rodapé também é adequado para ajustes comuns que devem ser realizados somente após o carregamento de toda a estrutura da página.
A ordem de execução em um relance
A regra decisiva é: O PHP pode alterar os setores HTML através de $LayoutHTML apenas os que já foram carregados até aquele momento.
1. bx_Header.html
PHP sieht: Header
↓
2. index.html
PHP sieht: Header + Hauptseite
↓
3. bx_Footer.html
PHP sieht: Header + Hauptseite + Footer
Se você deseja controlar um marcador de cabeçalho a partir de uma determinada página, deve usar o código PHP dessa página principal. Se um marcador deve ser substituído em todas as três áreas já carregadas, o código PHP do rodapé, que é executado por último, é o mais indicado.
Importante para funções PHP próprias
Se você definir funções PHP próprias nas diferentes áreas, fique atento para que a mesma função não seja definida várias vezes durante uma chamada de página. Escolha nomes de funções únicos ou verifique antes da definição se a função já existe.
if(!function_exists("MyTemplateFunction")) {
function MyTemplateFunction() {
return true;
}
}
Resumo
Em nosso layout básico, primeiro o código PHP de bx_Header.html é executado, depois o código PHP de index.html e por último o código PHP de bx_Footer.html. Com cada passo, o conteúdo HTML ao qual você pode acessar através de $LayoutHTML se expande.
Coloque seu código PHP onde as áreas HTML necessárias já estão carregadas: no cabeçalho para ajustes específicos do cabeçalho, na página principal para conteúdo próprio e no cabeçalho já carregado ou no rodapé para alterações no layout já composto.
FAQ
o que os clientes nos perguntam frequentemente
Em que ordem os scripts PHP são executados?
Primeiro, o código PHP de bx_Header.html é executado, em seguida, o código PHP da página principal, por exemplo, index.html, e por último, o código PHP de bx_Footer.html.
Quais áreas HTML o $LayoutHTML contém durante o código PHP do cabeçalho?
Durante a execução do código PHP do cabeçalho, $LayoutHTML contém apenas o conteúdo HTML já carregado de bx_Header.html.
A página principal pode alterar o código HTML do cabeçalho?
Sim. Quando o código PHP da página principal é executado, o cabeçalho e a página principal já estão incluídos em $LayoutHTML. Assim, você pode, por exemplo, substituir um espaço reservado anteriormente criado no cabeçalho.
Por que o código PHP do cabeçalho ainda não pode alterar o rodapé?
O rodapé só é carregado após a página principal. Portanto, seu conteúdo HTML ainda não está presente em $LayoutHTML durante o código PHP do cabeçalho.
Quais áreas o código PHP do rodapé pode alterar?
No momento da execução do rodapé, $LayoutHTML já contém o cabeçalho, a página principal e o rodapé. Os espaços reservados ainda existentes nessas áreas podem ser substituídos.
Onde posso ver a estrutura do layout básico?
A definição do layout é exibida no exemplo na tabela 00_layout. Ela inclui bx_Header.html, a página principal atual e bx_Footer.html.
Onde posso editar o código PHP de bx_Header.html?
Selecione bx_Header.html no Gerenciador de Arquivos e abra Código PHP.
O que devo considerar ao criar funções PHP próprias no cabeçalho e na página principal?
Funções próprias não devem ser definidas várias vezes com o mesmo nome durante uma chamada de página. Use nomes exclusivos ou verifique antes da definição com function_exists() se a função já existe.