6. Изменение в функции getObjectRights()
В функцию getObjectRights() модуля разделения прав right_access_manager добавлен еще один параметр $not_alone.
Существует 2 варианта использования данной функции:- в рамках шаблона модуля, например, когда Вам нужно прикрепить табличку с вариантами прав в шаблоне вывода редактирования элемента. В этом случае, необходимо установить параметр $not_alone в true, во избежании конфликта вложенности форм.
- максимально просто создать отдельную страницу для редактирования прав элеметна, при переходе из списка. В этомм случае функция используется с значением $not_alone, заданным по-умолчанию (false).
Полный вид функции:
PHP код:
getObjectRights ($id, $table_name, $key_field, $parent_id=false, $parent_table=false, $rights_not_alone=false)
, где
- $id - ID элемента, для которого получаются права (пустой для нового элемента)
- $table_name - наименование таблицы БД элемента
- $key_field - название поля идентификатора элемента в БД
- $parent_id - ID родительского элемента, для которого получаются права (по-умолчанию false)
- $parent_table - наименование таблицы БД родительского элемента, если задан $parent_id (по-умолчанию false)
Пример использования ф-ции, когда у элемента существует шаблон и мы создаем новый элемент (который еще не сохранен в базу).
PHP код:
// Добавление фотогалереи
if ($param_str['page'] == 'photogallery_add') {
// по результату выполнения ф-ции переменная smarty $rights
// будет содержать табличку с правами, вывод переменной нужно установить
// в нужном месте нашего шаблона
$this -> right_access_manager->getObjectRights ('','photogallery','photogallery_id', false, false, true);
return $this->smarty->fetch('photogallery_edit.tpl');
}
Пример использования ф-ции, когда у элемента нет самостоятельного шаблона редактирования (пример использования: список новостей, список текстовых блоков):
PHP код:
/* Права группы*/
if($param_str['page']=='group_rights') {
// .. остальная часть кода ..
$rights = $this -> right_access_manager->getObjectRights ($param_str [ 'group_id' ], 'news_groups', 'group_id');
}