Добавляем гибкости настройке групп

+21
6.83K
Здравствуйте!
Когда написали на форуме о регистрации через смс. Я подумал дальше, пока у пользователя нет подтверждения номера телефона, то мы его ограничиваем в действиях. Но тут сразу вспомнил об этом:

Иллюстрация



Подумал, что не хватает более гибкой настройки прав групп. Сейчас покажу простой способ как расширить список.
Для этого нам понадобиться:
1. файл admin/applets/usergroups.php

333 строка
  1.  
  2. <tr>
  3. <td><input name="access[]" type="checkbox" id="access[]" value="board/moderate" <?php if (isset($mod['access'])) { if (in_array('board/moderate', $mod['access'])) { echo 'checked="checked"'; } }?> /></td>
  4. <td>Модерация доски объявлений</td>
  5. </tr>
  6.  
это наш шаблон для будущей настройки нового параметра. Сейчас добавим возможность отправки личных сообщений
Вставляем его немного переписав
  1.  
  2. <tr>
  3. <td><input name="access[]" type="checkbox" id="access[]" value="users/sendmessages" <?php if (isset($mod['access'])) { if (in_array('users/sendmessages', $mod['access'])) { echo 'checked="checked"'; } }?> /></td>
  4. <td>Отправка сообщений</td>
  5. </tr>
  6.  
сохраняем
2. метод isUserCan('') Проверяет, что пользователь имеет право на указанное действие.
Открываем: components\users\messages.php
после 147 строки
  1.  
  2. $smarty = $inCore->initSmarty('components', 'com_users_messages.tpl');
  3.  
вставляем
  1.  
  2. $smarty->assign('user_can_sendmessages', $inCore->isUserCan('users/sendmessages'));
  3.  
3. открываем templates\_default_\components\com_users_messages_add.tpl

вначале перед
  1. {if $is_reply_user}
вставляем
  1. {if $user_can_sendmessages}
а в конец файла
  1.  
  2. {else} <p>Недостаточно прав для оправки сообщения</p>
  3. {/if}
  4.  
по аналогии можно добавить и другие права
0
13 лет назад #
у тебя 1,7 а в 1,8 тож самое ?
0
Димитриус Димитриус 13 лет назад #
да)
но я еще не дописал пост)
+1
Димитриус Димитриус 13 лет назад #
да кстати наверное надо было написать... пост дописан)
0
Анатолий Анатолий 13 лет назад #
не работает! ошибка 500 получается, а если убрать <span class="search_match"><span class="search_match">, то Недостаточно прав для оправки сообщения
0
googlebot googlebot 13 лет назад #
Спасибо, полезный пример.
0
13 лет назад #
думаю тебе стоит выпустить обновление готовое
0
Димитриус Димитриус 13 лет назад #
думаю надо собрать еще варианты доспута.
1. Сообщения
2. Добавления фотографий
3. Создание тем форума
4. Отвечать в темах форумов

Кстати это возможно наверное как штрафное действие...smileПри нарушении отправляем его в группу Штрафбатsmileнапример на 3 суток
0
13 лет назад #
мне вот для модератора надо права существующие меня не устраивают
+2
Димитриус Димитриус 13 лет назад #
я мысли читать не умею..
+1
13 лет назад #
отключения подключения компонентов и модулей сайта
0
reload reload 13 лет назад #
Спасибо, очень полезное допиливание; Гибкость настроек это большой плюс)
И вам за идею

+

0
Димитриус Димитриус 13 лет назад #
я тут подумал по круче допилить))) сейчас вот идею обдумываю)
0
reload reload 13 лет назад #
Dimitrius, поделитесь идеей, может кто чего подскажет или дополнит. Одна голова хорошо, а две... (не красиво, но иногда результативно)
0
Димитриус Димитриус 13 лет назад #
создаем таблицу:
cms_access
id как всегда ключ
type_access
name_access
в файле admin/applets/usergroups.php
Код PHP:
в ней два столбца
убиваем с 293 по 336 строку
вместо ней вставляем :
Код PHP:
<?php 
$sql = "SELECT * FROM cms_access ORDER BY name_access";
$res = dbQuery($sql) or die('Ошибка получения списка компонентов');			
while ($t_access = mysql_fetch_assoc($res)) { 									
?>
<tr>
<td width="16">
<input type="checkbox" name="access[]" value="<?php echo $t_access['type_access']; ?>" 
<?php if (isset($mod['access'])) { if (in_array($com['type_access'], $mod['access'])) { echo 'checked="checked"'; } }?> /></td>
<td><?php echo $t_access['name_access']; ?></td>
</tr>
<?php } ?>
0
Димитриус Димитриус 13 лет назад #
наполняем таблицу, пишу не сам запрос а его содержвание:
comments/add Добавление комментариев
comments/bbcode Расширенный редактор комментариев (BBCode)
comments/delete Удаление своих комментариев
comments/moderate Удаление чужих комментариев
comments/iscomments Возможность отключать комментарии в своем блоге
forum/moderate Модерация форума
content/add Добавление статей на сайт
content/autoadd Принимать статьи без модерации
content/delete Удаление своих статей
board/autoadd Принимать объявления без модерации
board/moderate Модерация доски объявлений
0
Димитриус Димитриус 13 лет назад #
далее нам надо дописать ядро таким образом, что бы при установки регистрировались возможные права
0
Димитриус Димитриус 13 лет назад #
9 строка опечатка
Код PHP:
<?php if (isset($mod['access'])) { if (in_array($t_access['type_access'], $mod['access'])) { echo 'checked="checked"'; } }?> /></td>
0
13 лет назад #
может стоит это всё в блог вписать ?

Еще от автора

Плагин: подтверждение профиля через привязку номера телефона к профилю
Здравствуйте форумчане! Уже достаточно много времени прошло с момента публикации предыдущего поста.
Плагин: подтверждение профиля через привязку номера телефона к профилю
Здравствуйте форумчане! Предлагаю вам плагин привязки номера телефона к профилю. Особенность плагин заключается в следующем.
Плагин: подтверждение профиля через привязку номера телефона к профилю
Приветствую Вас! Очередная модификация смс активации с переводом в новую группу выполненная в виде плагина. Данный пост является анонсом.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.