Shaman Daniels Опубликовано 29 июля, 2015 Жалоба Поделиться Опубликовано 29 июля, 2015 (изменено) Как всем известно в vii (как и в DLE) есть еще 3 группы по мимо "Администратора", но предусмотреть под них права доступа никто не удосужился, не в счёт группа "Техподдержки", где можно отвечать и помогать пользователям, но, при этом "Администраторы" этого делать не могут, но, не в этом суть. В итоге с правами доступа всё запутано...В данной теме я попытаюсь максимально просто объяснить как-же всё-таки создать еще несколько панелей-доступа. PS: Тема находиться на стадии АНОНСА - это говорит о том, что, тема будет обновляться и в последствии будут решаться проблемы по мере их нахождения...И так буду показывать на примере всё той-же Vii 2.0 (Nulled Tesla). Для начала нам потребуется:1. Файл controlpanel.php (Находиться в корне сайта)2. Папка inc (Находиться в /system/)Вот и вся по сути панель управления для группы "Администратор" (номер - 1). Мы же будем делать новую панель для "Модератора" (номер - 3).Для начала поработаем с файлом controlpanel.php:1. Переименуем его в - moderpanel.php (Тут можно что-то и своё сообразить)2. Ищем: define('ADMIN_DIR', ROOT_DIR.'/system/inc'); Заменяем на: define('MODER_DIR', ROOT_DIR.'/system/inc-moder'); 3. Ищем: $admin_link = $config['home_url'].'controlpanel.php'; Заменяем на: $admin_link = $config['home_url'].'moderpanel.php'; 4. Ищем: include ADMIN_DIR.'/functions.php'; include ADMIN_DIR.'/login.php'; Заменяем на: include MODER_DIR.'/functions.php'; include MODER_DIR.'/login.php'; PS: Что-бы было понятно "объясню на пальцах": Мы просто изменили путь с ADMIN_DIR на MODER_DIR и указали другие ссылки к файлу и нашей папке, дабы всё это лезло в нашу новую панель управления, а не старую панель администратора. На этом робота с файлом controlpanel.php, а после наших изменений уже moderpanel.php - завершены. Можно загружать в корень сайта.Теперь работаем с папкой inc:1. Переименовываем её в - inc-moder PS: Как вы помните в moderpanel.php мы указали именно такое название для папки, если вы измените на другое - не забываем поменять и в файле.Основные файлы для роботы это: functions.php, login.php, main.php, massaction.php, mod.php. Всё остальные - это индивидуальные модули, каждый из которых отвечает за что-то своё, будь это бан-фильтр, создание страниц или-же заметки... За каждый модуль объяснять не стану, покажу на одном примере - управление пользователями (users.php). И так, у нас с вами есть папка inc-moder, где находятся такие файлы:Работаем с login.php:2. Ищем: if($user_info['user_group'] == 1) include ADMIN_DIR.'/mod.php'; Заменяем на: if($user_info['user_group'] == 3) include MODER_DIR.'/mod.php'; 2.1.Ищем: WHERE user_id = '".$cookie_user_id."' AND user_group = '1'"); Заменяем на: WHERE user_id = '".$cookie_user_id."' AND user_group = '3'"); 2.2.Ищем: AND user_password = '".$md5_pass."' AND user_group = 1"); Заменяем на: AND user_password = '".$md5_pass."' AND user_group = 3"); PS: Думаю объяснять почему мы так сделали - не нужно, ибо про номер группы и путь описано выше. Нет?! - Читайте внимательно!Работаем с functions.php:3. Тут смотрите на своё усмотрение. Из основных работ нам требуется заменить пути картинок и стилей, для этого в notepad++ задаём наш старый "поиск -> заменить" и ищем: /inc/ Заменяем на: /inc-moder/ У меня их заменило ~12, а дальше - сами меняйте названия title, форму входа, кнопки и т.д., всё зависит от вашего дизайна.PS: Этот пункт можно и пропустить т.к. пути картинок ссылаются на папку inc, в которой и есть эти картинки. В таком случае из папки inc-moder можно смело удалять папки images и js т.к. они не будут использоваться и только по сути занимают место.Работаем с mod.php:4. Находим там весь блок: switch($mod){ //Настройки системы case "system": include ADMIN_DIR.'/system.php'; break; //Управление БД case "db": include ADMIN_DIR.'/db.php'; break; //dumper case "dumper": include ADMIN_DIR.'/dumper.php'; break; //Личные настройки case "mysettings": include ADMIN_DIR.'/mysettings.php'; break; //Пользователи case "users": include ADMIN_DIR.'/users.php'; break; //Массовые действия case "massaction": include ADMIN_DIR.'/massaction.php'; break; //Заметки case "notes": include ADMIN_DIR.'/notes.php'; break; //Подарки case "gifts": include ADMIN_DIR.'/gifts.php'; break; //Сообщества case "groups": include ADMIN_DIR.'/groups.php'; break; //Шаблоны сайта case "tpl": include ADMIN_DIR.'/tpl.php'; break; //Шаблоны сообщений case "mail_tpl": include ADMIN_DIR.'/mail_tpl.php'; break; //Рассылка сообщений case "mail": include ADMIN_DIR.'/mail.php'; break; //Фильтр по: IP, E-Mail case "ban": include ADMIN_DIR.'/ban.php'; break; //Поиск и Замена case "search": include ADMIN_DIR.'/search.php'; break; //Статические страницы case "static": include ADMIN_DIR.'/static.php'; break; //Антивирус case "antivirus": include ADMIN_DIR.'/antivirus.php'; break; //Логи посещений case "logs": include ADMIN_DIR.'/logs.php'; break; //Статистика case "stats": include ADMIN_DIR.'/stats.php'; break; //Видео case "videos": include ADMIN_DIR.'/videos.php'; break; //Музыка case "musics": include ADMIN_DIR.'/musics.php'; break; //Альбомы case "albums": include ADMIN_DIR.'/albums.php'; break; //Страны case "country": include ADMIN_DIR.'/country.php'; break; //Города case "city": include ADMIN_DIR.'/city.php'; break; //Список жалоб case "report": include ADMIN_DIR.'/report.php'; break; //Доп. поля профилей case "xfields": include ADMIN_DIR.'/xfields.php'; break; //Фильтр слов case "wordfilter": include ADMIN_DIR.'/wordfilter.php'; break; //Игры case "apps": include ADMIN_DIR.'/apps.php'; break; //Отзывы case "reviews": include ADMIN_DIR.'/reviews.php'; break; //Отчеты по SMS case "sms": include ADMIN_DIR.'/sms.php'; break; default: include ADMIN_DIR.'/main.php'; } Заменяем на: switch($mod){ //Пользователи case "users": include MODER_DIR.'/users.php'; break; //Массовые действия case "massaction": include MODER_DIR.'/massaction.php'; break; default: include MODER_DIR.'/main.php'; } Почему? Всё потому что, мы с вами дали возможность модераторам управлять пользователями и всё, а массовые действия должны быть обязательно.PS: Если вы хотите дать больше возможностей, то оставляйте больше подключённых модулей. Действуйте по аналогии с тем что удалили выше. ВАЖНО! Если вы оставили больше возможностей и указали это в mod.php, не забывайте что и файл должен быть в папке (См. пункт 1).Работаем с massaction.php:5. Заходим и удаляем следующие блоки: //################### Масовые действия с заметками ###################// //################### Масовые действия с сообещствами ###################// //################### Масовые действия с видеозаписям ###################// //################### Масовые действия с аудиозаписями ###################// //################### Масовые действия с альбомами ###################// Оставляем только: //################### Масовые действия с юзерами ###################// Почему так - описано выше.PS: Если вы добавили больше функций, соответственно нужно оставить определенный блок. Включаем логику товарищи!Работаем с main.php:6. Находим: echoheader(); echoblock('Настройка системы', 'Настройка общих параметров скрипта, а также настройка системы безопасности скрипта', 'system', 'settings'); echoblock('Управление БД', 'Резервное копирование и восстановление базы данных', 'db', 'db'); echoblock('Личные настройки', 'Управление и настройка вашего личного профиля пользователя.', 'mysettings', 'mysettings'); echoblock('Пользователи', 'Управление зарегистрированными на сайте пользователями, редактирование их профилей и блокировка аккаунта', 'users', 'users'); echoblock('Доп. поля профилей', 'В данном разделе проводится настройка дополнительных полей профиля пользователей', 'xfields', 'xfields'); echoblock('Видео', 'Управление видеозаписями, редактирование и удаление', 'videos', 'video'); echoblock('Музыка', 'Управление аудиозаписями, редактирование и удаление', 'musics', 'music'); echoblock('Альбомы', 'Управление альбомами, редактирование и удаление', 'albums', 'photos'); echoblock('Заметки', 'Управления заметками, которые опубликовали пользователи сайта', 'notes', 'notes'); echoblock('Подарки', 'Управление подарками на сайте, добавление, редактирование и удаление', 'gifts', 'gifts'); echoblock('Сообщества', 'Управление сообществами, редактирование и удаление', 'groups', 'groups'); echoblock('Жалобы '.$new_report, 'Список жалоб, поступивших от посетителей сайта на фотографии, записи, видеозаписи или заметки', 'report', 'report'); echoblock('Шаблоны сайта', 'Редактирование шаблонов, которые используются на вашем сайте', 'tpl', 'tpl'); echoblock('Шаблоны сообщений', 'Настройка шаблонов E-Mail сообщений, которые отсылает скрипт с сайта при уведомлении.', 'mail_tpl', 'mail_tpl'); echoblock('Рассылка сообщений', 'Создание и массовая отправка E-Mail сообщений, для зарегистрированных пользователей', 'mail', 'mail'); echoblock('Фильтр по: IP', 'Блокировка доступа на сайт для определенных IP', 'ban', 'ban'); echoblock('Поиск и Замена', 'Быстрый поиск и замена определенного текста по всей базе данных', 'search', 'search'); echoblock('Статические страницы', 'Создание и редактирование страниц, которые как правило редко изменяются и имеют постоянный адрес', 'static', 'static'); echoblock('Антивирус', 'Проверка папок и файлов скрипта на наличие подозрительных файлов', 'antivirus', 'antivirus'); echoblock('Логи посещений', 'Вывод IP и браузера пользователей при последнем входе на сайт', 'logs', 'logs'); echoblock('Страны', 'Добавление, удаление и редактирование стран', 'country', 'country'); echoblock('Города', 'Добавление, удаление и редактирование городов', 'city', 'city'); echoblock('Игры', 'Добавление, удаление и редактирование игр на сайте', 'apps', 'apps'); echoblock('Отзывы '.$new_reviews, 'Модерация и удаление отзывов.', 'reviews', 'reviews'); echoblock('Отчеты по SMS', 'Просмотр отчетов отправки SMS от пользователей', 'sms', 'sms'); echo <<<HTML <script type="text/javascript" src="/system/inc/js/jquery.js"></script> <script type="text/javascript"> $(document).ready(function(){ $.post('/controlpanel.php', {act: 'send'}); }); </script> HTML; echoblock('Фильтр слов', 'Настройка фильтра слов, который будет удалять или заменять указанные слова при добавлении какой-то информации на сайт.', 'wordfilter', 'wordfilter'); echohtmlend(); Заменяем на: echoheader(); echoblock('Пользователи', 'Управление зарегистрированными на сайте пользователями, редактирование их профилей и блокировка аккаунта', 'users', 'users'); echo <<<HTML <script type="text/javascript" src="/system/inc-moder/js/jquery.js"></script> <script type="text/javascript"> $(document).ready(function(){ $.post('/moderpanel.php', {act: 'send'}); }); </script> HTML; echohtmlend(); Мы убрали лишние "кнопки" и изменили пути на файл moderpanel.php и js.PS: Помните! Если вы удалили папку js - то путь изменять на /system/inc-moder/js/ - не нужно, должно остаться /system/inс/js/. (Почему? См. пункт 3).Вот по сути и всё, у группы "Модератора" появилась своя панель управления. Осталось выстаить права пользователю и перейти по ссылке - http://site.ru/moderpanel.php. PS: О том как "выпилять" определённые функции из модулей - чуть позже. Автор темы: Shaman Изменено 5 августа, 2015 пользователем Shaman Daniels Исправлены ошибки 4 Ссылка на комментарий Поделиться на другие сайты Поделиться
MixNet Опубликовано 29 июля, 2015 Жалоба Поделиться Опубликовано 29 июля, 2015 Спасибо Хорошая вещь. Ссылка на комментарий Поделиться на другие сайты Поделиться
timbios Опубликовано 29 июля, 2015 Жалоба Поделиться Опубликовано 29 июля, 2015 Очень полезная статья, заслуживает огромного "+" Ссылка на комментарий Поделиться на другие сайты Поделиться
wenjiro Опубликовано 29 июля, 2015 Жалоба Поделиться Опубликовано 29 июля, 2015 А мне кажется, что это почти ответ на мой заказ для слупи. Ссылка на комментарий Поделиться на другие сайты Поделиться
wenjiro Опубликовано 29 июля, 2015 Жалоба Поделиться Опубликовано 29 июля, 2015 Ах да. Я понял. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
wenjiro Опубликовано 29 июля, 2015 Жалоба Поделиться Опубликовано 29 июля, 2015 Почему не MODER DIR? Заменяем на: switch($mod){ //Пользователи case "users": include ADMIN_DIR.'/users.php'; break; //Массовые действия case "massaction": include ADMIN_DIR.'/massaction.php'; break; default: include ADMIN_DIR.'/main.php';} 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Shaman Daniels Опубликовано 29 июля, 2015 Автор Жалоба Поделиться Опубликовано 29 июля, 2015 Почему не MODER DIR? Заменяем на: switch($mod){ //Пользователи case "users": include ADMIN_DIR.'/users.php'; break; //Массовые действия case "massaction": include ADMIN_DIR.'/massaction.php'; break; default: include ADMIN_DIR.'/main.php'; } Да, ты прав. Я так увлёкся темой, что не заметил этого... Ссылка на комментарий Поделиться на другие сайты Поделиться
CimisliaMD Опубликовано 29 июля, 2015 Жалоба Поделиться Опубликовано 29 июля, 2015 Очень полезная статья...по больше таких статей Ссылка на комментарий Поделиться на другие сайты Поделиться
timbios Опубликовано 29 июля, 2015 Жалоба Поделиться Опубликовано 29 июля, 2015 Я люблю CMST∞ls Только из-за подписи поставил + )) Ссылка на комментарий Поделиться на другие сайты Поделиться
wenjiro Опубликовано 29 июля, 2015 Жалоба Поделиться Опубликовано 29 июля, 2015 Я люблю CMST∞ls Только из-за подписи поставил + )) спасиб Ссылка на комментарий Поделиться на другие сайты Поделиться
Shaman Daniels Опубликовано 29 июля, 2015 Автор Жалоба Поделиться Опубликовано 29 июля, 2015 Я люблю CMST∞ls Только из-за подписи поставил + )) спасиб Мне тоже нравиться идея. Уже открываю фотошоп 2 Ссылка на комментарий Поделиться на другие сайты Поделиться
Shaman Daniels Опубликовано 29 июля, 2015 Автор Жалоба Поделиться Опубликовано 29 июля, 2015 Очень полезная статья... по больше таких статей Поверь, всё еще впереди) Ссылка на комментарий Поделиться на другие сайты Поделиться
CimisliaMD Опубликовано 29 июля, 2015 Жалоба Поделиться Опубликовано 29 июля, 2015 (изменено) Очень полезная статья... по больше таких статей Поверь, всё еще впереди) Молодец тогда жду от тебя полезных статей Изменено 29 июля, 2015 пользователем CimisliaMD Ссылка на комментарий Поделиться на другие сайты Поделиться
api Опубликовано 30 июля, 2015 Жалоба Поделиться Опубликовано 30 июля, 2015 можна и все лучше сделать вывести в шаблон кантроль панель штобы по безапасней была да и небыла с вне лишний раз вадить agent.php и можна зделать ище взять из админки функцию назначение в тех падержку и сделать назначение мадератора и тд намнога будет лучше чем вбазу каждый раз лазить штоб назначить челавека 2 Ссылка на комментарий Поделиться на другие сайты Поделиться
Shaman Daniels Опубликовано 30 июля, 2015 Автор Жалоба Поделиться Опубликовано 30 июля, 2015 можна и все лучше сделать вывести в шаблон кантроль панель штобы по безапасней была да и небыла с вне лишний раз вадить agent.php и можна зделать ище взять из админки функцию назначение в тех падержку и сделать назначение мадератора и тд намнога будет лучше чем вбазу каждый раз лазить штоб назначить челавека Ну если я тебя правильно понял...Суть не в том, что можно, а что нельзя. Данная статья - это пример для обучения пользователям. Ну, а делать что-то под каждого пользователя - я не собираюсь. Если у тебя есть желание - можешь взять и сделать и поделиться со всеми... Ссылка на комментарий Поделиться на другие сайты Поделиться
viiprogrammer Опубликовано 21 января, 2016 Жалоба Поделиться Опубликовано 21 января, 2016 echoheader(); echoblock('Пользователи', 'Управление зарегистрированными на сайте пользователями, редактирование их профилей и блокировка аккаунта', 'users', 'users'); echo <<<HTML <script type="text/javascript" src="/system/inc-moder/js/jquery.js"></script> <script type="text/javascript"> $(document).ready(function(){ $.post('/moderpanel.php', {act: 'send'}); }); </script> HTML; echohtmlend(); <script type="text/javascript"> $(document).ready(function(){ $.post('/moderpanel.php', {act: 'send'}); }); </script> тут не нужен так как это участок кода который "активировал" стучалку в vii которой нету Ссылка на комментарий Поделиться на другие сайты Поделиться
JacksScripts Опубликовано 21 января, 2016 Жалоба Поделиться Опубликовано 21 января, 2016 Мне кажеться не много глупо делать разные панели в разных файлах php. Проще создать полноценный функционал для администратора, и делать например так, как сделано в шаблонизаторе vii, который например запрещает определенным группам видеть какой либо html с помощью [user-group=INT]. Что касаеться js то его там почти нет, а если даже тот что есть то сделать так, в обработчиках тоесть туда, куда с помощью js отсылают запрос сделать проверку на user_group вот и все, а так только копи-пастом, только засорять память файлами Ссылка на комментарий Поделиться на другие сайты Поделиться
CimisliaMD Опубликовано 21 января, 2016 Жалоба Поделиться Опубликовано 21 января, 2016 Мне кажеться не много глупо делать разные панели в разных файлах php. Проще создать полноценный функционал для администратора, и делать например так, как сделано в шаблонизаторе vii, который например запрещает определенным группам видеть какой либо html с помощью [user-group=INT]. Что касаеться js то его там почти нет, а если даже тот что есть то сделать так, в обработчиках тоесть туда, куда с помощью js отсылают запрос сделать проверку на user_group вот и все, а так только копи-пастом, только засорять память файлами Пример можно взять с DataLife Engine... Ссылка на комментарий Поделиться на другие сайты Поделиться
java002 Опубликовано 21 января, 2016 Жалоба Поделиться Опубликовано 21 января, 2016 Лучше изменить значение в БД Ссылка на комментарий Поделиться на другие сайты Поделиться
JacksScripts Опубликовано 21 января, 2016 Жалоба Поделиться Опубликовано 21 января, 2016 Пример можно взять с DataLife Engine... Не смотрел как там в DLE Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения