Обнуление количества проголосовавших (работа с заблокированными в панели администрирования полями)

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

Актуально для версии 2.9

У многих типов данных есть поля, которые нельзя отредактировать через панель администрирования. Для работы с этими полями нужно использовать средства API UMI.CMS. Рассмотрим это на примере обнуления количества проголосовавших (тип данных "Пост блога"). Используем для обнуления следующий код:

public function setRatesInZero($pageid){
       $hierarchy = umiHierarchy::getInstance();
       $page = $hierarchy->getElement($pageid);
       if (!$page instanceof umiHierarchyElement) {
          throw new publicException(getLabel('error-page-does-not-exist'));
       }
       $page->setValue('rate_voters',0);
       $page->setValue('rate_sum',0);
       $page->commit();
}

Макрос принимает в качестве параметра id страницы, для которой нужно обнулить показатели rate_voters и rate_sum. Если выполнить макрос, то указанные поля примут значение "0".