Как проставить на все страницы права на просмотр гостю
Материал из Umicms
Версия от 15:40, 6 мая 2014; Mad grant (обсуждение | вклад) (Новая страница: «'''Актуально для версии 2.9.6''' == Задача == Если Вы столкнулись с данной задачей, то решить её …»)
Актуально для версии 2.9.6
Задача
Если Вы столкнулись с данной задачей, то решить её стандартными средствами нельзя. Необходимо написать кастомный макрос, пример оного дан ниже.
Решение
%custom makePermissions()% — проставляет всем страницам права на просмотр гостю (группа 'все').
Для применения этого макроса скопируйте код макроса в файл /classes/modules/custom.php.
Код макроса
public function makePermissions(){
$result = array();
$pages = new selector('pages');
$pages->option('return')->value('id');
$result = $pages->result();
$perm_col = permissionsCollection::getInstance();
$guest_id = $perm_col->getGuestId();
$t = 0;
foreach($result as $page){
$perm_col->setElementPermissions($guest_id, $page['id'], 1);
$t++;
}
return 'Гостю даны права на просмотр ' . $t . ' страниц';
}
Для вызова макроса перейдите по ссылке вида: http://домен_вашего_сайта/udata://custom/makePermissions