Как проставить на все страницы права на просмотр гостю

Материал из 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