Инструкция для
baa-lamb:
Исхожу из предположения, что поля с bbcode будут редактироваться
Для начала - грязный хак (для чистого надо больше информации)
- Код: Выделить всё
#OPEN
includes/bbcode.php
#FIND
$tpl_filename = $template->make_filename('bbcode.tpl');
#REPLACE
if (defined('EXTERNAL_BBCODE_TPL'))
{
$tpl_filename = EXTERNAL_BBCODE_TPL;
}
else
{
$tpl_filename = $template->make_filename('bbcode.tpl');
}
Во всех файлах, использующих bbcode:
- Код: Выделить всё
define('IN_PHPBB', true);
require_once('./forum/includes/bbcode.php');
В тех файлах, где будет отображаться результат:
- Код: Выделить всё
define('EXTERNAL_BBCODE_TPL', './forum/templates/subSilver/bbcode.tpl'); // путь к любому вменяемому bbcode.tpl, соответствующему оформлению страницы
$lang = array('Quote' => 'Цитата', 'wrote' => '%s писал(а)', 'Code' => 'Код'); // это можно опустить, если нет error_reporting(E_ALL) и не используются quote/code
перед помещением в БД (переменных $message и $bbcode_uid):
- Код: Выделить всё
$message = preg_replace(array('#&(?!(\#[0-9]+;))#', '#<#', '#>#', '#"#'), array('&', '<', '>', '"'), $message);
if (empty($bbcode_uid))
{
$bbcode_uid = make_bbcode_uid();
}
$message = bbencode_first_pass($message, $bbcode_uid);
перед отображением:
- Код: Выделить всё
$message = nl2br(bbencode_second_pass($message, $bbcode_uid));
Перед редактированием:
- Код: Выделить всё
$message = preg_replace('/\:(([a-z0-9]:)?)' . $bbcode_uid . '/s', '', $message);
$message = str_replace(array('<', '>', '<br />', array('<', '>', "\n"), $message);
Про прикручивание аутентификации:
Мой движок - это и есть phpBB (никаких папок "/forum"). Все, что пишу, делаю в рамках phpBB (хотя внешне это не всегда очевидно). Мне phpbb тем и нравится, что его можно быстро довести до приличной CMS
А смешивать 2 движка (например, Cute News с phpBB) - это чудовищно! Две независимые архитектуры, дублирующиеся подсистемы, разные стандарты кодирования - кошмар...