Как отобразить один блок внутри другого

[16 июля 2019 г.]    Российская сборка Magento 2.52.2
Magento 2: модули и услуги
magereport.com: составление перечня необходимых для установки заплаток SUPEE
#1 Андрей Колоденский
  • Группа: Пользователь
  • Сообщений: 24
  • Регистрация: 18.11.2010

20.03.2011 22:04

Добрый день!

хочу поменять местоположение блока "фильтр по атрибутам" на странице, перенести из левой колонки с центр

тема "f001"

правлю файл "app/design/frontend/default/f001/layout/catalog.xml"

вот интересующий фрагмент:

<!--
Category layered navigation layout
-->

<catalog_category_layered translate="label">
        <label>Catalog Category (Anchor)</label>
        <reference name="left">
        </reference>
        <reference name="content">
                [b]<block type="catalog/layer_view" name="catalog.layernav" template="catalog/layer/view.phtml"/>[/b]
                <block type="catalog/category_view" name="category.products" template="catalog/category/view.phtml">
                        <block type="catalog/product_list" name="product_list" template="catalog/product/list.phtml">


в такой редакции блок "фильтр по атрибутам" появляется в центре, но ВЫШЕ названия текущего каталога. Пытаюсь запихнуть блок "фильтр по атрибутам" ПОД название текущего каталога, ДО списка товаров

<catalog_category_layered translate="label">
        <label>Catalog Category (Anchor)</label>
        <reference name="left">
        </reference>
        <reference name="content">
                <block type="catalog/category_view" name="category.products" template="catalog/category/view.phtml">
                        [b]<block type="catalog/layer_view" name="catalog.layernav" template="catalog/layer/view.phtml"/>[/b]
                        <block type="catalog/product_list" name="product_list" template="catalog/product/list.phtml">


блок "фильтр по атрибутам" пропадает вообще!

подумал, что, возможно, проблема в файле "catalog/layer/view.phtml" - внес строку, выводящую тестовый текст - не выводится! вернулся к предыдущей редакции файла "app/design/frontend/default/f001/layout/catalog.xml" - блок "фильтр по атрибутам" вновь появился, тестовый текст из файла "catalog/layer/view.phtml" тоже есть.

вообще не понимаю, куда копать?

p.s. кэш очищал

#2 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

20.03.2011 23:44

Чтобы Magento отобразила один блок внутри другого — как правило, недостаточно поместить один блок внутрь другого в файле логической разметки.
Обычно в шаблоне блока-контейнера требуется явно дать команду блоку-содержиму отобразиться вызовом метода getChildHtml.

#3 Андрей Колоденский
  • Группа: Пользователь
  • Сообщений: 24
  • Регистрация: 18.11.2010

19.05.2011 20:53

да, помогло, спасибо.

но есть хитрый нюанс - у меня установлен модуль "Magento Easy Catalog Images" - он отображает подкатегории текущей категории, как раз ПОД названием и ДО списка товаров. После того как я запихал фильтр по атрибутам ПОД название ДО списка товаров (getChildHtml) - подкатегории исчезли :( Если снова убрать фильтр из под названия категории - все нормально, подкатегории снова отображаются. Либо подкатегори, либо фильтр :(

Я понимаю, что случай достаточно частный и индивидуальный, и может зависеть от кривизны моих рук и рук разработчика модуля, но все таки - с чего начинать искать корень проблемы? Почему они не уживаются вместе

#4 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

19.05.2011 21:02

Спросите у разработчика вашего модуля.
Я занимаюсь сопровождением своего аналогичного модуля Иллюстрированное меню товарных разделов

#5 Андрей Колоденский
  • Группа: Пользователь
  • Сообщений: 24
  • Регистрация: 18.11.2010

19.05.2011 22:31

как я понимаю, Ваш модуль в отдельном виде не распространяется, только в составе сборки?

#6 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

19.05.2011 22:34

Согласно текущей тарифной политике любой модуль Российской сборки можно купить отдельно.

#7 vinnc
  • Группа: Пользователь
  • Сообщений: 7
  • Регистрация: 20.05.2011

20.05.2011 10:37

Добрый день. Действительно трудно определить проблему не видя магазина :rolleyes: . Как возможное решение могу вам посоветовать сделать так:

Ваш модуль Magento Easy Catalog Images рерайтит файл шаблона для категории на свой.

Верните отображение подкатегории в виде картинок под названием категории (модуль Magento Easy Catalog Images работает).
Откройте файл app\design\frontend\default\default\template\easycatalogimg\view.phtml

Замените
 <div class="category-head">
    <?php if($this->IsRssCatalogEnable() && $this->IsTopCategory()): ?>
        <a href="<?php echo $this->getRssLink() ?>" class="link-feed right"><?php echo $this->__('Subscribe to RSS Feed') ?></a>
    <?php endif; ?>
    <h2><?php echo $_helper->categoryAttribute($_category, $this->htmlEscape($_category->getName()), 'name') ?></h2>
    </div>


на вот это
<div class="category-head">
    <?php if($this->IsRssCatalogEnable() && $this->IsTopCategory()): ?>
        <a href="<?php echo $this->getRssLink() ?>" class="link-feed right"><?php echo $this->__('Subscribe to RSS Feed') ?></a>
    <?php endif; ?>
    <h2><?php echo $_helper->categoryAttribute($_category, $this->htmlEscape($_category->getName()), 'name') ?></h2>
    </div>
	<?php echo $this->getChildHtml('catalog.leftnav')?>


Там 3 раза нужно будет заменить.

Затем откройте app/design/frontend/default/f001/layout/catalog.xml

и сделайте как вы делали :

<catalog_category_layered translate="label">
        <label>Catalog Category (Anchor)</label>
        <reference name="left">         
        </reference>
        <reference name="content">
		
            <block type="catalog/category_view" name="category.products" template="catalog/category/view.phtml">
				<block type="catalog/layer_view" name="catalog.leftnav" after="currency" template="catalog/layer/view.phtml"/>
                <block type="catalog/product_list" name="product_list" template="catalog/product/list.phtml">



Результат в аттаче.Прикрепленное изображение: 20051110.JPG

Поделиться темой: