function getDataset(&$counter, $params = array()) { $params['depth'] = 1; if (Limb::toolkit()->getRequest()->get('only_parents') == 'false') { $params['only_parents'] = false; } else { $params['only_parents'] = true; } $params['restrict_by_class'] = false; $params['path'] = $this->_processPath(); return parent::getDataset($counter, $params); }
protected function _fetch(&$counter, $params) { $result = parent::_fetch($counter, $params); $uri = new Uri($_SERVER['PHP_SELF']); foreach ($result as $key => $data) { $nav_uri = new Uri($data['url']); if ($uri->getHost() != $nav_uri->getHost()) { continue; } if (is_integer($res = $uri->comparePath($nav_uri))) { if ($res >= 0) { $result[$key]['in_path'] = true; } if ($res == 0) { $result[$key]['selected'] = true; } } } return $result; }
protected function fetch() { $tree = Limb :: toolkit()->getTree(); if(isset($params['order'])) { $order = $params['order']; unset($params['order']); } else $order = array('priority' => 'ASC'); $tree_array = parent :: fetch(); $tree_array = TreeSorter :: sort($tree_array, $order, 'node_id', 'parent_node_id'); $path_node = $tree->getNodeByPath($params['path']); if (isset($params['include_parent']) && (bool)$params['include_parent']) $path_node_level = $path_node['level'] - 1; else $path_node_level = $path_node['level']; $levels_status_array = array(); $size = count($tree_array); $current_pos = 0; $parent_data = array(); foreach($tree_array as $id => $tree_item) { $parent_node_id = $tree_item['parent_node_id']; if(!isset($parent_data[$parent_node_id])) { if($parent_node_id == 0) $parent_data[$parent_node_id]['children_amount'] = 1; else $parent_data[$parent_node_id]['children_amount'] = $tree->countChildren($parent_node_id); $parent_data[$parent_node_id]['counter'] = 0; } $parent_data[$parent_node_id]['counter']++; if ($parent_data[$parent_node_id]['counter'] == 1) $is_first_child = true; else $is_first_child = false; if($parent_data[$parent_node_id]['counter'] == $parent_data[$parent_node_id]['children_amount']) $is_last_child = true; else $is_last_child = false; $tree_array[$id]['level'] = $tree_array[$id]['level'] - $path_node_level; $levels_status_array[$tree_item['level'] - $path_node_level] = $is_last_child; $tree_array[$id]['level_' . $tree_array[$id]['level']] = 1; $tree_array[$id]['is_expanded'] = $tree->isNodeExpanded($tree_item['node_id']); $tree_array[$id]['is_last_child'] = $is_last_child; $tree_array[$id]['is_first_child'] = $is_first_child; $tree_array[$id]['levels_status'] = $levels_status_array; if( $tree_array[$id]['class_name'] == 'image_object' || $tree_array[$id]['class_name'] == 'file_object') $tree_array[$id]['icon'] = '/root?node_id=' . $tree_item['node_id'] . '&icon'; elseif(isset($tree_item['icon']) && $tree_item['icon']) $tree_array[$id]['icon'] = $tree_item['icon']; else $tree_array[$id]['icon'] = '/shared/images/generic.gif'; } return $tree_array; }