public function main() { //init controller data $this->extensions->hk_InitData($this, __FUNCTION__); $this->loadLanguage('design/content'); $this->acm = new AContentManager(); //Prepare filter config $grid_filter_params = array('sort_order', 'id.title', 'status', 'nodeid'); //Build advanced filter $filter_data = array('method' => 'post', 'grid_filter_params' => $grid_filter_params); $filter_grid = new AFilter($filter_data); $filter_array = $filter_grid->getFilterData(); if ($this->request->post['nodeid']) { list($void, $parent_id) = explode('_', $this->request->post['nodeid']); $filter_array['parent_id'] = $parent_id; if ($filter_array['subsql_filter']) { $filter_array['subsql_filter'] .= " AND i.parent_content_id='" . (int) $filter_array['parent_id'] . "' "; } else { $filter_array['subsql_filter'] = " i.parent_content_id='" . (int) $filter_array['parent_id'] . "' "; } $new_level = (int) $this->request->post["n_level"] + 1; } else { //Add custom params $filter_array['parent_id'] = $new_level = 0; if ($this->config->get('config_show_tree_data')) { if ($filter_array['subsql_filter']) { $filter_array['subsql_filter'] .= " AND i.parent_content_id='0' "; } else { $filter_array['subsql_filter'] = " i.parent_content_id='0' "; } } } $leafnodes = $this->config->get('config_show_tree_data') ? $this->acm->getLeafContents() : array(); $total = $this->acm->getTotalContents($filter_array); $response = new stdClass(); $response->page = $filter_grid->getParam('page'); $response->total = $filter_grid->calcTotalPages($total); $response->records = $total; $response->userdata = (object) array(''); $results = $this->acm->getContents($filter_array); $results = !$results ? array() : $results; $i = 0; foreach ($results as $result) { if ($this->config->get('config_show_tree_data')) { $title_lable = '<label style="white-space: nowrap;">' . $result['title'] . '</label>'; } else { $title_lable = $result['title']; } $parent_content_id = current($result['parent_content_id']); $response->rows[$i]['id'] = $parent_content_id . '_' . $result['content_id']; $response->rows[$i]['cell'] = array($title_lable, $result['parent_name'], $this->html->buildCheckbox(array('name' => 'status[' . $parent_content_id . '_' . $result['content_id'] . ']', 'value' => $result['status'], 'style' => 'btn_switch')), $this->html->buildInput(array('name' => 'sort_order[' . $parent_content_id . '_' . $result['content_id'] . ']', 'value' => $result['sort_order'][$parent_content_id])), 'action', $new_level, $this->request->post['nodeid'] ? $this->request->post['nodeid'] : null, $result['content_id'] == $leafnodes[$result['content_id']] ? true : false, false); $i++; } //update controller data $this->extensions->hk_UpdateData($this, __FUNCTION__); $this->load->library('json'); $this->response->setOutput(AJson::encode($response)); }