public static function f_loadTypes($params = array()) { $result = array(); $typesTable = new K_Tree_Types_Model(); $types = $typesTable->select()->fetchArray(); $typeClass = 'Type_Controller_' . ucfirst($params['tree_type']); if ($params['tree_type'] == 'list') { $list = K_CupItems::getItems($params['tree_id'], $params['tree_type']); $listTypes = array_map('trim', explode(',', $list[0]['types'])); for ($i = 0, $j = 0; $i < sizeof($types); $i++) { if (in_array($types[$i]['type_name'], $listTypes)) { $result[$j] = new stdClass(); $result[$j]->value = $types[$i]['type_name']; $result[$j]->baseline = 'undefined'; $j++; } } } else { for ($i = 0, $j = 0; $i < sizeof($types); $i++) { if (isset($typeClass::$allowedChildren[0])) { if ($typeClass::$allowedChildren[0] == 'all' && sizeof($typeClass::$allowedChildren) == 1 || $typeClass::$allowedChildren[0] == 'all' && !in_array($types[$i]['type_name'], $typeClass::$allowedChildren) || $typeClass::$allowedChildren[0] != 'all' && in_array($types[$i]['type_name'], $typeClass::$allowedChildren)) { $result[$j] = new stdClass(); $result[$j]->value = $types[$i]['type_name']; $result[$j]->baseline = 'undefined'; $j++; } } } } return $result; }
public function editAction() { $this->disableLayout = true; $commentId = intval($_GET['commentid']); $commentModel = new Admin_Model_Comment(); $commenRow = $commentModel->select('*, UNIX_TIMESTAMP(comment_date) comment_date')->where('comment_id="' . $commentId . '"')->fetchAll(); $this->view->commentRow = K_CupItems::stripFields($commenRow, 'comment'); $this->view->commentRow = $this->view->commentRow[0]; $this->render('edit'); }
Returns data for client-side tree var data = [ { label: 'Тест', children: [ { label: 'child1' }, { label: 'child2' } ] }, { label: 'Тест 2', children: [ { label: 'child3' } ] } ]; */ public function getAction() { $this->disableRender = true; $query = new K_Db_Query(); $treeStructure = array(); $treeElements = array(); if ($this->getParam('pid')) { $nodeId = $this->getParam('pid'); } else { $nodeId = 0; } // Прийдётся лезть в тип списка $pidType = K_TreeQuery::gOne((int) $nodeId); //var_dump($pidType); if ($pidType['sorted'] == "По алфавиту") { $order = "`t1`.`tree_title`"; } else { $order = "`t1`.`tree_lkey`"; } $sql = 'SELECT `t1`.*, COUNT(`t2`.`tree_id`) as subElements FROM `tree` as `t1` LEFT JOIN `tree` as `t2` ON `t2`.`tree_pid` = `t1`.`tree_id` WHERE `t1`.`tree_pid`=' . (int) $nodeId . ' GROUP BY `t1`.`tree_id`, `t1`.`tree_pid`, `t1`.`tree_title` ORDER BY ' . $order; $treeElements = $query->q($sql); foreach ($treeElements as $key => $column) { $treeElements[$key] = $column->toArray(); } if ($nodeId != '0') { $nodeArr = K_tree::getParents($nodeId); // выбираем всех родителей ноды $nodeArr[] = $nodeId; // добовляем id самой ноды // проверяем на доступ ноду со всеми её родителями к которой запрашиваються потомки /* foreach ( $pid_node_perents as $v ) { if ( is_string( $v ) ) { $resourse_arr[] = $v; $resourse = 't:' . implode( '/', $resourse_arr ); // echo $resourse; try { $access = K_Access::acl()->isAllowed( K_Auth::getRoles(), $resourse, 'view' ); // var_dump($access); } catch ( exception $e ) { $access = $allow_trigger; } $allow_trigger = $access; } }*/ //строим ресур запрашиваемой ноды если нода не равна 0 $allowTrigger = false; $access = false; $_nodeArr = $nodeArr; for ($i = count($_nodeArr); $i > 0; $i--) { $resourse = implode('/', $_nodeArr); array_pop($_nodeArr); $access = K_Access::aclTree()->isAllowed(K_Auth::getRoles(), $resourse, true); if (K_Access::aclTree()->lastResource) { break; } } $allowTrigger = $access;