Поставил в дополнение к сайту форум
Bullet Energy. У меня уже стоит форум
LogicBoard 5.1, совместимость у него нормальная, но задалбливает авторизация. Автор не спешит исправлять этот баг - слетает то на сайте то на форуме. Как то мимо в свое время прошел я в поиске форума, когда уходил с юкоза.
Bullet Energy установился на хостинг нормально, два форума работают без проблем. Хочу сказать спасибо
Grey за помощь в освоении этого продукта. Немного об установке по другому пути - в процессе установки вам предложат скопировать в
.htaccess, после этого поменяйте путь и в файле
engine.php.
Репутация на сайте и форуме
LogicBoard 5.1 стоит от
ShapeShifter, установил и на форум
Bullet Energy - все работает
Вот для DLE 11.3 установка
1. Откройте файл /endine/modules/main.php и после
AND !$tpl->result['info']
добавьте:
AND !class_exists('Bullet_Energy_Main')
В этом же файле после строки
$tpl->load_template ( 'main.tpl' );
добавьте:
$tpl->set('{forumStyle}', require_once ROOT_DIR . '/engine/bullet_energy/modules/load_style.php');
2. Откройте файл engine.php и после строки
switch ( $do ) {
добавьте:
case "forum": include ENGINE_DIR . '/bullet_energy/index.php'; break; (если путь установки другой, например forum123, замените "forum" на "forum123")
3. Откройте файл engine/modules/banned.php и найдите в нём строку:
if( $row['users_id'] ) $db->query( "UPDATE " . USERPREFIX . "_users SET banned='' WHERE user_id = '{$row['users_id']}'" );
Замените её на:
if($row['users_id']) {
$db->query("UPDATE " . USERPREFIX . "_users SET banned='' WHERE user_id = '{$row['users_id']}'");
$forumInfoUser = $db->super_query("SELECT forum_warning FROM " . PREFIX . "_users WHERE user_id = '{$row['users_id']}'");
if($forumInfoUser['forum_warning'] == 100) {
$db->query("INSERT INTO " . PREFIX . "_be_user_warning (id, moderator_id, post_id, date, description, id_user, date_out, action, type, ball) VALUES (NULL, '1', '0', '{$this_time}', 'Понижение уровня предупреждений после блокировки.', '{$row['users_id']}', '0', 'down', 'message', '10')");
$db->query("UPDATE " . PREFIX . "_users SET forum_warning = forum_warning - 10 WHERE user_id = {$row['users_id']} LIMIT 1");
}
}
4. Откройте файл /engine/init.php и после строки
include_once ENGINE_DIR . '/modules/rssinform.php';
добавьте:
require_once ('engine/bullet_energy/api/bullet_api.class.php');
5. Откройте файл engine/inc/editusers.php и после строки:
$db->query( "UPDATE " . PREFIX . "_images SET author='{$editlogin}' WHERE author='{$row['name']}'" );
Добавьте:
$db->query("UPDATE " . PREFIX . "_be_attachment SET attachment_user_name = '{$editlogin}' WHERE attachment_user_name = '{$row['name']}'") ;
$db->query("UPDATE " . PREFIX . "_be_complaint SET ct_from = '{$editlogin}' WHERE ct_from = '{$row['name']}'") ;
$db->query("UPDATE " . PREFIX . "_be_message SET message_autor = '{$editlogin}' WHERE message_autor = '{$row['name']}'") ;
$db->query("UPDATE " . PREFIX . "_be_moderator SET moderator_name = '{$editlogin}' WHERE moderator_name = '{$row['name']}'");
$db->query("UPDATE " . PREFIX . "_be_topic SET autor = '{$editlogin}' WHERE autor = '{$row['name']}'") ;
В этом же файле после строки:
$db->query( "DELETE FROM " . USERPREFIX . "_pm WHERE user='{$id}'" );
Добавьте:
$db->query("DELETE FROM " . PREFIX . "_be_complaint WHERE ct_from = '{$row['name']}'") ;
$db->query("DELETE FROM " . PREFIX . "_be_feed WHERE id_user ='{$id}'") ;
$db->query("DELETE FROM " . PREFIX . "_be_message WHERE autors_id ='{$id}'") ;
$db->query("DELETE FROM " . PREFIX . "_be_moderator WHERE moderator_id ='{$id}'") ;
$db->query("DELETE FROM " . PREFIX . "_be_thanks WHERE thanks_id_user = '{$id}'") ;
$db->query("DELETE FROM " . PREFIX . "_be_topic WHERE autor_id = '{$id}'") ;
В этом же файле ПЕРЕД строкой:
{$output}
Добавьте:
<tr><td colspan="3"><hr></td></tr><tr><td style="padding:4px;">Удалить все сообщения и темы на форуме</td><td colspan="2"><input type="checkbox" name="del_post_forum" value="yes" /></td></tr>
В этом же файле ПЕРЕД строкой:
if( $_POST['del_comments'] ) {
Добавьте:
if($_POST['del_post_forum']) { $result = $db->query("SELECT COUNT(*) as count, id_topic FROM " . PREFIX . "_be_message WHERE autors_id='{$id}' GROUP BY id_topic") ;
while ($row = $db->get_array($result)) {
$db->query("UPDATE " . PREFIX . "_be_topic SET reply_count=reply_count-{$row['count']} where id='{$row['id_topic']}'") ;
}
$db->free($result) ;
$db->query("DELETE FROM " . PREFIX . "_be_topic WHERE autor_id = '{$id}'") ;
$db->query("DELETE FROM " . PREFIX . "_be_message WHERE autors_id = '{$id}'") ;
$db->query("UPDATE " . USERPREFIX . "_users set forum_post_count='0',forum_topic_count='0' where user_id ='{$id}'") ;
}
Инструкции идущие дальше подойдут только для CMS версии 9.6 +, если Ваша версия CMS ниже ознакомтесь с темой на форуме.
В общих настройках CMS в пункте "Включить поддержку статуса 'Онлайн' для пользователей на сайте", должно стоять "Да" Если этого не сделать, то возможна неправильная работа функции e-mail уведомлений (Данной настройки нету в DLE 9.6, поэтому можно выполнять инструкции ниже).
6. Откройте файл engine/modules/sitelogin.php, найдите в нем строку:
$db->query( "UPDATE LOW_PRIORITY " . USERPREFIX . "_users SET lastdate='{$_TIME}' WHERE user_id='{$member_id['user_id']}'" );
После нее добавьте:
$db->query("DELETE FROM " . PREFIX . "_be_event_log WHERE id_user = {$member_id['user_id']}") ;
В этом же файле найдите:
if( $config['log_hash'] ) {
Замените на следующие:
if($config['log_hash']) {
$db->query("DELETE FROM " . PREFIX . "_be_event_log WHERE id_user = {$member_id['user_id']}") ;
В этом же файле найдите строки:
$db->query( "UPDATE LOW_PRIORITY " . USERPREFIX . "_users SET {$new_pass_hash}lastdate='{$_TIME}', hash='{$hash}', logged_ip='{$_IP}' WHERE user_id='{$member_id['user_id']}'" );
добавьте ниже:
$db->query("DELETE FROM " . PREFIX . "_be_event_log WHERE id_user = '{$member_id['user_id']}'") ;
Сообщение отредактировал 23 октября 2017 - 15:19