Примеры использования API

Материал из Umicms

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

Как получить название шаблона и имя файла используемого шаблона?

$element = umiHierarchy::getInstance()->getElement($element_id);
$tpl_id = $element->getTplId();
 
$template = templatesCollection::getInstance()->getTemplate($tpl_id);
 
//название шаблона
$tpl_title = $template->getTitle();
 
//имя файла шаблона
$tpl_file_name = $template->getFilename();

Первый элемент среди чаилдов будет скорее всего первым элементом в структуре.

Как получить первую дочку для элемента в структуре сайта?

$arr_elements = umiHierarchy::getInstance()->getChilds($element_id,false,true,1);
 
$element_id = key($arr_elements);

Что делать, если хочется выводить в качестве изображения галереи изображение первого элемента в этой галерее?

В принципе у нас уже есть макрос который возвращает свойство объекта по определенному шаблону, но нам требуется получить свойства первого потомка по известному нам %id%.
Пишем кастумный макрос в модуле data файл .\classes\modules\data\__custom.php

  abstract class __custom_data {
          //TODO: Write here your own macroses
 
  public function getPropertyOfChild($element_id, $prop_id, $template = "default", $is_random = false) {
 
          if(!$template) $template = "default";
          $arr_elements = umiHierarchy::getInstance()->getChilds($element_id,false,true,1); 
          $element_id = key($arr_elements);
          return $this->getProperty($element_id, $prop_id, $template, $is_random);
     }
  };

Добавляем в файл \classes\modules\data\permissions.php в массив $permissions['main'] название нашего кастум метода "getPropertyOfChild", чтобы этот метод мог выполняться всеми пользователями.

	$permissions = Array(
		'main' => Array('geteditlink', 'geteditform', 'getcreateform', 'gettypefieldgroups', 'rendereditfield', 
'rendereditfieldstring', 'rendereditfieldint', 'rendereditfieldpassword', 'rendereditfieldrelation', 'rendereditfieldimagefile', 
'saveeditedobject', 'getproperty', 'getpropertygroup', 'getallgroups', 'getpropertyofobject', 'getpropertygroupofobject', 
'getallgroupsofobject', 'rendereditablegroups', 'rendereditablefield', 'renderstringinput', 'renderintegerinput', 
'renderbooleaninput', 'rendertextinput', 'renderwysiwyginput', 'renderimagefileinput', 'renderrelationinput', 'renderdateinput', 
'rendertagsinput', 'rendersymlinkinput', 'saveeditedgroups', 'rss', 'atom', 'generateFeed', 'getRssMeta', 'getRssMetaByPath', 
'getAtomMeta', 'getAtomMetaByPath', 'checkIfFeedable', 'getPropertyOfChild'), ...

Теперь, чтобы вывести изображение в шаблоне на сайте делаем так: %data getPropertyOfChild('%id%','photo','template_for_img')%

Личные инструменты