/** * add node data * * @param array $data */ function addNode(&$data) { $node_id = $this->createUniqueId(); // We need PEAR File to read the nodes file include_once 'File.php'; $fp =& new File(); // Add navigation node body $node_body = SF_BASE_DIR . 'data/navigation/' . $node_id; if (!is_int($fp->write($node_body, commonUtil::stripSlashes($data['body']), FILE_MODE_WRITE))) { $this->B->{$data}['error'] = 'Could not write file: ' . $node_body; return FALSE; } $fp->unlock($node_body, FILE_MODE_WRITE); $this->B->node[$node_id]['title'] = commonUtil::transform($data['title']); $this->B->node[$node_id]['status'] = $data['status']; $this->B->node[$node_id]['order'] = $this->getLastOrderId((int) $data['parent_id']); $this->B->node[$node_id]['parent_id'] = (int) $data['parent_id']; }
/** * get child nodes sorted by order * * @param array $data */ function &getChildren(&$data) { $tmp = array(); foreach ($this->B->node as $key => $val) { if ($val['parent_id'] == $data['node']) { if (isset($data['status'])) { if ($val['status'] == $data['status']) { $tmp[$val['order']] = $key; } continue; } $tmp[$val['order']] = $key; } } // ordered ksort($tmp); $result = array(); foreach ($tmp as $val) { $result[$val]['title'] = commonUtil::transform($this->B->node[$val]['title']); $result[$val]['status'] = $this->B->node[$val]['status']; $result[$val]['order'] = $this->B->node[$val]['order']; $result[$val]['parent_id'] = $this->B->node[$val]['parent_id']; } unset($tmp); return $result; }