Последнее сообщение с IPB
Перед всеми модификациями сделаем архивные копии: БД(DLE), index.php (DLE), БД (IPB).
Часто форуму IPB выделяется отдельная база данных. От этого и пойдем. Несколько позже расскажем как модифицировать с учетом, что БД для DLE и IPB одна и та же.
1. Скачаем прикрепленный архив:
2. Откроем index.php (dle)
Найдем:
require_once ROOT_DIR . '/engine/init.php';
Добавим ниже:
require_once ROOT_DIR . '/ipb_inced.php';
Найдем:
$tpl->set ( '{vote}', $tpl->result['vote'] );
Добавим ниже:
$tpl->set ( '{ipb_last_topics}', $forum_table_ipb);
3. Отроем файл ipb_inced.php и установим в нем параметры для БД и настроим количество выводимых тем.
Этого будет вполне достаточно для вывода последних тем, но не забываем про то, что информер использует кеш, а это значит, что вероятно будут задержки перед выводом последних тем, в том плане, что темы будут не актуальны или не будет сохраняться временная последовательность.
Поэтому, что бы научить IPB чистить кеш системы DLE нужно залезть к нему в ядро. При этом, форум должен находиться на папку выше системы. Другие варианты возможны, обсудим это.
Откроем файл: ipb/sources/classes/post/class_post_new.php
Найдем в нем:
$this->ipsclass->DB->simple_exec();
Добавим ниже:
@unlink("../engine/cache/forum_table_ipb.tmp");
Откроем файл: ipb/sources/classes/post/class_post_reply.php
Найти:
$this->ipsclass->DB->do_update( 'topics', $update_array, "tid={$this->topic['tid']}" );
Добавить ниже:
@unlink("../engine/cache/informer_1_default.tmp");
Сохраняем файлы.
Не забываем про расположение системных файлов форума.
В главный шаблон DLE (main.tpl) вставляем {ipb_last_topics}.
Не забываем про расположение шаблонов требуемых информеру.