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

Материал из Umicms
Перейти к:навигация, поиск

У многих типов данных есть поля, которые нельзя отредактировать через панель администрирования. Для работы с этими полями нужно использовать средства 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".