Как мне интегрировать страницу PHP с phpBB3?
Я прочитал руководство по добавлению новой пользовательской страницы в phpBB несколько раз, но все еще не могу заставить это работать.
Я пытаюсь интегрировать этот календарь с phpBB3. Я хочу, чтобы код календаря имел доступ к переменным phpBB, поэтому он будет позволять только зарегистрированным пользователям добавлять новые события.
В приведенном выше руководстве по phpBB рекомендуется создать короткую страницу PHP, которая устанавливает сеанс phpBB и затем вызывает статический шаблон HTML, который использует Server Side Includes (SSI) для извлечения заголовков phpBB и т. Д. Но моя страница календаря - это не просто статический HTML также включает в себя код PHP. Я не могу получить вывод PHP страницы календаря для отображения между заголовком phpBB и нижним колонтитулом. HTML-код календаря отображается правильно, но PHP не выполняется. Похоже, что рекомендуемый метод просто не позволяет выполнять код PHP в шаблоне.
Подводя итог: я следовал руководству выше, но заменил "aboutus_body.html" на мой "calendar.php". Вместо правильного отображения календаря с верхним и нижним колонтитулами phpBB я видел только HTML-части calendar.php, отображаемые с верхним и нижним колонтитулами phpBB. Нет календарного вывода PHP было видно.
1 ответ
Хорошо, я понял правильный способ сделать это сейчас:
После изучения учебника по адресу: http://wiki.phpbb.com/Practical.Add_custom_page
Скопируйте весь код календаря в aboutus.php (в учебнике - файл php, в котором настроен сеанс phpBB, и URL-адрес, по которому будет осуществляться доступ к странице) перед строкой $template->set_filenames
Но ключ в следующем: вместо вывода HTML с помощью "print" или "echo", сохраните весь HTML в переменной, например, $calendar_html
Затем, когда вы закончите создание страницы, используйте этот код перед строкой $template->set_filenames:
$template->assign_vars(array(
'CALENDAR_HTML' => $calendar_html,
)
);
Затем в шаблоне (aboutus_body.html в руководстве) загрузите переменную следующим образом:
{CALENDAR_HTML}
... вместо содержимого HTML.