Почему едет верстка при использовании component_epilog.php?

Добрый день.

Помогите решить проблему вызовом "Навигационной цепочки" внутри шаблона другого компонента.

есть шаблон компонента

<section class="product-page">
    <div class="container">
        <!-- Breadcrumbs -->
        <div class="breadcrumbs">
            <p>
                <?$APPLICATION->ShowViewContent('breadcrumb');?>
            </p>
        </div>
        <!-- End Breadcrumbs -->

        <h1><?php echo $arResult['NAME']; ?></h1>

        <!-- Product info -->
        <div class="table image">
            <div class="table-cell">
                <div id="slider" class="flexslider">
                    <ul class="slides">
                        <?php foreach ($arResult['MORE_FOTO'] as $foto) { ?>
                            <li>
                                <img src="<?php echo $foto['src']; ?>" />
                            </li>
                        <?php } ?>
                    </ul>
                </div>
                <div id="carousel" class="flexslider">
                    <ul class="slides">
                        <?php foreach ($arResult['MORE_FOTO_THUMB'] as $foto) { ?>
                            <li>
                                <img src="<?php echo $foto['src']; ?>" />
                            </li>
                        <?php } ?>
                    </ul>
                </div>
            </div>
            <div class="table-cell">
                <?php foreach ($arResult['PROPERTIES']['SHORT_TEHCNICAL']['VALUE'] as $key => $tech) { ?>
                    <div class="table">
                        <div class="table-cell"><p><?php echo $tech; ?></p></div>
                        <div class="table-cell"></div>
                        <div class="table-cell"><p><?php echo $arResult['PROPERTIES']['SHORT_TEHCNICAL']['DESCRIPTION'][$key]; ?></p></div>
                    </div>
                <?php } ?>
                <?php if ($arResult['PROPERTIES']['OPTIONS']['~VALUE']['TEXT']) { ?>
                    <div class="btn-details">Возможные&nbsp;опции</div>
                    <div class="hide">
                        <?php echo $arResult['PROPERTIES']['OPTIONS']['~VALUE']['TEXT']; ?>
                    </div>
                <?php } ?>
                <div class="advantages">
                    <figure>
                        <img src="<?=SITE_TEMPLATE_PATH?>/images/catalog/delivery.png" alt="Срок поставки">
                        <figcaption>
                            <p>Срок поставки от 10 дней</p>
                        </figcaption>
                    </figure>
                    <figure>
                        <img src="<?=SITE_TEMPLATE_PATH?>/images/catalog/warrant-product.png" alt="Срок поставки">
                        <figcaption>
                            <p>Гарантия от производителя</p>
                        </figcaption>
                    </figure>
                    <figure>
                        <img src="<?=SITE_TEMPLATE_PATH?>/images/catalog/map-product.png" alt="Срок поставки">
                        <figcaption>
                            <p>Доставка по СНГ и России</p>
                        </figcaption>
                    </figure>
                </div>
                <p class="price"><?php echo $arResult['PROPERTIES']['PRICE']['VALUE']; ?></p>
                <div class="btn">Заказать&nbsp;звонок</div>
            </div>
        </div>
        <!-- End Product info -->
    </div>
</section>


и файл component_epilog.php

<?php if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
/** @global CMain $APPLICATION */

$this->initComponentTemplate();
$this->__template->SetViewTarget('breadcrumb');

    $APPLICATION->IncludeComponent(
        "bitrix:breadcrumb",
        "breadcrumbs_catalog",
        array(
            "COMPONENT_TEMPLATE" => "breadcrumbs_catalog",
            "PATH" => "",
            "SITE_ID" => "-",
            "START_FROM" => "1"
        ),
        false
    );

$this->__template->EndViewTarget(); ?>


в шаблоне компонента пытаюсь вывести то что находится в component_epilog.php
<?$APPLICATION->ShowViewContent('breadcrumb');?>

После сброса кэша страница загружается нормально, если загрузить страницу из кэша едет верстка вырезается часть тегов html в итоге страница отображается неправильно
  • Вопрос задан
  • 1822 просмотра
Пригласить эксперта
Ответы на вопрос 1
Logic87
@Logic87
Программист/администратор сайтов на 1С-Битрикс.
Что-то не так. У вас хлебные крошки кешируются в кешируемом компоненте.
Сейчас прикидываю два варианта:
  1. Вынести верхнюю часть верстки включая хлебные крошки, ну и соответственно все закрывающие дивы этой верстки в element.php . Таким образом у вас хлебые крошки будут в некешируемых частях компонента. Этот способ 100% рабочий.
  2. В component_epilog.php пишите обычный вызов хлебных крошек, заключаете его в дивы и задаете им дисплей ноне. Потом в шаблоне яваскриптом appendTo вставляете хлебные крошки в тот див в который нужно по структуре документа. Этот способ также должен срабатывать.

Первый вариант более правильнее и не нагружает обработку и прорисовку странице в браузере.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
23 нояб. 2024, в 00:16
2000 руб./за проект
22 нояб. 2024, в 23:55
3000 руб./за проект
22 нояб. 2024, в 22:26
3500 руб./за проект