/** * Gets news with specified type. Uses paging. * * @param int $type Id of type (rubric) * @param int $limit Limit for output * @param int $page Current page for calculate offset * @return array */ public function getList($type, $limit, $page = 1) { $config = parse_ini_file("./config/config.ini", true); $page -= 1; $hierarchyTypeId = umiHierarchyTypesCollection::getInstance()->getTypeByName("news", "item")->getId(); $objectTypeId = umiObjectTypesCollection::getInstance()->getBaseType("news", "item"); $objectType = umiObjectTypesCollection::getInstance()->getType($objectTypeId); $publishTimeFieldId = $objectType->getFieldId('publish_time'); $publishToAppFieldId = $objectType->getFieldId('publish_to_app'); $sel = new umiSelection(); $sel->addElementType($hierarchyTypeId); $sel->addHierarchyFilter($type, 0, true); if ($config["umi"]["ignore-publish-flag"] != 1) { $sel->addPropertyFilterEqual($publishToAppFieldId, true); } $sel->setOrderByProperty($publishTimeFieldId, false); $sel->addLimit($limit, $page); $result = umiSelectionsParser::runSelection($sel); $items = array(); $size = sizeof($result); for ($i = 0; $i < $size; $i++) { $elementId = $result[$i]; $element = umiHierarchy::getInstance()->getElement($elementId); if (!$element) { continue; } $items[] = array("id" => $elementId, "header" => $element->getValue("h1"), "date" => $element->getValue("publish_time")->getFormattedDate("d.m.Y"), "image" => "http://" . $_SERVER['HTTP_HOST'] . $element->getValue("anons_pic"), "original_link" => "http://" . $_SERVER['HTTP_HOST'] . umiHierarchy::getInstance()->getPathById($elementId)); } return $items; }
public function import_comments($from, $to, $fromHTypeId, $toHTypeId) { $selection = new umiSelection(); $selection->addElementType($fromHTypeId); $selection->addHierarchyFilter($from); $commentList = umiSelectionsParser::runSelection($selection); foreach ($commentList as $commentId) { $newCommentId = $this->makeElementFromExisting($commentId, $to, $toHTypeId); $this->import_comments($commentId, $newCommentId, $fromHTypeId, $toHTypeId); } }
public function album($path = false, $template = "default", $limit = false, $ignore_paging = false) { $curr_page = (int) getRequest('p'); $per_page = $limit ? $limit : $this->per_page; if ($ignore_paging) { $curr_page = 0; } $element_id = $this->analyzeRequiredPath($path); if ($element_id === false && $path != KEYWORD_GRAB_ALL) { throw new publicException(getLabel('error-page-does-not-exist', null, $path)); } list($template_block, $template_block_empty, $template_line) = def_module::loadTemplates("photoalbum/" . $template, "album_block", "album_block_empty", "album_block_line"); $block_arr = array(); $hierarchy_type_id = umiHierarchyTypesCollection::getInstance()->getTypeByName("photoalbum", "photo")->getId(); $sel = new umiSelection(); $sel->addElementType($hierarchy_type_id); if ($path != KEYWORD_GRAB_ALL) { $sel->addHierarchyFilter($element_id); } $sel->addPermissions(); $sel->addLimit($per_page, $curr_page); $result = umiSelectionsParser::runSelection($sel); $total = umiSelectionsParser::runSelectionCounts($sel); $block_arr['id'] = $block_arr['void:album_id'] = $element_id; $lines = array(); if ($total > 0) { foreach ($result as $photo_element_id) { $line_arr = array(); $photo_element = umiHierarchy::getInstance()->getElement($photo_element_id); if (!$photo_element) { continue; } $line_arr['attribute:id'] = $photo_element_id; $line_arr['attribute:link'] = umiHierarchy::getInstance()->getPathById($photo_element_id); $line_arr['xlink:href'] = "upage://" . $photo_element_id; $line_arr['node:name'] = $photo_element->getName(); $this->pushEditable("photoalbum", "photo", $photo_element_id); $lines[] = self::parseTemplate($template_line, $line_arr, $photo_element_id); } } else { return self::parseTemplate($template_block_empty, $block_arr, $element_id); } $block_arr['subnodes:items'] = $block_arr['void:lines'] = $lines; $block_arr['total'] = $total; $block_arr['per_page'] = $per_page; $block_arr['link'] = umiHierarchy::getInstance()->getPathById($element_id); return self::parseTemplate($template_block, $block_arr, $element_id); }
public function lastlents($elementPath, $template = "default", $per_page = false, $ignore_paging = false) { if (!$per_page) { $per_page = $this->per_page; } list($template_block, $template_block_empty, $template_line, $template_archive) = def_module::loadTemplates("news/" . $template, "listlents_block", "listlents_block_empty", "listlents_item", "listlents_archive"); $curr_page = (int) getRequest('p'); if ($ignore_paging) { $curr_page = 0; } $parent_id = $this->analyzeRequiredPath($elementPath); if ($parent_id === false) { throw new publicException(getLabel('error-page-does-not-exist', null, $elementPath)); } $hierarchy_type_id = umiHierarchyTypesCollection::getInstance()->getTypeByName("news", "rubric")->getId(); $sel = new umiSelection(); $sel->addElementType($hierarchy_type_id); $sel->addHierarchyFilter($parent_id, 0, true); $sel->addPermissions(); $sel->addLimit($per_page, $curr_page); $result = umiSelectionsParser::runSelection($sel); $total = umiSelectionsParser::runSelectionCounts($sel); if (($sz = sizeof($result)) > 0) { $block_arr = array(); $lines = array(); for ($i = 0; $i < $sz; $i++) { $line_arr = array(); $element_id = $result[$i]; $element = umiHierarchy::getInstance()->getElement($element_id); $line_arr['attribute:id'] = $element_id; $line_arr['attribute:link'] = umiHierarchy::getInstance()->getPathById($element_id); $line_arr['xlink:href'] = "upage://" . $element_id; $line_arr['void:header'] = $lines_arr['name'] = $element->getName(); $line_arr['node:name'] = $element->getName(); $lines[] = self::parseTemplate($template_line, $line_arr, $element_id); $this->pushEditable("news", "rubric", $element_id); } if (is_array($parent_id)) { list($parent_id) = $parent_id; } $block_arr['subnodes:items'] = $block_arr['void:lines'] = $lines; $block_arr['total'] = $total; $block_arr['per_page'] = $per_page; return self::parseTemplate($template_block, $block_arr, $parent_id); } else { return $template_block_empty; } }
public function getMessageLink($element_id = false) { $element_id = $this->analyzeRequiredPath($element_id); $per_page = $this->per_page; $curr_page = (int) getRequest('p'); $element = umiHierarchy::getInstance()->getElement($element_id, true); if (!$element) { throw new publicException(getLabel('error-page-does-not-exist', null, '')); } $parent_id = $element->getParentId(); $parent_element = umiHierarchy::getInstance()->getElement($parent_id); if (!$parent_element) { throw new publicException(getLabel('error-parent-does-not-exist', null, '')); } if ($element->getValue("publish_time")) { $publish_time = $element->getValue("publish_time")->getFormattedDate("U"); } $sel = new umiSelection(); $sel->setLimitFilter(); $sel->addLimit($per_page, $curr_page); $sel->setElementTypeFilter(); $topic_hierarchy_type_id = umiHierarchyTypesCollection::getInstance()->getTypeByName("forum", "message")->getId(); $sel->addElementType($topic_hierarchy_type_id); $sel->setHierarchyFilter(); $sel->addHierarchyFilter($parent_id); $object_type_id = umiObjectTypesCollection::getInstance()->getBaseType("forum", "message"); $object_type = umiObjectTypesCollection::getInstance()->getType($object_type_id); $publish_time_field_id = $object_type->getFieldId('publish_time'); $sel->setOrderFilter(); $sel->setOrderByProperty($publish_time_field_id, true); $sel->setPropertyFilter(); $sel->addPropertyFilterLess($publish_time_field_id, $publish_time); $sel->setPermissionsFilter(); $sel->addPermissions(); $total = umiSelectionsParser::runSelectionCounts($sel); $p = floor(($total - 1) / $this->per_page); if ($p < 0) { $p = 0; } return umiHierarchy::getInstance()->getPathById($parent_id) . "?p={$p}#" . $element_id; }
public function search_do($template = "default", $search_string = "", $search_types = "", $search_branches = "", $per_page = 0) { list($template_block, $template_line, $template_empty_result, $template_line_quant) = self::loadTemplates("search/" . $template, "search_block", "search_block_line", "search_empty_result", "search_block_line_quant"); // поисковая фраза : if (!$search_string) { $search_string = (string) getRequest('search_string'); } $block_arr = array(); $block_arr['last_search_string'] = $search_string; $search_string = urldecode($search_string); $search_string = htmlspecialchars($search_string); $search_string = str_replace(".", " ", $search_string); $search_string = trim($search_string, " \t\r\n%"); $search_string = str_replace(array('"', "'"), "", $search_string); $orMode = (bool) getRequest('search-or-mode'); if (!$search_string) { return $this->insert_form($template); } // если запрошен поиск только по определенным веткам : $arr_search_by_rels = array(); if (!$search_branches) { $search_branches = (string) getRequest('search_branches'); } $search_branches = trim(rawurldecode($search_branches)); if (strlen($search_branches)) { $arr_branches = preg_split("/[\\s,]+/", $search_branches); foreach ($arr_branches as $i_branch => $v_branch) { $arr_branches[$i_branch] = $this->analyzeRequiredPath($v_branch); } $arr_branches = array_map('intval', $arr_branches); $arr_search_by_rels = array_merge($arr_search_by_rels, $arr_branches); $o_selection = new umiSelection(); $o_selection->addHierarchyFilter($arr_branches, 100, true); $o_result = umiSelectionsParser::runSelection($o_selection); $sz = sizeof($o_result); for ($i = 0; $i < $sz; $i++) { $arr_search_by_rels[] = intval($o_result[$i]); } } // если запрошен поиск только по определенным типам : if (!$search_types) { $search_types = (string) getRequest('search_types'); } $search_types = rawurldecode($search_types); if (strlen($search_types)) { $search_types = preg_split("/[\\s,]+/", $search_types); $search_types = array_map('intval', $search_types); } $lines = array(); $result = searchModel::getInstance()->runSearch($search_string, $search_types, $arr_search_by_rels, $orMode); $p = (int) getRequest('p'); $total = sizeof($result); // если запрошена нетипичная постраничка if (!$per_page) { $per_page = intval(getRequest('per_page')); } if (!$per_page) { $per_page = $this->per_page; } $result = array_slice($result, $per_page * $p, $per_page); $i = $per_page * $p; foreach ($result as $num => $element_id) { $line_arr = array(); $element = umiHierarchy::getInstance()->getElement($element_id); if (!$element) { continue; } $line_arr['void:num'] = ++$i; $line_arr['attribute:id'] = $element_id; $line_arr['attribute:name'] = $element->getName(); $line_arr['attribute:link'] = umiHierarchy::getInstance()->getPathById($element_id); $line_arr['xlink:href'] = "upage://" . $element_id; $line_arr['node:context'] = searchModel::getInstance()->getContext($element_id, $search_string); $line_arr['void:quant'] = $num < count($result) - 1 ? self::parseTemplate($template_line_quant, array()) : ""; $lines[] = self::parseTemplate($template_line, $line_arr, $element_id); $this->pushEditable(false, false, $element_id); umiHierarchy::getInstance()->unloadElement($element_id); } $block_arr['subnodes:items'] = $block_arr['void:lines'] = $lines; $block_arr['total'] = $total; $block_arr['per_page'] = $per_page; return self::parseTemplate($total > 0 ? $template_block : $template_empty_result, $block_arr); }
public function collectAllChanges($module, $method, $parentElementId = false) { $endTime = time(); $beginTime = $endTime - 3600 * 24 * 30; $hierarchy_type_id = umiHierarchyTypesCollection::getInstance()->getTypeByName($module, $method)->getId(); $object_type_id = umiObjectTypesCollection::getInstance()->getBaseType($module, $method); $object_type = umiObjectTypesCollection::getInstance()->getType($object_type_id); $publish_time_field_id = $object_type->getFieldId('publish_time'); $sel = new umiSelection(); $sel->setElementTypeFilter(); $sel->addElementType($hierarchy_type_id); $sel->setPermissionsFilter(); $sel->addPermissions(); $sel->setOrderFilter(); $sel->setOrderByProperty($publish_time_field_id, false); $sel->setPropertyFilter(); $sel->addPropertyFilterBetween($publish_time_field_id, $beginTime, $endTime); if ($parentElementId !== false) { if (!is_numeric($parentElementId)) { $parentElementId = umiHierarchy::getInstance()->getIdByPath($parentElementId); } $sel->setHierarchyFilter(); $sel->addHierarchyFilter($parentElementId); } $result = umiSelectionsParser::runSelection($sel); $total = umiSelectionsParser::runSelectionCounts($sel); $res = array(); foreach ($result as $elementId) { $childs = sizeof(umiHierarchy::getInstance()->getChilds($elementId)); $res[] = array("id" => $elementId, "childs" => $childs); } return array("result" => $res, "total" => $total); }
public function category($template = "default", $element_path = false, $limit = false, $ignore_paging = false, $order = true) { if(!$template) $template = "default"; list($template_block, $template_block_empty, $template_line) = def_module::loadTemplates("faq/".$template, "questions_block", "questions_block_empty", "questions_block_line"); $category_id = $this->analyzeRequiredPath($element_path); $hierarchy_type_id = umiHierarchyTypesCollection::getInstance()->getTypeByName("faq", "question")->getId(); $per_page = ($limit) ? $limit : $this->per_page; $curr_page = (int) getRequest('p'); if($ignore_paging) $curr_page = 0; $sel = new umiSelection; $sel->addElementType($hierarchy_type_id); $sel->addHierarchyFilter($category_id); $sel->addLimit($per_page, $curr_page); $sel->addPermissions(); $sel->setOrderByOrd((bool) $order); $result = umiSelectionsParser::runSelection($sel); $total = umiSelectionsParser::runSelectionCounts($sel); if(($sz = sizeof($result)) > 0) { $block_arr = Array(); $block_arr['total'] = $total; $block_arr['per_page'] = $per_page; $lines = Array(); for($i = 0; $i < $sz; $i++) { if ($i < $limit || $limit === false) { $element_id = $result[$i]; $element = umiHierarchy::getInstance()->getElement($element_id); if(!$element) continue; $line_arr = Array(); $line_arr['attribute:id'] = $element_id; $line_arr['attribute:name'] = $line_arr['void:text'] = $element->getName(); $line_arr['void:alt_name'] = $element->getAltName(); $line_arr['attribute:link'] = umiHierarchy::getInstance()->getPathById($element_id); $line_arr['xlink:href'] = "upage://" . $element_id; $line_arr['question'] = nl2br($element->getValue("question")); $line_arr['answer'] = ($answer = $element->getValue("answer")) ? nl2br($answer) : nl2br($element->getValue("content")); $this->pushEditable("faq", "question", $element_id); $lines []= self::parseTemplate($template_line, $line_arr, $element_id); } } $block_arr['subnodes:items'] = $block_arr['void:lines'] = $lines; return self::parseTemplate($template_block, $block_arr, $category_id); } else { return $template_block_empty; } }
public function getSelectionObject() { $hierarchy_type_id = umiHierarchyTypesCollection::getInstance()->getTypeByName("catalog", "object")->getId(); $sel = new umiSelection(); $sel->setElementTypeFilter(); $sel->addElementType($hierarchy_type_id); $sel->setHierarchyFilter(); $sel->addHierarchyFilter($this->catalogId, 1); $sel->setPermissionsFilter(); $sel->addPermissions(); //add custom filters kFilters::getInstance($this->catalogId)->applyCustomCountFilters($sel); return $sel; }
public function getObjectsList($template = "default", $path = false, $limit = false, $ignore_paging = false, $i_need_deep = -1, $field_id = false, $asc = true) { if (!$template) { $template = "default"; } if (!$i_need_deep) { $i_need_deep = intval(getRequest('param4')); } if (!$i_need_deep) { $i_need_deep = 0; } $i_need_deep = intval($i_need_deep); if ($i_need_deep === -1) { $i_need_deep = 100; } $hierarchy = umiHierarchy::getInstance(); list($template_block, $template_block_empty, $template_block_search_empty, $template_line) = def_module::loadTemplates("catalog/" . $template, "objects_block", "objects_block_empty", "objects_block_search_empty", "objects_block_line"); $hierarchy_type_id = umiHierarchyTypesCollection::getInstance()->getTypeByName("catalog", "object")->getId(); $category_id = $this->analyzeRequiredPath($path); if ($category_id === false && $path != KEYWORD_GRAB_ALL) { throw new publicException(getLabel('error-page-does-not-exist', null, $path)); } $category_element = $hierarchy->getElement($category_id); $per_page = $limit ? $limit : $this->per_page; $curr_page = getRequest('p'); if ($ignore_paging) { $curr_page = 0; } $sel = new umiSelection(); $sel->setElementTypeFilter(); $sel->addElementType($hierarchy_type_id); if ($path != KEYWORD_GRAB_ALL) { $sel->setHierarchyFilter(); $sel->addHierarchyFilter($category_id, $i_need_deep); } $sel->setPermissionsFilter(); $sel->addPermissions(); $hierarchy_type = umiHierarchyTypesCollection::getInstance()->getType($hierarchy_type_id); $type_id = umiObjectTypesCollection::getInstance()->getBaseType($hierarchy_type->getName(), $hierarchy_type->getExt()); if ($path === KEYWORD_GRAB_ALL) { $curr_category_id = cmsController::getInstance()->getCurrentElementId(); } else { $curr_category_id = $category_id; } if ($path != KEYWORD_GRAB_ALL) { $type_id = $hierarchy->getDominantTypeId($curr_category_id, $i_need_deep, $hierarchy_type_id); } if (!$type_id) { $type_id = umiObjectTypesCollection::getInstance()->getBaseType($hierarchy_type->getName(), $hierarchy_type->getExt()); } if ($type_id) { $this->autoDetectOrders($sel, $type_id); $this->autoDetectFilters($sel, $type_id); if ($this->isSelectionFiltered) { $template_block_empty = $template_block_search_empty; $this->isSelectionFiltered = false; } } else { $sel->setOrderFilter(); $sel->setOrderByName(); } if ($curr_page !== "all") { $curr_page = (int) $curr_page; $sel->setLimitFilter(); $sel->addLimit($per_page, $curr_page); } if ($field_id) { if (is_numeric($field_id)) { $sel->setOrderByProperty($field_id, $asc); } else { if ($type_id) { $field_id = umiObjectTypesCollection::getInstance()->getType($type_id)->getFieldId($field_id); if ($field_id) { $sel->setOrderByProperty($field_id, $asc); } else { $sel->setOrderByOrd($asc); } } else { $sel->setOrderByOrd($asc); } } } else { $sel->setOrderByOrd($asc); } $result = umiSelectionsParser::runSelection($sel); $total = umiSelectionsParser::runSelectionCounts($sel); if (($sz = sizeof($result)) > 0) { $block_arr = array(); $lines = array(); for ($i = 0; $i < $sz; $i++) { $element_id = $result[$i]; $element = umiHierarchy::getInstance()->getElement($element_id); if (!$element) { continue; } $line_arr = array(); $line_arr['attribute:id'] = $element_id; $line_arr['attribute:alt_name'] = $element->getAltName(); $line_arr['attribute:link'] = umiHierarchy::getInstance()->getPathById($element_id); $line_arr['xlink:href'] = "upage://" . $element_id; $line_arr['node:text'] = $element->getName(); $lines[] = self::parseTemplate($template_line, $line_arr, $element_id); $this->pushEditable("catalog", "object", $element_id); umiHierarchy::getInstance()->unloadElement($element_id); } $block_arr['subnodes:lines'] = $lines; $block_arr['numpages'] = umiPagenum::generateNumPage($total, $per_page); $block_arr['total'] = $total; $block_arr['per_page'] = $per_page; $block_arr['category_id'] = $category_id; if ($type_id) { $block_arr['type_id'] = $type_id; } return self::parseTemplate($template_block, $block_arr, $category_id); } else { $block_arr['numpages'] = umiPagenum::generateNumPage(0, 0); $block_arr['lines'] = ""; $block_arr['total'] = 0; $block_arr['per_page'] = 0; $block_arr['category_id'] = $category_id; return self::parseTemplate($template_block_empty, $block_arr, $category_id); } }
public function getObjectsList($template = "default", $path = false, $limit = false, $ignore_paging = false, $i_need_deep = 0, $field_id = false, $asc = true) { // шаблон для tpl шаблонизатора if (!$template) { $template = "default"; } // глубина поиска if (!$i_need_deep) { $i_need_deep = intval(getRequest('param4')); } if (!$i_need_deep) { $i_need_deep = 0; } $i_need_deep = intval($i_need_deep); if ($i_need_deep === -1) { $i_need_deep = 100; } $hierarchy = umiHierarchy::getInstance(); list($template_block, $template_block_empty, $template_block_search_empty, $template_line) = def_module::loadTemplates("catalog/" . $template, "objects_block", "objects_block_empty", "objects_block_search_empty", "objects_block_line"); // идентификатор объектов для поиска $hierarchy_type_id = umiHierarchyTypesCollection::getInstance()->getTypeByName("catalog", "object")->getId(); // идшник каталога в котором производиться отбор $category_id = $this->analyzeRequiredPath($path); // не задан каталог или патс не задан исключение if ($category_id === false && $path != KEYWORD_GRAB_ALL) { throw new publicException(getLabel('error-page-does-not-exist', null, $path)); } // получть каталог $category_element = $hierarchy->getElement($category_id); // количество для выбора $per_page = $limit ? $limit : $this->per_page; $curr_page = getRequest('p'); if ($ignore_paging) { $curr_page = 0; } // задаёться выборка $sel = new umiSelection(); $sel->setElementTypeFilter(); $sel->addElementType($hierarchy_type_id); if ($path != KEYWORD_GRAB_ALL) { $sel->setHierarchyFilter(); $sel->addHierarchyFilter($category_id, $i_need_deep); } $sel->setPermissionsFilter(); $sel->addPermissions(); // полуить тип по айд $hierarchy_type = umiHierarchyTypesCollection::getInstance()->getType($hierarchy_type_id); // Получить тип данных, связанный с базовым типом МОДУЛЬ МЕТОД $type_id = umiObjectTypesCollection::getInstance()->getBaseType($hierarchy_type->getName(), $hierarchy_type->getExt()); if ($path === KEYWORD_GRAB_ALL) { $curr_category_id = cmsController::getInstance()->getCurrentElementId(); } else { $curr_category_id = $category_id; } if ($path != KEYWORD_GRAB_ALL) { // Определить id типа данных, которому принадлежат больше всего дочерних страниц для указанной страницы $type_id = $hierarchy->getDominantTypeId($curr_category_id, $i_need_deep, $hierarchy_type_id); } if (!$type_id) { $type_id = umiObjectTypesCollection::getInstance()->getBaseType($hierarchy_type->getName(), $hierarchy_type->getExt()); } if ($type_id) { $this->autoDetectOrders($sel, $type_id); $this->autoDetectFilters($sel, $type_id); if ($this->isSelectionFiltered) { $template_block_empty = $template_block_search_empty; $this->isSelectionFiltered = false; } } else { $sel->setOrderFilter(); $sel->setOrderByName(); } if ($curr_page !== "all") { $curr_page = (int) $curr_page; $sel->setLimitFilter(); $sel->addLimit($per_page, $curr_page); } if ($field_id) { if (is_numeric($field_id)) { $sel->setOrderByProperty($field_id, $asc); } else { if ($type_id) { $field_id = umiObjectTypesCollection::getInstance()->getType($type_id)->getFieldId($field_id); if ($field_id) { $sel->setOrderByProperty($field_id, $asc); } else { $sel->setOrderByOrd($asc); } } else { $sel->setOrderByOrd($asc); } } } else { $sel->setOrderByOrd($asc); } $result = umiSelectionsParser::runSelection($sel); $total = umiSelectionsParser::runSelectionCounts($sel); // формируется результат if (($sz = sizeof($result)) > 0) { $block_arr = array(); $lines = array(); for ($i = 0; $i < $sz; $i++) { $element_id = $result[$i]; $element = umiHierarchy::getInstance()->getElement($element_id); if (!$element) { continue; } $line_arr = array(); $line_arr['attribute:id'] = $element_id; $line_arr['attribute:alt_name'] = $element->getAltName(); $line_arr['attribute:link'] = umiHierarchy::getInstance()->getPathById($element_id); $line_arr['xlink:href'] = "upage://" . $element_id; $line_arr['node:text'] = $element->getName(); $lines[] = self::parseTemplate($template_line, $line_arr, $element_id); $this->pushEditable("catalog", "object", $element_id); umiHierarchy::getInstance()->unloadElement($element_id); } $block_arr['subnodes:lines'] = $lines; $block_arr['numpages'] = umiPagenum::generateNumPage($total, $per_page); $block_arr['total'] = $total; $block_arr['per_page'] = $per_page; $block_arr['category_id'] = $category_id; if ($type_id) { $block_arr['type_id'] = $type_id; } return self::parseTemplate($template_block, $block_arr, $category_id); } else { $block_arr['numpages'] = umiPagenum::generateNumPage(0, 0); $block_arr['lines'] = ""; $block_arr['total'] = 0; $block_arr['per_page'] = 0; $block_arr['category_id'] = $category_id; return self::parseTemplate($template_block_empty, $block_arr, $category_id); } }
public function getPrevious($vd6fe1d0be6347b8ef2427fa629c04485, $v66f6181bcb4cff4cd38fbc804a036db6 = "default", $vdfc394bd05a4b48161c790034af522a8 = "", $v70a17ffa722a3985b86d30b034ad06d7 = 0) { if (!$v66f6181bcb4cff4cd38fbc804a036db6) { $v66f6181bcb4cff4cd38fbc804a036db6 = "default"; } $v7057e8409c7c531a1a6e9ac3df4ed549 = def_module::analyzeRequiredPath($vd6fe1d0be6347b8ef2427fa629c04485); if ($v7057e8409c7c531a1a6e9ac3df4ed549 === false) { throw new publicException(getLabel('error-page-does-not-exist', null, $vd6fe1d0be6347b8ef2427fa629c04485)); } $v8e2dcfd7e7e24b1ca76c1193f645902b = umiHierarchy::getInstance()->getElement($v7057e8409c7c531a1a6e9ac3df4ed549); $v6be379826b20cc58475f636e33f4606b = $v8e2dcfd7e7e24b1ca76c1193f645902b->getParentId(); if ($vdfc394bd05a4b48161c790034af522a8) { $v8be74552df93e31bbdd6b36ed74bdb6a = new umiSelection(); $v8be74552df93e31bbdd6b36ed74bdb6a->addHierarchyFilter($v6be379826b20cc58475f636e33f4606b); $v8be74552df93e31bbdd6b36ed74bdb6a->addActiveFilter(true); $v8be74552df93e31bbdd6b36ed74bdb6a->addPermissions(); $v87306dd4235ed712ebc07fe169b76f83 = $v8e2dcfd7e7e24b1ca76c1193f645902b->getObject()->getTypeId(); $v7ae7003da59ae71dcc9f8638ef50593d = umiObjectTypesCollection::getInstance()->getType($v87306dd4235ed712ebc07fe169b76f83); $va1b28424d5a1e1b259a214fddb9465cb = $v7ae7003da59ae71dcc9f8638ef50593d->getFieldId($vdfc394bd05a4b48161c790034af522a8); if (!$va1b28424d5a1e1b259a214fddb9465cb) { throw new publicException(getLabel('error-prop-not-found', null, $vdfc394bd05a4b48161c790034af522a8)); } $v8be74552df93e31bbdd6b36ed74bdb6a->setOrderByProperty($va1b28424d5a1e1b259a214fddb9465cb, $v70a17ffa722a3985b86d30b034ad06d7); $v476b583e3acc46dcf196c34a1a5f93ab = umiSelectionsParser::runSelection($v8be74552df93e31bbdd6b36ed74bdb6a); } else { $v476b583e3acc46dcf196c34a1a5f93ab = umiHierarchy::getInstance()->getChilds($v6be379826b20cc58475f636e33f4606b, false); $v476b583e3acc46dcf196c34a1a5f93ab = array_keys($v476b583e3acc46dcf196c34a1a5f93ab); } $v36c78ef23c280041d34976b38ef4406c = false; foreach ($v476b583e3acc46dcf196c34a1a5f93ab as $vb80bb7740288fda1f201890375a60c8f) { if ($vb80bb7740288fda1f201890375a60c8f == $v7057e8409c7c531a1a6e9ac3df4ed549) { break; } else { $v36c78ef23c280041d34976b38ef4406c = $vb80bb7740288fda1f201890375a60c8f; } } list($v4f2afc9c4099ee1f39c9f551123e54bd, $vd10a92a0a9d6587947ee1fd7d3e4aa42) = def_module::loadTemplates("content/slider/" . $v66f6181bcb4cff4cd38fbc804a036db6, "previous", "previous_first"); if ($v36c78ef23c280041d34976b38ef4406c !== false) { $vfca1bff8ad8b3a8585abfb0ad523ba42 = array(); $vfca1bff8ad8b3a8585abfb0ad523ba42['id'] = $v36c78ef23c280041d34976b38ef4406c; $vfca1bff8ad8b3a8585abfb0ad523ba42['link'] = umiHierarchy::getInstance()->getPathById($v36c78ef23c280041d34976b38ef4406c); return def_module::parseTemplate($v4f2afc9c4099ee1f39c9f551123e54bd, $vfca1bff8ad8b3a8585abfb0ad523ba42, $v36c78ef23c280041d34976b38ef4406c); } else { return def_module::isXSLTResultMode() ? "" : $vd10a92a0a9d6587947ee1fd7d3e4aa42; } }
/** * @desc Выводит список черновиков текущего пользователя * @param Int $blogId Идентификатор блога * @param String $template Имя файла шаблона для вывода * @return string|array */ public function draughtsList($blogId = false, $template = 'default', $limit = false) { list($sTemplateBlock, $sTemplateLine) = self::loadTemplates('blogs20/' . $template, 'posts_list_block', 'posts_list_line'); $page = (int) getRequest('p'); $oBlog = null; $oHierarchy = umiHierarchy::getInstance(); if ($blogId === false) { $iTmp = getRequest('param0'); if ($iTmp) { $blogId = (int) $iTmp; } } $hierarchyTypes = umiHierarchyTypesCollection::getInstance(); $blogHierachyTypeId = $hierarchyTypes->getTypeByName("blogs20", "blog")->getId(); $sel = new umiSelection(); $hierarchy_type_id = $hierarchyTypes->getTypeByName("blogs20", "post")->getId(); $sel->addElementType($hierarchy_type_id); $typesCollection = umiObjectTypesCollection::getInstance(); $typeId = $typesCollection->getTypeByHierarchyTypeId($hierarchy_type_id); $postType = $typesCollection->getType($typeId); $userId = cmsController::getInstance()->getModule('users')->user_id; $sel->addOwnerFilter(array($userId)); if ($blogId !== false) { $oBlog = $oHierarchy->getElement($blogId); if ($oBlog && $oBlog->getHierarchyType() == $blogHierachyTypeId) { $sel->addHierarchyFilter($blogId); } } $sel->addActiveFilter(false); $sel->setOrderByProperty($postType->getFieldId('publish_time'), false); $sel->addLimit($limit ? $limit : $this->posts_per_page, $page); self::applyTimeRange($sel, $postType); $result = umiSelectionsParser::runSelection($sel); $total = umiSelectionsParser::runSelectionCounts($sel); $aLines = array(); foreach ($result as $iPostId) { $oPost = $oHierarchy->getElement($iPostId); if (!$oPost) { continue; } if (!$oBlog) { $oBlog = $oHierarchy->getElement($oPost->getRel()); } if (!$oBlog) { continue; } $sPostLink = '/blogs20/postView/' . $iPostId . '/'; $sBlogLink = $oHierarchy->getPathById($oBlog->getId(), true); $aLineParam = array(); $aLineParam['attribute:id'] = $iPostId; $aLineParam['attribute:author_id'] = $oPost->getObject()->getOwnerId(); $aLineParam['node:name'] = $oPost->getName(); $aLineParam['post_link'] = $sPostLink; $aLineParam['blog_link'] = $sBlogLink; $aLineParam['bid'] = $oBlog->getId(); $aLineParam['blog_title'] = $oBlog->getValue('title'); $aLineParam['title'] = $oPost->getValue('title'); $aLineParam['content'] = $oPost->getValue('content'); $aLineParam['cut'] = $this->prepareCut($aLineParam['content'], $sPostLink, $template); $aLineParam['subnodes:tags'] = $this->prepareTags($oPost->getValue('tags')); $aLineParam['comments_count'] = $oHierarchy->getChildsCount($iPostId, false); $this->pushEditable("blogs20", "post", $iPostId); $aLines[] = self::parseTemplate($sTemplateLine, $aLineParam, $iPostId); } $aBlockParam = array(); $aBlockParam['void:lines'] = $aBlockParam['subnodes:items'] = $aLines; $aBlockParam['bid'] = $blogId; $aBlockParam['per_page'] = $limit ? $limit : $this->posts_per_page; $aBlockParam['total'] = $total; return self::parseTemplate($sTemplateBlock, $aBlockParam); }
public function moveBefore($v7057e8409c7c531a1a6e9ac3df4ed549, $vd5d4bb9b2c282937ee64b1fb0495ef08, $v37b7e5e846e31d9da322c6e743ce3b3c = false) { $this->disableCache(); if (!$this->isExists($v7057e8409c7c531a1a6e9ac3df4ed549)) { return false; } $v8e2dcfd7e7e24b1ca76c1193f645902b = umiHierarchy::getInstance()->getElement($v7057e8409c7c531a1a6e9ac3df4ed549); $v78e6dd7a49f5b0cb2106a3a434dd5c86 = $v8e2dcfd7e7e24b1ca76c1193f645902b->getLangId(); $v662cbf1253ac7d8750ed9190c52163e5 = $v8e2dcfd7e7e24b1ca76c1193f645902b->getDomainId(); $v41a1470180f8488ba6040c5ff7dc6833 = $v8e2dcfd7e7e24b1ca76c1193f645902b->getRel(); $v7057e8409c7c531a1a6e9ac3df4ed549 = (int) $v7057e8409c7c531a1a6e9ac3df4ed549; $vd5d4bb9b2c282937ee64b1fb0495ef08 = (int) $vd5d4bb9b2c282937ee64b1fb0495ef08; $v8e2dcfd7e7e24b1ca76c1193f645902b->setRel($vd5d4bb9b2c282937ee64b1fb0495ef08); $v46a8df3f1b0f374830be2497076b9446 = $v8e2dcfd7e7e24b1ca76c1193f645902b->getTplId(); $v3568678a69e0e639e9c3163b2d10ceba = templatesCollection::getInstance()->getTemplatesList($v662cbf1253ac7d8750ed9190c52163e5, $v78e6dd7a49f5b0cb2106a3a434dd5c86); $vf07440bfac87b2aa38a59a0109b6cd38 = true; foreach ($v3568678a69e0e639e9c3163b2d10ceba as $vcfc7e0dcf6883d635b928f1e31f7694d) { if ($vcfc7e0dcf6883d635b928f1e31f7694d->getId() == $v46a8df3f1b0f374830be2497076b9446) { $vf07440bfac87b2aa38a59a0109b6cd38 = false; break; } } if ($vf07440bfac87b2aa38a59a0109b6cd38) { $v84b4de448609c5297d79dbec08101fbd = templatesCollection::getInstance()->getDefaultTemplate($v662cbf1253ac7d8750ed9190c52163e5, $v78e6dd7a49f5b0cb2106a3a434dd5c86); if ($v84b4de448609c5297d79dbec08101fbd) { $v8c3112e89e491f40ed057b32883c646c = $v84b4de448609c5297d79dbec08101fbd->getId(); $v770c309c1aed0fbfabad24a3d5933129 = new umiSelection(); $v770c309c1aed0fbfabad24a3d5933129->addHierarchyFilter($v7057e8409c7c531a1a6e9ac3df4ed549, 100); $v4650086681d0c3d7660463e94b1156a5 = umiSelectionsParser::runSelection($v770c309c1aed0fbfabad24a3d5933129); $v4650086681d0c3d7660463e94b1156a5[] = $v7057e8409c7c531a1a6e9ac3df4ed549; $v18e7588ee516318bc8ae9c8c0ff7c917 = implode(",", $v4650086681d0c3d7660463e94b1156a5); $vac5c74b64b4b8352ef2f181affb5ac2a = "UPDATE cms3_hierarchy SET tpl_id = '{$v8c3112e89e491f40ed057b32883c646c}' WHERE id IN (" . $v18e7588ee516318bc8ae9c8c0ff7c917 . ")"; } } if ($v37b7e5e846e31d9da322c6e743ce3b3c) { $v37b7e5e846e31d9da322c6e743ce3b3c = (int) $v37b7e5e846e31d9da322c6e743ce3b3c; $vac5c74b64b4b8352ef2f181affb5ac2a = "SELECT ord FROM cms3_hierarchy WHERE id = '{$v37b7e5e846e31d9da322c6e743ce3b3c}'"; $result = l_mysql_query($vac5c74b64b4b8352ef2f181affb5ac2a, true); if (list($v8bef1cc20ada3bef55fdf132cb2a1cb9) = mysql_fetch_row($result)) { $v8bef1cc20ada3bef55fdf132cb2a1cb9 = (int) $v8bef1cc20ada3bef55fdf132cb2a1cb9; $vac5c74b64b4b8352ef2f181affb5ac2a = "UPDATE cms3_hierarchy SET ord = (ord + 1) WHERE rel = '{$vd5d4bb9b2c282937ee64b1fb0495ef08}' AND lang_id = '{$v78e6dd7a49f5b0cb2106a3a434dd5c86}' AND domain_id = '{$v662cbf1253ac7d8750ed9190c52163e5}' AND ord >= {$v8bef1cc20ada3bef55fdf132cb2a1cb9}"; l_mysql_query($vac5c74b64b4b8352ef2f181affb5ac2a); $v8e2dcfd7e7e24b1ca76c1193f645902b->setOrd($v8bef1cc20ada3bef55fdf132cb2a1cb9); $this->rewriteElementAltName($v7057e8409c7c531a1a6e9ac3df4ed549); $this->rebuildRelationNodes($v7057e8409c7c531a1a6e9ac3df4ed549); $this->addUpdatedElementId($v7057e8409c7c531a1a6e9ac3df4ed549); $v8e2dcfd7e7e24b1ca76c1193f645902b->commit(); return true; } else { return false; } } else { $vac5c74b64b4b8352ef2f181affb5ac2a = "SELECT MAX(ord) FROM cms3_hierarchy WHERE rel = '{$vd5d4bb9b2c282937ee64b1fb0495ef08}' AND lang_id = '{$v78e6dd7a49f5b0cb2106a3a434dd5c86}' AND domain_id = '{$v662cbf1253ac7d8750ed9190c52163e5}'"; $result = l_mysql_query($vac5c74b64b4b8352ef2f181affb5ac2a); if (list($v8bef1cc20ada3bef55fdf132cb2a1cb9) = mysql_fetch_row($result)) { ++$v8bef1cc20ada3bef55fdf132cb2a1cb9; } else { $v8bef1cc20ada3bef55fdf132cb2a1cb9 = 1; } $vac5c74b64b4b8352ef2f181affb5ac2a = "UPDATE cms3_hierarchy SET ord = '{$v8bef1cc20ada3bef55fdf132cb2a1cb9}', rel = '{$vd5d4bb9b2c282937ee64b1fb0495ef08}' WHERE id = '{$v7057e8409c7c531a1a6e9ac3df4ed549}'"; l_mysql_query($vac5c74b64b4b8352ef2f181affb5ac2a); $this->rewriteElementAltName($v7057e8409c7c531a1a6e9ac3df4ed549); $this->rebuildRelationNodes($v7057e8409c7c531a1a6e9ac3df4ed549); $this->addUpdatedElementId($v7057e8409c7c531a1a6e9ac3df4ed549); return true; } }
public function autoDetectAllFilters(umiSelection $v8be74552df93e31bbdd6b36ed74bdb6a, $v38bceec7c944e9431e65bb5bb50cc5fa = false) { $v6a8e3fc043747ec4b0e60aed6b7023ed = getRequest('rel'); $vf99eaf9123d0eb944e4a40f8c8b73404 = (int) getRequest('depth'); $v8ef57923ab3049b18fb75541ff476ff7 = getRequest('domain_id'); $v99deeeb03d58e86bd63af257b5b74888 = getRequest('lang_id'); if (!$vf99eaf9123d0eb944e4a40f8c8b73404) { $vf99eaf9123d0eb944e4a40f8c8b73404 = 0; } $vb81ca7c0ccaa77e7aa91936ab0070695 = umiHierarchy::getInstance(); $v9b81909fd0da3add2602a8d0ede0e4e7 = umiObjectTypesCollection::getInstance(); $v1723bdd4ee51910267a625cae41ced8a = umiHierarchyTypesCollection::getInstance(); if (is_null(getRequest('or-mode')) == false) { $v8be74552df93e31bbdd6b36ed74bdb6a->setConditionModeOr(); } if (isset($v8ef57923ab3049b18fb75541ff476ff7[0])) { $v8be74552df93e31bbdd6b36ed74bdb6a->setDomainId($v8ef57923ab3049b18fb75541ff476ff7[0]); } if (isset($v99deeeb03d58e86bd63af257b5b74888[0])) { $v8be74552df93e31bbdd6b36ed74bdb6a->setLangId($v99deeeb03d58e86bd63af257b5b74888[0]); } if (is_array($v6a8e3fc043747ec4b0e60aed6b7023ed) && count($v6a8e3fc043747ec4b0e60aed6b7023ed)) { foreach ($v6a8e3fc043747ec4b0e60aed6b7023ed as $vc600dd3e8efd757e388daedf1a383638) { $v558363dde110ad2b3af09518966e0197 = intval($vc600dd3e8efd757e388daedf1a383638); if (is_numeric($v558363dde110ad2b3af09518966e0197)) { $v8be74552df93e31bbdd6b36ed74bdb6a->addHierarchyFilter(intval($vc600dd3e8efd757e388daedf1a383638), $vf99eaf9123d0eb944e4a40f8c8b73404, true); } } } $v0e8133eb006c0f85ed9444ae07a60842 = array_extract_values($v8be74552df93e31bbdd6b36ed74bdb6a->getObjectTypeConds()); $vdad8db09124c43be9156ca0e7596fc04 = array_extract_values($v8be74552df93e31bbdd6b36ed74bdb6a->getElementTypeConds()); $vc4feb6f9b5b1aa42ea49f74ecab346f9 = array_extract_values($v8be74552df93e31bbdd6b36ed74bdb6a->getHierarchyConds(), $vacbd18db4cc2f85cedef654fccc4a4d8, true); $v0132bb0bf9821bce1103f4db6ced0a5f = getRequest('search-all-text'); $v0132bb0bf9821bce1103f4db6ced0a5f = array_extract_values($v0132bb0bf9821bce1103f4db6ced0a5f); $v00ef6e359e66ade0706b8305550f7ea2 = getRequest('fields_filter'); $v00ef6e359e66ade0706b8305550f7ea2 = array_extract_values($v00ef6e359e66ade0706b8305550f7ea2, $vacbd18db4cc2f85cedef654fccc4a4d8, true); if (sizeof($vdad8db09124c43be9156ca0e7596fc04)) { $vd663178671639336ce153c008ff6acef = $vdad8db09124c43be9156ca0e7596fc04[sizeof($vdad8db09124c43be9156ca0e7596fc04) - 1]; } else { $vd663178671639336ce153c008ff6acef = false; } if (sizeof($v0e8133eb006c0f85ed9444ae07a60842)) { reset($v0e8133eb006c0f85ed9444ae07a60842); $v5f694956811487225d15e973ca38fbab = current($v0e8133eb006c0f85ed9444ae07a60842); } else { if (sizeof($vc4feb6f9b5b1aa42ea49f74ecab346f9)) { reset($vc4feb6f9b5b1aa42ea49f74ecab346f9); $v5f694956811487225d15e973ca38fbab = $vb81ca7c0ccaa77e7aa91936ab0070695->getDominantTypeId(current($vc4feb6f9b5b1aa42ea49f74ecab346f9)); } else { if (sizeof($vdad8db09124c43be9156ca0e7596fc04) && (!empty($v0132bb0bf9821bce1103f4db6ced0a5f) || sizeof($vdad8db09124c43be9156ca0e7596fc04) == 1)) { reset($vdad8db09124c43be9156ca0e7596fc04); $v5f694956811487225d15e973ca38fbab = $v9b81909fd0da3add2602a8d0ede0e4e7->getTypeByHierarchyTypeId(array_pop($vdad8db09124c43be9156ca0e7596fc04)); } else { $v5f694956811487225d15e973ca38fbab = $v9b81909fd0da3add2602a8d0ede0e4e7->getTypeIdByGUID('root-pages-type'); } } } if (empty($vc4feb6f9b5b1aa42ea49f74ecab346f9) && !empty($vdad8db09124c43be9156ca0e7596fc04) && empty($v0132bb0bf9821bce1103f4db6ced0a5f) && empty($v00ef6e359e66ade0706b8305550f7ea2)) { $v8be74552df93e31bbdd6b36ed74bdb6a->optimize_root_search_query = true; } else { if (!empty($v00ef6e359e66ade0706b8305550f7ea2)) { if ($vd663178671639336ce153c008ff6acef) { $v5f694956811487225d15e973ca38fbab = $v9b81909fd0da3add2602a8d0ede0e4e7->getTypeByHierarchyTypeId($vd663178671639336ce153c008ff6acef); } } } if ($v5f694956811487225d15e973ca38fbab) { $this->autoDetectFilters($v8be74552df93e31bbdd6b36ed74bdb6a, $v5f694956811487225d15e973ca38fbab); $this->autoDetectOrders($v8be74552df93e31bbdd6b36ed74bdb6a, $v5f694956811487225d15e973ca38fbab); } if (!$v38bceec7c944e9431e65bb5bb50cc5fa) { $v8be74552df93e31bbdd6b36ed74bdb6a->excludeNestedPages = true; } if (sizeof($vc4feb6f9b5b1aa42ea49f74ecab346f9) && sizeof($vdad8db09124c43be9156ca0e7596fc04)) { $v0715f6d9497f93911417c9c324265771 = $v1723bdd4ee51910267a625cae41ced8a->getTypeByName("comments", "comment")->getId(); $v8be74552df93e31bbdd6b36ed74bdb6a->addElementType($v0715f6d9497f93911417c9c324265771); } if (getRequest('import')) { quickCsvImporter::autoImport($v8be74552df93e31bbdd6b36ed74bdb6a, $v38bceec7c944e9431e65bb5bb50cc5fa, (bool) getRequest('force-hierarchy')); } if (getRequest('export')) { quickCsvExporter::autoExport($v8be74552df93e31bbdd6b36ed74bdb6a, (bool) getRequest('force-hierarchy')); } return true; }