Magento - Как я могу переместить блок навигации в нужную колонку? - PullRequest
1 голос
/ 11 мая 2010

Я редактировал CSS по умолчанию в Magento, чтобы изменить внешний вид, и пришел к точке, где я хочу перемещаться по некоторым блокам контента.

Я убил левый столбец с помощью CSS

.col-left { display: none; }

А затем увеличил ширину основной части контента, чтобы создать «двухколонный макет». Теперь я хочу переместить навигацию по категориям в правый столбец. Я просто понятия не имею, как ...

Как мне перемещать блоки контента в Magento? : /

Ответы [ 2 ]

3 голосов
/ 11 мая 2010

Создание больших движений, подобных этому, в Magento лучше всего достигается путем изменения XML-файлов макета, а не путем взлома через CSS. В файле catalog.xml есть соответствующие строки:

    <reference name="top.menu">
        <block type="catalog/navigation" name="catalog.topnav" template="catalog/navigation/top.phtml"/>
    </reference>
    <reference name="left">
        <!--<block type="core/template" name="left.permanent.callout" template="callouts/left_col.phtml">
            <action method="setImgSrc"><src>images/media/col_left_callout.jpg</src></action>
            <action method="setImgAlt" translate="alt" module="catalog"><alt>Our customer service is available 24/7. Call us at (555) 555-0123.</alt></action>
            <action method="setLinkUrl"><url>checkout/cart</url></action>
        </block>-->
    </reference>
    <reference name="right">
        <!--<block type="core/template" before="cart_sidebar" name="catalog.compare.sidebar" template="catalog/product/compare/sidebar.phtml"/>-->
        <!--<block type="core/template" name="right.permanent.callout" template="callouts/right_col.phtml"/>-->
    </reference>

Чтобы отобразить topnav, переместите эту строку catalog/navigation в левый или правый столбец, и навигация будет отображена как таковая.

Надеюсь, это поможет!

Спасибо, Джо

2 голосов
/ 13 мая 2010

Magento имеет четыре «стандартных» макета: 1col, 3col, 2col-left и 2col-right, но вы можете добавить больше, если хотите. Вы захотите изменить макет, используемый на редактируемой странице, вместо того, чтобы взламывать CSS. Это определенно неправильный способ сделать это.

Как указывает Джозеф, система шаблонов Magento состоит из блоков или шаблонов , которые расположены в файлах layout . Шаблоны являются стандартными php, но имеют префикс .phtml, а макеты - xml. Вы найдете большие группы этих файлов в app/design/frontend/$interface/$theme/(template|layout).

Magento довольно известен своей скудной документацией, но вы можете обратиться к их Руководству дизайнера , в котором подробно описывается концепция шаблонов и макетов, включая способы перемещения блоков.

Синтаксис файла макета далеко не прост, но, в значительной степени, все, что вам нужно знать на этом этапе, это то, что для того, чтобы ссылаться на блоки в правой руке, левые и столбцы содержимого ищут :

<reference name="(right|left|content)"></reference>

Перемещение объявлений <block /> от одного к другому приводит к перемещению блоков.

Еще один ключевой момент, о котором следует помнить, - следить за:

<reference name="root">
    <action method="setTemplate"><template>page/1column.phtml</template></action>
</reference>

Использование действия setTemplate при обращении к корневому контейнеру позволит вам легко переключать шаблоны на 1column, 2columns-left, 2columns-right или 3columns. Сами шаблоны макетов можно найти в template/page/.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...