Случайно было обнаружено, что в панели администрирования нет параметра переключения прав на управление изменения статуса темы - закрыто/открыто, хотя проверки в коде есть.
Добавим новый элемент в панель администрирования сами:
в файле: /engine/bullet_energy/action/admin/user.phpНайти:
$option['return'] .= '<tr class="list"><td>' . parent::$bullet_energy_lang['admin_user_access_23'] . '</td><td class="param_input access_no"><input type="radio" value="0" ' . $topic_wanted_no . ' name="set[be_moder_topic_wanted]" ' . $admingroup . '></td><td class="param_input access_yes"><input type="radio" value="1" ' . $topic_wanted_yes . ' name="set[be_moder_topic_wanted]" ' . $gastgroup . '></td></tr>' ;
Добавить ниже:
// закрыть/открыть темы
$option['return'] .= '<tr class="list"><td>Закрывать/открывать темы</td><td class="param_input access_no"><input type="radio" value="0" ' . $close_to_open_topic_no . ' name="set[be_moder_close_to_open_topic]" ' . $admingroup . '></td><td class="param_input access_yes"><input type="radio" value="1" ' . $close_to_open_topic_yes . ' name="set[be_moder_close_to_open_topic]" ' . $gastgroup . '></td></tr>' ;
Кроме того обнаружилось что в не зависимости от прав модераторы имеют возможность закрывать\открывать\закреплять темы через массовые действия с темами, исправляем это
в файле: /engine/bullet_energy/action/site/set.phpНайти:
case 'clozed':
...
до
case 'merge':
Заменить на:
case 'clozed':
if(parent::$helper->ckeckModulesConfig('be_moder_close_to_open_topic')) {
parent::$db->query("UPDATE " . DBNAME . "." . PREFIX . "_be_topic SET topic_open = 0 WHERE id IN ({$option['arrayIdTopic']})") ;
} else return parent::$helper->getError(parent::$bullet_energy_lang['msg_64']) ;
break ;
case 'open':
if(parent::$helper->ckeckModulesConfig('be_moder_close_to_open_topic')) {
parent::$db->query("UPDATE " . DBNAME . "." . PREFIX . "_be_topic SET topic_open = 1 WHERE id IN ({$option['arrayIdTopic']})") ;
} else return parent::$helper->getError(parent::$bullet_energy_lang['msg_64']) ;
break ;
case 'pin':
if(parent::$helper->ckeckModulesConfig('be_moder_topic_wanted')) {
parent::$db->query("UPDATE " . DBNAME . "." . PREFIX . "_be_topic SET topic_fixed = 1 WHERE id IN ({$option['arrayIdTopic']})") ;
} else return parent::$helper->getError(parent::$bullet_energy_lang['msg_64']) ;
break ;
case 'unpin':
if(parent::$helper->ckeckModulesConfig('be_moder_topic_wanted')) {
parent::$db->query("UPDATE " . DBNAME . "." . PREFIX . "_be_topic SET topic_fixed = 0 WHERE id IN ({$option['arrayIdTopic']})") ;
} else return parent::$helper->getError(parent::$bullet_energy_lang['msg_64']) ;
break ;
Так-же обнаружилось что при отсутствии прав на "Управление темами" модераторы все равно имеют права к массовому управлению постов и к опциям темы, исправим это:
в файле: /engine/bullet_energy/action/site/categories.phpНайти:
if(parent::$helper->checkModerator(parent::$globalParam['id'])) {
$data['icon'] .= '<input class="markerElementForum" type="checkbox" data-type="' . parent::$action . '" value="' . $row['id'] . '" name="topic_id[]">' ;
}
Заменить на:
if(parent::$helper->checkModerator(parent::$globalParam['id']) AND parent::$helper->ckeckModulesConfig('be_moder_topic_moder_param')) {
$data['icon'] .= '<input class="markerElementForum" type="checkbox" data-type="' . parent::$action . '" value="' . $row['id'] . '" name="topic_id[]">' ;
}
в файле: /engine/bullet_energy/action/site/showtopic.phpНайти строку:
$option['topicOptionLink'] .= ... class=\"optionTopic\" onclick=\"topicOption('"
Заменить на:
//
if(parent::$helper->checkModerator($row['id_parent']) AND parent::$helper->ckeckModulesConfig('be_moder_topic_moder_param')) {
$option['topicOptionLink'] .= "<a class=\"optionTopic\" onclick=\"topicOption('" . parent::$globalParam['id'] . "'); return false;\" href=\"#\">" . parent::$bullet_energy_lang['topic_53'] . "</a><a data-count=\"" . $row['reply_count'] . "\" onclick=\"return dropdownmenu(this, event, DropDownMenuTopicEdit(" . parent::$globalParam['id'] . ",1," . parent::$config['BE']['moder_disable'] . ",1,1), '170px')\" id=\"countPostSelect\" href=\"#\">" . parent::$bullet_energy_lang['msg_77'] . "<b>0</b></a>" ;
} else $option['topicOptionLink'] .= '';
, нравится это сообщение.