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

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





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

333 строка
Код PHP:
<tr>
<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>
<td>Модерация доски объявлений</td>
						</tr>
это наш шаблон для будущей настройки нового параметра. Сейчас добавим возможность отправки личных сообщений
Вставляем его немного переписав
Код PHP:
<tr>
<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>
<td>Отправка сообщений</td>
</tr>
сохраняем
2. метод isUserCan('') Проверяет, что пользователь имеет право на указанное действие.
Открываем: components\users\messages.php
после 147 строки
Код PHP:
$smarty = $inCore->initSmarty('components', 'com_users_messages.tpl');
вставляем
Код PHP:
$smarty->assign('user_can_sendmessages', $inCore->isUserCan('users/sendmessages'));
3. открываем templates\_default_\components\com_users_messages_add.tpl

вначале перед
Код PHP:
{if $is_reply_user}
вставляем
Код PHP:
{if $user_can_sendmessages}
а в конец файла
Код PHP:
{else} <p>Недостаточно прав для оправки сообщения</p>
{/if}
по аналогии можно добавить и другие права
Реферальная система v 1.1 | Реферальная систему v 1.2
Комментарии (18)
0 2 мая 2011 в 23:01 0
у тебя 1,7 а в 1,8 тож самое ?
Димитриус 2 мая 2011 в 23:17 0
да)
но я еще не дописал пост)
Димитриус 3 мая 2011 в 10:05 +1
да кстати наверное надо было написать... пост дописан)
Анатолий 25 мая 2011 в 18:06 0
не работает! ошибка 500 получается, а если убрать <span class="search_match"><span class="search_match">, то Недостаточно прав для оправки сообщения
googlebot 3 мая 2011 в 12:23 0
Спасибо, полезный пример.
0 3 мая 2011 в 13:47 0
думаю тебе стоит выпустить обновление готовое
Димитриус 3 мая 2011 в 15:51 0
думаю надо собрать еще варианты доспута.
1. Сообщения
2. Добавления фотографий
3. Создание тем форума
4. Отвечать в темах форумов

Кстати это возможно наверное как штрафное действие...smileПри нарушении отправляем его в группу Штрафбатsmileнапример на 3 суток
0 3 мая 2011 в 17:47 0
мне вот для модератора надо права существующие меня не устраивают
Димитриус 3 мая 2011 в 20:11 +2
я мысли читать не умею..
0 4 мая 2011 в 01:05 +1
отключения подключения компонентов и модулей сайта
reload 3 мая 2011 в 22:31 0
Спасибо, очень полезное допиливание; Гибкость настроек это большой плюс)
И вам за идею

+

Димитриус 3 мая 2011 в 23:31 0
я тут подумал по круче допилить))) сейчас вот идею обдумываю)
reload 3 мая 2011 в 23:43 0
Dimitrius, поделитесь идеей, может кто чего подскажет или дополнит. Одна голова хорошо, а две... (не красиво, но иногда результативно)
Димитриус 4 мая 2011 в 00:12 0
создаем таблицу:
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 } ?>
Димитриус 4 мая 2011 в 00:16 0
наполняем таблицу, пишу не сам запрос а его содержвание:
comments/add Добавление комментариев
comments/bbcode Расширенный редактор комментариев (BBCode)
comments/delete Удаление своих комментариев
comments/moderate Удаление чужих комментариев
comments/iscomments Возможность отключать комментарии в своем блоге
forum/moderate Модерация форума
content/add Добавление статей на сайт
content/autoadd Принимать статьи без модерации
content/delete Удаление своих статей
board/autoadd Принимать объявления без модерации
board/moderate Модерация доски объявлений
Димитриус 4 мая 2011 в 00:20 0
далее нам надо дописать ядро таким образом, что бы при установки регистрировались возможные права
Димитриус 4 мая 2011 в 00:21 0
9 строка опечатка
Код PHP:
<?php if (isset($mod['access'])) { if (in_array($t_access['type_access'], $mod['access'])) { echo 'checked="checked"'; } }?> /></td>
0 15 мая 2011 в 04:22 0
может стоит это всё в блог вписать ?