Как мне интегрировать страницу PHP с phpBB3? - PullRequest
1 голос
/ 13 июня 2011

Я прочитал руководство Добавить новую пользовательскую страницу в 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 Ответ

1 голос
/ 16 июня 2011

Хорошо, я понял правильный способ сделать это сейчас:

После выполнения урока по адресу: 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.

...