Без рубрики

Последнее сообщение с IPB

Данная модификация выводит с форума (IPB) на глав. страницу сайта (DLE)

Перед всеми модификациями сделаем архивные копии: БД(DLE), index.php (DLE), БД (IPB).

Часто форуму IPB выделяется отдельная база данных. От этого и пойдем. Несколько позже расскажем как модифицировать с учетом, что БД для DLE и IPB одна и та же.

1. Скачаем прикрепленный архив:
Забрать с сервера topscripts.ru [1.4 Kb] и кинем в корневой каталог системы.

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}.

Не забываем про расположение шаблонов требуемых информеру.