Поддержка Проблемы и решения Вывод шапки WP-блога в phpbb форуме

  • Всем добра и здоровья.
    Имеется WP-блог. В корневой директории есть папка forum, в которую установлен phpbb форум. Оба работают нормаль.
    Форум является форумом блога и должен быть «встроенным» в блог. Фактически тут вырисовывается одна задачка: вывести шапку блога в шапке форума.
    phpbb строит странички по шаблонам. нужный мне (как я понял) — overall_header.html. С ним и идет потеха.

    Если вставить get_header(), то конечно ничего не выйдет, такая функция неизвестна.
    Если подключить файл, скажем wp-config, то он подключает дальше по цепочке остальных и в итоге вылезает ошибка из файла wp-includes/functions.php:
    Cannot modify header information — headers already sent by (output started at /cache/tpl_prosilver_overall_header.html.php:1)
    Код включения размещен даже до доктайпа.

    Как же вызвать get_header() и вывести заголовок?

Просмотр 7 ответов — с 1 по 7 (всего 7)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    За ссылку спасибо, где-то освежила мозг.
    Но проблема та же, как и описана выше: при вставке require(../wp-blog-header) в конечном итоге в functions.php вызывается header(»), после чего выскакивает
    [phpBB Debug] PHP Notice: in file /home/openpaper/public_html/wp-includes/functions.php on line 3125: Cannot modify header information — headers already sent by (output started at /cache/tpl_prosilver_overall_header.html.php:2)

    В этой строке хедер меняет кодировку. Неужто стоит лезть ковырять functions.php… Очень не хочется менять исходники движка…

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Подключать WordPress нужно до вывода на экран, который, судя по всему, происходит в tpl_prosilver_overall_header.html.php. Или это просто BOM?

    Изначально имеется в папке шаблонов форума phpbb файл overall_header.html, содержащий ХТМЛ с вставками вроде {xxx}
    Затем он обработчиком шаблонов преобразуется в tpl_prosilver_overall_header.html.php
    В идеале, конечно, надо править первый файл. Пока, для быстродействия, меняю как раз tpl_prosilver_overall_header.html.php.
    Подключение делал само собой прежде всего, даже до DOCTYPE
    Поиграв с позиционированием, получил ошибку:
    Error establishing a database connection

    Мой вывод: если спозиционировать подключение в другом месте, данное сообщение выводится, ну а потом, конечно, какой уж там header.

    Тогда возникает следующая ситуация. Блог WP работает отлично. Я подключаю файл из него (wp-blog-header), который цепляет всех друзей. Получается, что не меняя нигде никаких настроек, база данных уже не хочет сотрудничать.

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    1. Установил phpBB.
    2. Разрешил в настройках использовать PHP в шаблонах.
    3. Создал в WordPress шаблон get-header.php в каталоге темы:
      <?php
      /*
      Template Name: Get Header
      */
      get_header();
      ?>
    4. Создал страницу с ярлыком get-header и назначил ей этот шаблон.
    5. Добавил фрагмент в styles/prosilver/template/overall_header.html:
      <!-- PHP -->
      echo file_get_contents('http://wordpress/get-header/');
      <!-- ENDPHP -->
    6. Удалил файл tpl_prosilver_overall_header.html.php из кеша.
    7. Заголовок отобразился.

    Спасибо Вам огромное, Сергей.
    Пока действительно внутреннюю страничку вордпресса не сделать — не работает.
    Интересность. Если в корне вордпресса сделать файл dummy.php, в котором подключить функции и вывести хедер. то blog/dummy.php отображает хеадер, а если же именно этот думми.пхп вызвать вышеописанной функцией внтури пхпбб, не работает ни в какую 🙂
    Еще раз спасибо. Вопрос закрыт

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Поиграв с позиционированием, получил ошибку:
    Error establishing a database connection

    phpBB затирает переменную $table_prefix, поэтому вместе они не работают.

Просмотр 7 ответов — с 1 по 7 (всего 7)
  • Тема «Вывод шапки WP-блога в phpbb форуме» закрыта для новых ответов.