Примеры использования 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')%
