Предоставляем срочную помощь по DLE, пишем эксклюзивные модули для вашего проекта, парсеры грабберы, исправляем базу данных, удаляем вирусы редиректы, обновляем скрипты, помощь с переездом на другой хостинг, перенос домена, большой опыт работы с высоконагруженными проектами, защита ddos атаки, ботов и спама, оптимизация модулей и серверов дле, более 10 лет работы, тысячи модификаций и доработок, короткие сроки, дорого, качественно. telegram: @histoo

[Решено] Все модераторы имеют права закрывать темы

  1. Онлайн

    Grey

    Администраторы

    Сообщений: 2130

    Случайно было обнаружено, что в панели администрирования нет параметра переключения прав на управление изменения статуса темы - закрыто/открыто, хотя проверки в коде есть.
    [Решено] Все модераторы имеют права закрывать темы


    [Решено] Все модераторы имеют права закрывать темы


    Добавим новый элемент в панель администрирования сами:
    в файле: /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'] .= '';
    

    Вложения:

    1. close.topics.moder.txt

      Размер файла:
      4,72 Kb
      Скачиваний:
      544
    Johan, mofsy нравится это сообщение.

    сделаю любой модуль dle на заказ, если вам нужны услуги по dle
    скaйп rdn-team.com
    телегрaм @histoo

    27 августа 2013 - 16:21 / #1
Модераторы форума: greyPowered by Bullet Energy Forum