Esempio n. 1
0
 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;
 }
Esempio n. 4
0
 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;
 }