/** * Формирует список нодов и устанавливает необходимые переменные * @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(); // Необходимо для корректной генерации полей в модальных окнах для быстрого редактирования }
/** * Формирует список нодов и устанавливает необходимые переменные * */ 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']); } }
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'); }