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));
 }