private function getSortedResults($values) { if (!empty($values)) { $fieldInfo = SJB_ListingFieldManager::getFieldInfoBySID($this->field['sid']); if (SJB_Array::get($fieldInfo, 'sort_by_alphabet') > 0) { $i18n = SJB_I18N::getInstance(); $parents = array(); // in this place we have 'caption' with ids of children items, like '300,301,302,305' etc. // need to get real caption value (for children and parent) and sort by it foreach ($values as $parent => $items) { if (!is_array($items)) { $items = array(); } $sids = array_keys($items); $parentSid = SJB_ListingFieldTreeManager::getParentSID($parent); $parentInfo = SJB_ListingFieldTreeManager::getTreeItemInfoBySID($parentSid); $parents[] = $i18n->gettext('', $parentInfo['caption']); // sort children by alphabet $children = array(); foreach ($sids as $sid) { $info = SJB_ListingFieldTreeManager::getTreeItemInfoBySID($sid); $children[] = $i18n->gettext('', $info['caption']); } array_multisort($children, SORT_STRING, $sids); $sids = array_fill_keys($sids, 1); // set to sorted sids $values[$parent] = $sids; } // sort parent by alphabet $keys = array_keys($values); array_multisort($parents, SORT_ASC, SORT_STRING, $keys, $values); $values = array_combine($keys, $values); } } return $values; }
public static function getTreeItemInfoBySID($item_sid) { return SJB_ListingFieldTreeManager::getTreeItemInfoBySID($item_sid); }
public static function getTreeDisplayValuesBySIDForExport($itemSID) { $item_info = SJB_ListingFieldTreeManager::getTreeItemInfoBySID($itemSID); $values = array(); while (!is_null($item_info)) { array_unshift($values, $item_info); $item_info = SJB_ListingFieldTreeManager::getTreeItemInfoBySID($item_info['parent_sid']); } return $values; }
function getNavigationElements($user_page_uri) { $page_uri = $user_page_uri; $elements = array(); foreach ($this->params as $level => $param) { $field = $this->_getFieldByLevel($level); $metadata = $this->_getMetaDataByFieldData($field); $page_uri = SJB_Path::combineURL($page_uri, $param); if ($field['type'] == 'tree') { $fieldInfo = SJB_ListingFieldTreeManager::getTreeItemInfoBySID($param); $param = isset($fieldInfo['caption']) ? $fieldInfo['caption'] : $param; } $element = array('caption' => $param, 'uri' => $page_uri, 'metadata' => $metadata); $elements[] = $element; } return $elements; }