Pergunta

Eu li o guia Adicionar uma nova página personalizada ao phpBB várias vezes, mas ainda assim não consigo fazer isso funcionar.

Estou tentando integrar este calendário com phpBB3. Eu quero que o código do calendário tenha acesso às variáveis ​​phpBB, então ele só permitirá que usuários registrados adicionem novos eventos.

O guia phpBB acima recomenda a criação de uma página PHP curta, que configura a sessão phpBB e então chama um template HTML estático, que usa Server Side Includes (SSI) para puxar cabeçalhos phpBB, etc. apenas HTML estático, também inclui código PHP. Não consigo fazer com que a saída PHP da página do calendário seja exibida entre o cabeçalho e rodapé phpBB. O HTML do calendário aparece corretamente, mas nenhum PHP é executado. Parece que o método recomendado simplesmente não permite que o código PHP seja executado no modelo.

Para resumir: eu segui o guia acima, mas substituí 'aboutus_body.html' pelo meu 'calendar.php'. Em vez de ver o calendário exibido corretamente, com cabeçalho e rodapé phpBB, eu só vi as partes HTML de calendar.php exibidas com cabeçalho e rodapé phpBB. Nenhuma saída de calendário do PHP estava visível.

Foi útil?

Solução

Ok, entendi a maneira correta de fazer isso agora:

Depois de seguir o tutorial em: http://wiki.phpbb.com/Practical.Add_custom_page

Copie todo o código do calendário para aboutus.php (no tutorial, o arquivo php onde a sessão phpBB é configurada e a URL pela qual a página será acessada), antes de $ template-> set_filenameslinha

Mas a chave é: em vez de gerar o HTML com 'imprimir' ou 'echo', salve todo o HTML em uma variável, por exemplo$ calendar_html

Então, quando você terminar de construir a página, use este código antes da linha $ template-> set_filenames:

$template->assign_vars(array(
    'CALENDAR_HTML' => $calendar_html,
   )
);

Em seguida, no modelo (aboutus_body.html no tutorial), carregue a variável assim:

{CALENDAR_HTML}

... no lugar do conteúdo HTML.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top