Как интегрировать страницу PHP с phpBB3?

Я несколько раз читал руководство Добавить новую настраиваемую страницу в phpBB, но все равно не могу заставить это работать.

Я пытаюсь интегрировать этот календарь с phpBB3. Я хочу, чтобы код календаря имел доступ к переменным phpBB, чтобы только зарегистрированные пользователи могли добавлять новые события.

В приведенном выше руководстве по phpBB рекомендуется создать короткую страницу PHP, которая устанавливает сеанс phpBB, а затем вызывает статический шаблон HTML, который использует включения на стороне сервера (SSI) для извлечения заголовков phpBB и т. Д. Но моя страница календаря - это не просто статический HTML , он также включает PHP-код. Я не могу получить вывод PHP страницы календаря для отображения между заголовком и нижним колонтитулом phpBB. HTML-код календаря отображается правильно, но PHP не выполняется. Похоже, что рекомендуемый метод просто не позволяет выполнять PHP-код в шаблоне.

Подводя итог: я следовал приведенному выше руководству, но заменил aboutus_body.html на свой Calendar.php. Вместо того, чтобы видеть, что календарь отображается правильно, с заголовком и нижним колонтитулом phpBB, я видел только HTML-части файла calendar.php, отображаемые с заголовком и нижним колонтитулом phpBB. Не было видно вывода календаря PHP.


person Will Sheppard    schedule 13.06.2011    source источник


Ответы (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.

person Will Sheppard    schedule 16.06.2011