/**
  * @throws AException
  */
 public function list_library()
 {
     //init controller data
     $this->extensions->hk_InitData($this, __FUNCTION__);
     $language_id = $this->language->getContentLanguageID();
     $this->data['sort'] = $this->request->get['sort'];
     $this->data['order'] = $this->request->get['order'];
     $rm = new AResourceManager();
     $rm->setType($this->data['type']);
     //Build request URI and filter params
     $uri = '&object_name=' . $this->data['object_name'] . '&object_id=' . $this->data['object_id'];
     $uri .= '&type=' . $this->data['type'] . '&mode=' . $this->data['mode'] . '&language_id=' . $language_id . '&action=' . $this->data['action'];
     $filter_data = array('type_id' => $rm->getTypeId(), 'language_id' => $language_id, 'limit' => 12);
     if (!empty($this->request->get['keyword'])) {
         $filter_data['keyword'] = $this->request->get['keyword'];
         $uri .= '&keyword=' . $this->request->get['keyword'];
     }
     if (!empty($this->data['object_name']) && $this->data['action'] == 'list_object') {
         $filter_data['object_name'] = $this->data['object_name'];
     }
     if (!empty($this->data['object_id']) && $this->data['action'] == 'list_object') {
         $filter_data['object_id'] = $this->data['object_id'];
     }
     if ($this->data['sort']) {
         $filter_data['sort'] = $this->data['sort'];
     }
     if ($this->data['order']) {
         $filter_data['order'] = $this->data['order'];
     } elseif (!$this->data['sort'] && $this->data['action'] == 'list_object') {
         $filter_data['sort'] = 'sort_order';
     } else {
         $filter_data['sort'] = 'date_added';
         $filter_data['order'] = 'DESC';
     }
     if (isset($this->request->get['page'])) {
         $page = $this->request->get['page'];
         if ((int) $page < 1) {
             $page = 1;
         }
         $filter_data['start'] = ($page - 1) * $filter_data['limit'];
     }
     $resources_total = $rm->getTotalResources($filter_data);
     $result = $rm->getResourcesList($filter_data);
     foreach ($result as $key => $item) {
         if ($item['date_added']) {
             $result[$key]['date_added'] = dateISO2Display($item['date_added']);
         }
         $result[$key]['thumbnail_url'] = $rm->getResourceThumb($item['resource_id'], $this->thumb_sizes['width'], $this->thumb_sizes['height'], $language_id);
         $result[$key]['url'] = $rm->buildResourceURL($item['resource_path'], 'full');
         $result[$key]['relative_url'] = $rm->buildResourceURL($item['resource_path'], 'relative');
         $result[$key]['mapped_to_current'] = $rm->isMapped($item['resource_id'], $this->data['object_name'], $this->data['object_id']);
     }
     $sort_order = '&sort=' . $this->data['sort'] . '&order=' . $this->data['order'];
     $this->data['current_url'] = $this->html->getSecureURL('common/resource_library', $uri . $sort_order . '&page={page}', '&encode');
     $this->data['no_sort_url'] = $this->html->getSecureURL('common/resource_library', $uri, '&encode');
     if ($resources_total > 12) {
         $this->data['pagination_bootstrap'] = HtmlElementFactory::create(array('type' => 'Pagination', 'name' => 'pagination', 'text' => $this->language->get('text_pagination'), 'text_limit' => $this->language->get('text_per_page'), 'total' => $resources_total, 'page' => $page, 'limit' => 12, 'url' => $this->data['current_url'], 'size_class' => 'sm', 'no_perpage' => true, 'style' => 'pagination'));
     }
     $this->data['rls'] = $result;
     $this->view->assign('form_language_switch', $this->html->getContentLanguageSwitcher());
     $this->view->assign('help_url', $this->gen_help_url('resource_library'));
     //update controller data
     $this->extensions->hk_UpdateData($this, __FUNCTION__);
     $this->view->batchAssign($this->data);
     $this->processTemplate('responses/common/resource_library.tpl');
 }