Ёлки-палки, вспомнил! Сам сталкивался с этой штукой. Всё именно так, как вы описали и так, как я вам сказал
Когда отрабатывается catalog.section - внутри срабатывает вызов генерации строки навигации. Но так как этот вызов происходит внутри той части кода, которая кэшируется - то при повторном обращении к странице и работе catalog.section из кэша - этот вызов второй раз не происходит.
Следовательно - бесполезно пытаться добавить component_epilog к шаблону строки навигации.
Подозреваю, что вы хотите сделать rel=canonical или что-то подобное? Если так - то тут нужно действовать по-другому. После того, как отрабатывает компонент catalog.section - в arResult появляется поле NAV_RESULT ($arResult["NAV_RESULT"]
. Это поле содержит всю информацию о постраничной навигации.
Следовательно - вам нужно работать с component_epilog компонента catalog.section, а не system.pagenavigation. В эпилоге вы вытаскиваете $arResult["NAV_RESULT"] и, опираясь на него, делает что вам нужно. Например, в моём случае имел место кусок кода:
Код |
---|
if (!$arResult['NAV_RESULT']["NavShowAll"] {
$APPLICATION->AddHeadString('<li nk rel="canonical" href="' . $arResult['NAV_RESULT']["sUrlPath"] . '?' . $strNavQueryString . 'SHOWALL_' . $arResult['NAV_RESULT']["NavNum"] . '=1" />');
} |
А ещё, может быть кому-то будет полезно, по теме есть другая штука.
Я знаю ещё один случай, когда component_epilog не отрабатывает - это компонент search.page. Может быть я глупо пытался использовать его в режиме кэширования, но голову я себе тогда сломал основательно.
Оказалось, что этот компонент использует не стандартный вызов IncludeComponentTemplate, а связку
Код |
---|
if($this->InitComponentTemplate($templatePage)) {
...
$this->ShowComponentTemplate();
} |
Как мне объяснили в тех поддержке - это старый вариант вызова шаблона (кстати, он позволяет делать интересные штуки. кому интересно - почитайте код вышеупомянутого компонента). Переделывать на новый (который поддерживает component_epilog) не стали, так как использование компонента в режиме кэширования не предполагается.
Больше никакой магии с component_epilog мне не известно.