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

Материал из Umicms
Версия от 15:40, 6 мая 2014; Mad grant (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к:навигация, поиск

Актуально для версии 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