Exemplo n.º 1
0
 /**
  * Формирует список нодов и устанавливает необходимые переменные
  * @param type $this->fw
  * */
 protected function setList()
 {
     $this->setListPage();
     $list = $this->model->getList($this->list_page - 1, $this->list_perpage, true, null, $filter);
     foreach ($list['subset'] as $k => $item) {
         $list['subset'][$k]['title'] = stripslashes($item['name']);
     }
     //		\helpers\Debug::prePrintR($list);
     $list['pages'] = \models\Base::getPaginationPages($list['count'], $list['pos']);
     $list['is_sortable'] = true;
     $this->fw->mset(array('list' => $list, 'tpl' => 'group', 'inc' => 'ajax/list.html', 'pagination_route' => 'backend_group_page'));
     $this->setAJAXFields();
     // Необходимо для корректной генерации полей в модальных окнах для быстрого редактирования
 }
Exemplo n.º 2
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']);
     }
 }
Exemplo n.º 3
0
 public function getList()
 {
     //		\helpers\Debug::prePrintR($this->objects);
     $this->fw->mset(array('html.head_title' => $this->fw->get('i18n.user.menu.comments.moderation'), 'html.page_title' => $this->fw->get('i18n.user.menu.comments.moderation')));
     //$this->fw->set('breadcrumbs.base', '/account');
     $this->fw->set('breadcrumbs.path', array('/account/settings/comments' => $this->fw->get('i18n.user.menu.comments.title')));
     $this->fw->set('breadcrumbs.active', $this->fw->get('i18n.user.menu.comments.moderation'));
     $tmp = array();
     foreach ($this->objects as $table) {
         $tmp[$table->get('table')] = $table->get('comment');
     }
     if ($this->fw->exists('PARAMS.tables')) {
         $tables = explode(',', $this->fw->get('PARAMS.tables'));
     } else {
         $tables = [];
     }
     $this->fw->set('list.filter_sel.object', $tables);
     $this->fw->set('list.filter.object', $tmp);
     $valid_moderation_values = $this->fw->get('i18n.moderation');
     $this->fw->set('list.filter.moderation', $valid_moderation_values);
     $this->fw->set('list.filter_sel.moderation', []);
     if ($this->fw->exists('PARAMS.moderation')) {
         $params = explode(',', $this->fw->get('PARAMS.moderation'));
         $tmp = array_keys($valid_moderation_values);
         foreach ($params as $v) {
             if (in_array($v, $tmp)) {
                 $this->fw->push('list.filter_sel.moderation', $v);
             }
         }
     }
     if ($this->fw->get('list.filter_sel.moderation')) {
         $filter = ' WHERE `moderation` IN ("' . implode('","', $this->fw->get('list.filter_sel.moderation')) . '")';
     } else {
         $filter = '';
     }
     $queries = array();
     foreach ($this->objects as $table) {
         if (empty($tables) || in_array($table->get('table'), $tables)) {
             $queries[] = 'SELECT "' . $table->get('table') . '" AS `obj_slug`, `comments_' . $table->get('table') . '`.* FROM `comments_' . $table->get('table') . '`' . $filter;
         }
     }
     $this->setListPage();
     $q = implode(' UNION ', $queries);
     //		\helpers\Debug::prePrintR($q);
     $this->db->exec($q);
     $this->fw->set('list.count', ceil($this->db->count() / $this->fw->get('account.perpage')));
     // Кол-во страниц
     $this->fw->set('list.pos', $this->list_page - 1);
     // Текущая страница
     $this->fw->set('list.pages', \models\Base::getPaginationPages($this->fw->get('list.count'), $this->fw->get('list.pos')));
     //		\helpers\Debug::prePrintR($this->fw->get('list.count'));
     $q .= ' ORDER BY `created` DESC LIMIT ' . ($this->list_page - 1) * $this->fw->get('account.perpage') . ',' . $this->fw->get('account.perpage');
     //		\helpers\Debug::prePrintR($q);
     $list = $this->db->exec($q);
     //		\helpers\Debug::prePrintR($list);
     //		$list = $this->model->getListAll($this->list_page);
     //			\helpers\Debug::prePrintR($list);
     $this->fw->set('list.subset', $list);
     $this->fw->set('list.is_sortable', false);
     $this->fw->set('tpl', 'comments');
     $this->fw->set('inc', 'comments/list.html');
 }