А как с php7.4, всё нормально работает?)
17.02.2021 14:40:28
Андрей Николаев, тогда как добавить в компонент другой компонент, если его просто так нельзя добавить в шаблон?
|
|
|
11.02.2021 13:49:11
[QUOTE]Mikhael Macherkevich написал:
Привет! Какое решение выбрали?[/QUOTE] Уже и не вспомню, возможно, то в котором не надо ковыряться в многотысячном js ) скорее всего |
|
|
11.02.2021 13:40:30
Добрый день!
Была версия битрикс примерно 18 и всё прекрасно работало(версия прямо до той, когда в getList появляется возможность сортировки с указанием массива с $id элементов v18.6.700 где-то там). После обновы до 20. Возникла проблема, что кэшированный компонент news.detail вываливается(выводится) до вывода шапки сайта, при отключенном кешировании - ведет себя нормально. В компоненте news.detail сделан вывод другого компонента и чтобы он не кешировался сделано было, примерно как [URL=https://dev.1c-bitrix.ru/community/webdev/user/11948/blog/2376/index.php?last_comment_id=0&comment_post_id=2376&LAST_LOG_TS=1&PAGEN_4=1]здесь[/URL]. Может кто в курсе из-за чего может быть? И может есть более новый способ добавлять компонент в шаблон компонента? Кратко привожу код: [CODE] // --- template.php --- ob_start(); ?> #SET_NEWS# <? //нужно вывести на детальной странице список новостей, указанных в свойстве привязке к разделу //--- component_epilog.php --- if (!empty($arResult['NEWS'])) { ob_start(); global $arOtherNews; $arOtherNews = Array("SECTION_ID" => $arResult['NEWS']); $APPLICATION->IncludeComponent( "bitrix:news.list", "main_news", array( //... "CACHE_TYPE" => "A", "FILTER_NAME" => "arOtherNews", //... ), false ); $setNews = ob_get_clean(); } $content = ob_get_clean(); echo str_replace('#SET_NEWS#', $setNews, $content); [/CODE] Вызов самого компонента: [CODE] $APPLICATION->IncludeComponent( "bitrix:news.detail", "set", array( "ACTIVE_DATE_FORMAT" => "d.m.Y", "ADD_ELEMENT_CHAIN" => "N", "ADD_SECTIONS_CHAIN" => "Y", "AJAX_MODE" => "N", "AJAX_OPTION_ADDITIONAL" => "", "AJAX_OPTION_HISTORY" => "N", "AJAX_OPTION_JUMP" => "N", "AJAX_OPTION_STYLE" => "Y", "BROWSER_TITLE" => "-", "CACHE_GROUPS" => "Y", "CACHE_TIME" => "36000000", "CACHE_TYPE" => "A", "CHECK_DATES" => "Y", "DETAIL_URL" => "", "DISPLAY_BOTTOM_PAGER" => "Y", "DISPLAY_DATE" => "Y", "DISPLAY_NAME" => "Y", "DISPLAY_PICTURE" => "Y", "DISPLAY_PREVIEW_TEXT" => "Y", "DISPLAY_TOP_PAGER" => "N", "ELEMENT_CODE" => "", "ELEMENT_ID" => "12683", "FIELD_CODE" => array( 0 => "", 1 => "", ), "IBLOCK_ID" => "14", "IBLOCK_TYPE" => "content", "IBLOCK_URL" => "", "INCLUDE_IBLOCK_INTO_CHAIN" => "Y", "MESSAGE_404" => "", "META_DESCRIPTION" => "-", "META_KEYWORDS" => "-", "PAGER_BASE_LINK_ENABLE" => "N", "PAGER_SHOW_ALL" => "N", "PAGER_TEMPLATE" => ".default", "PAGER_TITLE" => "Страница", "PROPERTY_CODE" => array( 1 => "NEWS", ), "SET_BROWSER_TITLE" => "Y", "SET_CANONICAL_URL" => "N", "SET_LAST_MODIFIED" => "N", "SET_META_DESCRIPTION" => "Y", "SET_META_KEYWORDS" => "Y", "SET_STATUS_404" => "N", "SET_TITLE" => "Y", "SHOW_404" => "N", "STRICT_SECTION_CHECK" => "N", "USE_PERMISSIONS" => "N", "USE_SHARE" => "N", "COMPONENT_TEMPLATE" => "set" ), false );[/CODE] |
|
|
08.02.2021 08:04:33
Андрей Николаев, Спасибо! ДА, достаточно было положить в папку /admin файлик .main.menu.php со своими пунктами меню, и он переопределяет этот файл из папки "/".
|
|
|
01.02.2021 21:55:56
Добрый день!
Создал раздел /admin/ и для него в header.php по условию вместо основного меню показываю меню для этого раздела. Но проблема, что header кешируется и при заходе в этот раздел основное меню так и показывается пока кеш не сбросишь вручную. Пока редирект делаю на адрес /admin/?clear_cache=Y Но хочется чтобы кеш чистился при входе на любую страницу раздела или любой подраздел. Но из-за кеширования даже проверка, что мы зашли в раздел admin в header.php не работает, она срабатывает только при сбросе кеша вручную. [CODE] // вот как я в index.php делаю редирект (это костыль) if(!isset($_GET['clear_cache'])){ header('location: ' . '/admin/?clear_cache=Y'); exit; } [/CODE] Это проверка в header.php, где должно подсовываться разное меню, в зависимости от местоположения на сайте. Проверку делает метод $app->isAdminDir() - он точно работает, проверено(после отключ) [CODE] if(!$app->isAdminDir()){ $APPLICATION->IncludeComponent( "bitrix:menu", "header-main", [ "ROOT_MENU_TYPE" => "main", "MENU_CACHE_TYPE" => "N", // пробую отключить //... ] ); }else{ $APPLICATION->IncludeComponent( "bitrix:menu", "header-main", [ "ROOT_MENU_TYPE" => "adminmin", "MENU_CACHE_TYPE" => "N", // Тип кеширования : array ( 'A' => 'Авто', 'Y' => 'Кешировать', 'N' => 'Не кешировать', ) //... ] ); } [/CODE] И даже не помогает НЕ ИСПОЛЬЗОВАТЬ КЕШ Пробовал вставлять, но ничего не помогло, может не туда вставляю?: [CODE] BXClearCache( true, "/"); BXClearCache( true, "/admin/"); // это тоже попробовал $staticHtmlCache = \Bitrix\Main\Data\StaticHtmlCache::getInstance(); $staticHtmlCache->deleteAll(); [/CODE] |
|
|
14.05.2020 03:44:12
Решил подобную проблему в urlrewrite, у меня ЧПУ:
[CODE] 12 => array ( 'CONDITION' => '#^/directory/complex-component-directory/#', 'RULE' => '', 'ID' => 'bitrix:news', 'PATH' => '/directory/complex-component-directory/index.php', 'SORT' => 100, ),[/CODE] Инфоблок и все свойства создаются программно, поэтому пришлось ручками заносить. [B]за совет - Как обойтись без ручек, скажу спасибо :)[/B] |
|
|
23.03.2020 09:19:59
Добрый день!
Вывожу компонентом новости собственно новости через чпу. [CODE]URL страницы раздела: #SITE_DIR#/news/#SECTION_CODE_PATH#/ URL страницы детального просмотра: #SITE_DIR#/news/#SECTION_CODE_PATH#/#ELEMENT_CODE#.html[/CODE] Новость может находиться в разных разделах. ПРОБЛЕМА: Есть 2 раздела раздел1(section id = 1, code=razdel1) и раздел2(section id=2, code=razdel2). Так вот, когда открываю новость через ссылку вида news/razdel2/news1.html , то все ссылки и текущий раздел почему-то показываются как будто я открыл через раздел1(раздел с наименьшим id). И когда захожу в /news/razdel2/ то все ссылки вида news/razdel1/news1.html КАК СДЕЛАТЬ, ЧТОБЫ ФОРМИРОВАЛИСЬ ПРАВИЛЬНЫЕ ССЫЛКИ В ЗАВИСИМОСТИ ОТ ТОГО ЧЕРЕЗ КАКОЙ РАЗДЕЛ Я ПЕРЕШЕЛ В НОВОСТЬ? |
|
|