Esempio n. 1
0
 /**
  * Формирует список нодов и устанавливает необходимые переменные
  * */
 protected function setList()
 {
     if (!$this->tableMeta->isSortable()) {
         $this->setListPage();
     }
     if (is_null($this->list_filter)) {
         $idsOwners = $this->getAccessibleOwners(\models\ACL::ACTION_READ);
         if (!$idsOwners) {
             \helpers\Msg::warning('read_no_rights');
             $this->fw->error(401);
         }
         if (is_array($idsOwners) && !$this->tableMeta->isTree()) {
             $this->list_filter = [['field' => $this->table . '.user_id', 'value' => $idsOwners, 'operation' => 'IN']];
             //				\helpers\Debug::prePrintR($this->list_filter);
         }
     }
     //		if (!is_null($this->depend_id)) {
     //			$filter[] = [
     //				'field' => 'po_' . $this->meta['depend'],
     //				'value' => $this->depend_id
     //			];
     //		}
     if ($this->tableMeta->isTree()) {
         $this->list_filter[] = ['field' => 'pid', 'value' => $this->pid];
     }
     $list_model = \models\ContentList::getInstance($this->table);
     $filter = new \helpers\filters\FilterRenderer($this->table);
     $list = $list_model->get($this->list_page - 1, $this->list_perpage, true, $this->list_sort, $this->list_filter, $filter->getSQL());
     //		\helpers\Debug::prePrintR($list);
     foreach ($list['subset'] as $k => $item) {
         $list['subset'][$k]['title'] = stripslashes($item['title']);
         //			foreach ($this->dependants as $dependant) {
         //				$res = $this->fw->get('db')
         //						->exec('SELECT count(*) AS cnt '
         //						. 'FROM ' . $dependant . ' '
         //						. 'WHERE fko_' . $this->table . '=?', $item['id']);
         ////						\helpers\Debug::prePrintR($res);
         //				$list['subset'][$k]['dependants'][$dependant] = [
         //					'title' => \models\ContentMeta::decodeInfo($this->meta_all[$dependant]['info'])['title'],
         //					'count' => $res[0]['cnt']
         //				];
         //			}
     }
     //		\helpers\Debug::prePrintR($list);
     $this->setAJAXFields();
     // Необходимо для корректной генерации полей в модальных окнах для быстрого редактирования
     // Ставим флажок, надо ли подключать скрипты для работы со списками объектов,
     // хранящихся в виде дерева
     $list['has_related_tree'] = $this->hasRelatedTree();
     $list['is_sortable'] = $this->tableMeta->isSortable();
     $list['is_tree'] = $this->tableMeta->isTree();
     $list['pid'] = $this->pid;
     $list['pages'] = \models\Base::getPaginationPages($list['count'], $list['pos']);
     $list['is_moderated'] = $this->tableMeta->isModerated();
     if ($this->tableMeta->isModerated()) {
         $this->fw->set('labels.is_moderator', $this->checkAccess(\models\ACL::ACTION_MODERATION));
     }
     $this->fw->mset(array('list' => $list, 'tpl' => 'content', 'inc' => 'ajax/list.html'));
     if ($this->fw->get('use_app_routes')) {
         $this->fw->mset(['pagination_first' => 'app_backend_content', 'pagination_route' => 'app_backend_content_page']);
     } else {
         $this->fw->mset(['pagination_first' => 'backend_content', 'pagination_route' => 'backend_content_page']);
     }
 }
Esempio n. 2
0
 /**
  * Формирует список нодов и устанавливает необходимые переменные
  * */
 protected function setList()
 {
     $this->setListPage();
     $filter = new \helpers\filters\FilterRenderer('_acl');
     $list = $this->model->getList($this->list_page - 1, $this->list_perpage, true, null, null, $filter->getSQL());
     foreach ($list['subset'] as $k => $item) {
         $list['subset'][$k]['title'] = stripslashes($item['title']);
     }
     //		\helpers\Debug::prePrintR($list);
     $list['pages'] = \models\Base::getPaginationPages($list['count'], $list['pos']);
     $list['is_sortable'] = false;
     $this->fw->mset(array('list' => $list, 'tpl' => 'acl', 'inc' => 'ajax/list.html', 'pagination_first' => 'backend_acl', 'pagination_route' => 'backend_acl_page'));
     $this->setAJAXFields();
     // Необходимо для корректной генерации полей в модальных окнах для быстрого редактирования
 }