Вывод информации с форума Bullet Energy на сайте
Откройте файл: engine/ajax/addcomments.php
Найдите в нем:
foto, fullname, land,
Замените на:
foto, fullname, land, forum_topic_count, forum_post_count, forum_thanks_count, forum_warning, forum_inseption,
Эту операцию повторите для следующих файлов:
engine/ajax/comments.php
engine/modules/show.full.php
engine/modules/lastcomments.php
Откройте файл: engine/classes/comments.class.php
Найдите в нем:
global $config, $tpl, $is_logged
Замените на:
global $apiBullet, $config, $tpl, $is_logged
На следующей строке добавьте:
if(!$apiBullet) {
require_once ENGINE_DIR . '/bullet_energy/api/bullet_api.class.php' ;
}
В этом же файле найдите:
$tpl->set('{group-name}', $user_group[$row['user_group']]['group_prefix'] .
$user_group[$row['user_group']]['group_name'] . $user_group[$row['user_group']]['group_suffix']) ;
После добавьте:
$row['forum_inseption'] = unserialize($row['forum_inseption']) ;
$tpl->set('{countTopic}', $row['forum_topic_count']) ;
if($row['forum_topic_count'] > 0) {
$tpl->set('[linckTopic]', '<a href="' . $apiBullet->link->userTopic($row['name']) . '">') ;
$tpl->set('[/linckTopic]', '</a>') ;
} else {
$tpl->set('[linckTopic]', '') ;
$tpl->set('[/linckTopic]', '') ;
}
$tpl->set('{countMessage}', $row['forum_post_count']) ;
if($row['forum_post_count'] > 0) {
$tpl->set('[linckPost]', '<a href="' . $apiBullet->link->userMessage($row['name']) . '">') ;
$tpl->set('[/linckPost]', '</a>') ;
} else {
$tpl->set('[linckPost]', '') ;
$tpl->set('[/linckPost]', '') ;
}
$tpl->set('{like}', $row['forum_thanks_count']) ;
if($row['forum_thanks_count'] > 0) {
$tpl->set('[linckLike]', '<a href="' . $apiBullet->link->userLike($row['name']) . '">') ;
$tpl->set('[/linckLike]', '</a>') ;
} else {
$tpl->set('[linckLike]', '') ;
$tpl->set('[/linckLike]', '') ;
}
$trophies = count($row['forum_inseption']['honor']) ;
$tpl->set('{countTrophies}', $trophies) ;
if($trophies > 0) {
$tpl->set('[linckTrophies]', $apiBullet->link->userTrophies($row['name'], 0, false, '')) ;
$tpl->set('[/linckTrophies]', '</a>') ;
} else {
$tpl->set('[linckTrophies]', '') ;
$tpl->set('[/linckTrophies]', '') ;
}
if($row['forum_inseption']['title'] and $apiBullet->cache['title'][$row['forum_inseption']['title']]['title']) {
$tpl->set_block("'\\[titleForum\\](.*?)\\[/titleForum\\]'si", "\\1") ;
$tpl->set('{titleForum}', $apiBullet->cache['title'][$row['forum_inseption']['title']]['title']) ;
} else {
$tpl->set_block("'\\[titleForum\\](.*?)\\[/titleForum\\]'si", "") ;
$tpl->set('{titleForum}', '') ;
}
В шаблоне комментариев (comments.tpl) будут доступны следующие теги:
[linckTopic]ХХХ[/linckTopic] - Текст внутри этих тегов будет заключен в ссылку на темы, если ихбольше нуля.
{countTopic} - Количество тем на форуме.
[linckPost]ХХХ[/linckPost] - Текст внутри этих тегов будет заключен в ссылку на сообщения, если их больше нуля.
{countMessage} - Количество сообщений на форуме.
[linckTrophies]ХХХ[/linckTrophies] - Текст внутри этих тегов будет заключен в ссылку на трофеи пользователя, если их больше нуля.
{countTrophies} - Количество трофеев пользователя.
[linckLike]XXX[/linckLike] Текст внутри этих тегов будет заключен в ссылку на историю симпатий пользователя, если симпатий больше нуля.
{like} - Количество симпатий у пользователя.
[titleForum][/titleForum] - Текст внутри этих тегов будет выведен если у пользователя есть звание.
{titleForum} - Звание пользователя.
Откройте файл: engine/modules/profile.php
Найдите в нем :
$tpl->set('{usertitle}', stripslashes($row['name'])) ;
После добавьте:
$row['forum_inseption'] = unserialize($row['forum_inseption']) ;
$tpl->set('{countTopic}', $row['forum_topic_count']) ;
if($row['forum_topic_count'] > 0) {
$tpl->set('[linckTopic]', '<a href="' . $apiBullet->link->userTopic($row['name']) . '">') ;
$tpl->set('[/linckTopic]', '</a>') ;
$tpl->set('[not-Topic]', "") ;
$tpl->set('[/not-Topic]', "") ;
} else {
$tpl->set('[linckTopic]', '') ;
$tpl->set('[/linckTopic]', '') ;
$tpl->set_block("'[not-Topic](.*?)[/not-Topic]'si", "") ;
}
$tpl->set('{countMessage}', $row['forum_post_count']) ;
if($row['forum_post_count'] > 0) {
$tpl->set('[linckPost]', '<a href="' . $apiBullet->link->userMessage($row['name']) . '">') ;
$tpl->set('[/linckPost]', '</a>') ;
$tpl->set('[not-Post]', "") ;
$tpl->set('[/not-Post]', "") ;
} else {
$tpl->set('[linckPost]', '') ;
$tpl->set('[/linckPost]', '') ;
$tpl->set_block("'[not-Post](.*?)[/not-Post]'si", "") ;
}
$tpl->set('{like}', $row['forum_thanks_count']) ;
if($row['forum_thanks_count'] > 0) {
$tpl->set('[linckLike]', '<a href="' . $apiBullet->link->userLike($row['name']) . '">') ;
$tpl->set('[/linckLike]', '</a>') ;
$tpl->set('[not-Like]', "") ;
$tpl->set('[/not-Like]', "") ;
} else {
$tpl->set('[linckLike]', '') ;
$tpl->set('[/linckLike]', '') ;
$tpl->set_block("'[not-Like](.*?)[/not-Like]'si", "") ;
}
$trophies = count($row['forum_inseption']['honor']) ;
$tpl->set('{countTrophies}', $trophies) ;
if($trophies > 0) {
$tpl->set('[linckTrophies]', $apiBullet->link->userTrophies($row['name'], 0, false, '')) ;
$tpl->set('[/linckTrophies]', '</a>') ;
$tpl->set('[not-Trophies]', "") ;
$tpl->set('[/not-Trophies]', "") ;
} else {
$tpl->set('[linckTrophies]', '') ;
$tpl->set('[/linckTrophies]', '') ;
$tpl->set_block("'[not-Trophies](.*?)[/not-Trophies]'si", "") ;
}
if($row['forum_inseption']['title'] and $apiBullet->cache['title']
[$row['forum_inseption']['title']]['title']) {
$tpl->set_block("'[titleForum](.*?)[/titleForum]'si", "1") ;
$tpl->set('{titleForum}', $apiBullet->cache['title']
[$row['forum_inseption']['title']]['title']) ;
} else {
$tpl->set_block("'[titleForum](.*?)[/titleForum]'si", "") ;
}
В шаблоне личного профиля пользователя(userinfo.tpl) будут доступны следующие теги:
[linckTopic]ХХХ[/linckTopic] - Текст внутри этих тегов будет заключен в ссылку на темы, если ихбольше нуля.
{countTopic} - Количество тем на форуме.
[linckPost]ХХХ[/linckPost] - Текст внутри этих тегов будет заключен в ссылку на сообщения, если их больше нуля.
{countMessage} - Количество сообщений на форуме.
[linckTrophies]ХХХ[/linckTrophies] - Текст внутри этих тегов будет заключен в ссылку на трофеи пользователя, если их больше нуля.
{countTrophies} - Количество трофеев пользователя.
[linckLike]XXX[/linckLike] Текст внутри этих тегов будет заключен в ссылку на историю симпатий пользователя, если симпатий больше нуля.
{like} - Количество симпатий у пользователя.
[titleForum][/titleForum] - Текст внутри этих тегов будет выведен если у пользователя есть звание.
{titleForum} - Звание пользователя.
В форуме предусмотрен вывод последних сообщений на сайте, что бы вывести последние сообщения нужно сделать следующие:
Открыть файл index.php
После строки:
require_once ROOT_DIR . '/engine/init.php';
Добавить:
$apiBullet->getLastPost(array('count' => 5));
В этом же файле, после строки:
$tpl->load_template('main.tpl');
Добавить:
$tpl->set('{forumPost}', $tpl->result['last_topic_box']);
После этого в шаблоне в нужном месте вставить тег
{forumPost}
Количество сообщений можно изменить поменяв число 5 на нужное вам.
Открыть файл
engine/modules/show.full.php
После строки:
$tpl->copy_template = preg_replace("#{date=(.+?)}#ie",
"langdate('1', '{$row['date']}')", $tpl->copy_template);
Добавить:
if ( $view_template != "print") {$tpl->set('{forumDiscus}', $apiBullet->setLinckDiscus(array(
'idPost' => $row['id'],
'id' => $row['topic_id'],
'tree' => $category_id))) ;}
Для версий ниже 9.7 Открыть файл engine/engine.php в двух местах найти:
editor, reason, view_edit, tags, metatitle
Заменить на:
editor, reason, view_edit, tags, metatitle, topic_id
В шаблон полной новости в нужное место вставить тег
{forumDiscus} (Для краткой новости нужно редактировать файл
show.short.php в той же папке)
Автор: white-master