canDoOperation("view_other_settings") || Composite\Engine::isSelfHostedPortal()) { $APPLICATION->authForm(Loc::getMessage("ACCESS_DENIED")); } Loc::loadMessages(__FILE__); $APPLICATION->setTitle(Loc::getMessage("MAIN_COMPOSITE_PAGES_TITLE")); $tableID = "tbl_composite_pages"; $sorting = new CAdminSorting($tableID, "ID", "DESC"); $adminList = new CAdminList($tableID, $sorting); $request = Context::getCurrent()->getRequest(); if ($request->get("action_button") === "delete" && ($ids = $adminList->groupAction())) { $ids = array_map("intval", $ids); $pageList = PageTable::getList( array( "select" => array("ID", "CACHE_KEY"), "filter" => array("ID" => $ids), ) ); while ($record = $pageList->fetch()) { $page = Page::createFromCacheKey($record["CACHE_KEY"]); $page->delete(); } } //Filter $filterFields = array( "find_id", "find_cache_key", "find_host", "find_uri", "find_title", "find_created_start", "find_created_end", "find_changed_start", "find_changed_end", "find_last_viewed_start", "find_last_viewed_end", ); $adminList->initFilter($filterFields); function getFilterDate($date) { if (!isset($date) || mb_strlen(trim($date)) < 1) { return null; } $date = trim($date); return Type\DateTime::isCorrect($date) ? new Type\DateTime($date) : null; } $filter = array( "=ID" => $find_id, "?CACHE_KEY" => $find_cache_key, "=HOST" => $find_host, "?URI" => $find_uri, "?TITLE" => $find_title, ">=CREATED" => getFilterDate($find_created_start), "<=CREATED" => getFilterDate($find_created_end), ">=CHANGED" => getFilterDate($find_changed_start), "<=CHANGED" => getFilterDate($find_changed_end), ">=LAST_VIEWED" => getFilterDate($find_last_viewed_start), "<=LAST_VIEWED" => getFilterDate($find_last_viewed_end), ); foreach ($filter as $key => $value) { if (trim($value) == '') { unset($filter[$key]); } } $pageEntity = PageTable::getEntity(); //Sorting $sortBy = mb_strtoupper($sorting->getField()); $sortBy = $pageEntity->hasField($sortBy) ? $sortBy : "ID"; $sortOrder = mb_strtoupper($sorting->getOrder()); $sortOrder = $sortOrder !== "DESC" ? "ASC" : "DESC"; //Navigation $nav = new AdminPageNavigation("nav"); $pageList = PageTable::getList(array( "filter" => $filter, "order" => array($sortBy => $sortOrder), "count_total" => true, "offset" => $nav->getOffset(), "limit" => $nav->getLimit(), )); $nav->setRecordCount($pageList->getCount()); $adminList->setNavigation($nav, Loc::getMessage("MAIN_COMPOSITE_PAGES_PAGES")); $adminList->addHeaders(array( array( "id" => "ID", "content" => "ID", "sort" => "ID", "default" => true ), array( "id" => "PAGE", "content" => Loc::getMessage("MAIN_COMPOSITE_PAGES_PAGE"), "sort" => "TITLE", "default" => true ), array( "id" => "CACHE_KEY", "content" => $pageEntity->getField("CACHE_KEY")->getTitle(), ), array( "id" => "HOST", "content" => $pageEntity->getField("HOST")->getTitle(), "sort" => "HOST", ), array( "id" => "URI", "content" => $pageEntity->getField("URI")->getTitle(), "sort" => "URI", ), array( "id" => "TITLE", "content" => $pageEntity->getField("TITLE")->getTitle(), "sort" => "TITLE", ), array( "id" => "CREATED", "content" => $pageEntity->getField("CREATED")->getTitle(), "sort" => "CREATED", "default" => true ), array( "id" => "CHANGED", "content" => $pageEntity->getField("CHANGED")->getTitle(), "sort" => "CHANGED", "default" => true ), array( "id" => "LAST_VIEWED", "content" => $pageEntity->getField("LAST_VIEWED")->getTitle(), "sort" => "LAST_VIEWED", "default" => true ), array( "id" => "VIEWS", "content" => $pageEntity->getField("VIEWS")->getTitle(), "sort" => "VIEWS", "default" => true ), array( "id" => "REWRITES", "content" => $pageEntity->getField("REWRITES")->getTitle(), "sort" => "REWRITES", "default" => true ), array( "id" => "SIZE", "content" => $pageEntity->getField("SIZE")->getTitle(), "sort" => "SIZE", "default" => true ), )); while ($record = $pageList->fetch()) { $row = &$adminList->addRow($record["ID"], $record); $pageCell = '%s
%s'; $pageLink = htmlspecialcharsbx($record["HOST"].$record["URI"]); $title = trim($record["TITLE"]) <> ''? $record["TITLE"] : $pageLink; $title = htmlspecialcharsbx($title, ENT_COMPAT, false); $row->addViewField("PAGE", sprintf($pageCell, $pageLink, $title, $pageLink)); $row->addViewField("SIZE", \CFile::formatSize($record["SIZE"])); $actions = array( array( "ICON" => "delete", "TEXT" => Loc::getMessage("MAIN_DELETE"), "ACTION" => "if(confirm('".Loc::getMessage('admin_lib_list_del_sel')."')) ". $adminList->actionDoGroup($record["ID"], "delete") ) ); $row->addActions($actions); } $adminList->addGroupActionTable( array("delete" => true), array("disable_action_target" => true) ); $toolbar = array( array( "TEXT" => Loc::getMessage("MAIN_COMPOSITE_DELETE_ALL_CACHE"), "LINK" => "/bitrix/admin/cache.php?lang=".LANGUAGE_ID."&cachetype=html&tabControl_active_tab=fedit2", "TITLE" => Loc::getMessage("MAIN_COMPOSITE_DELETE_ALL_CACHE"), ), ); $adminList->addAdminContextMenu($toolbar); $adminList->checkListMode(); require($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/include/prolog_admin_after.php"); ?>