Как добавить класс в боковую панель div в макете Magento? - PullRequest
1 голос
/ 01 марта 2011

Как добавить класс в div в макете Magento?Я хочу изменить это только на одной из моих страниц.По умолчанию у меня есть:

<div class="col-left sidebar">

Я хочу:

<div class="col-left sidebar my-class">

Я не могу изменить это в 2 колонках слева, потому что это изменится на всех страницах Magento.Возможно ли это?

Ответы [ 2 ]

2 голосов
/ 01 марта 2011

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

  1. Переименуйте и отредактируйте файл 2-columns-left.phtml. Это находится в / app / design / frontend / default / YOUR_THEME / template / page. Примерно в 50-й строке вы увидите строку <div class="col-left sidebar">.

  2. Отредактируйте файл config.xml, чтобы на странице использовался новый шаблон. Config.xml находится в / app / code / core / Mage / Page / etc. Примерно на полпути вы увидите код, ссылающийся на two_columns_left; скопируйте этот код и отредактируйте его так, чтобы он указывал на новую страницу.

  3. Наконец, отредактируйте страницу через бэкэнд> CMS> Pages, чтобы использовать новый шаблон. Теперь вы можете добавлять стили через CSS в вашей теме.

Больше инструкций здесь .

1 голос
/ 01 марта 2011

Метод 1 - layout.xml:

a. For files you want to include on every page
For css or js files you want to add to every page, you edit the page.xml files located in your layout folder (app/design/frontend/default/your_theme/layout/page.xml). Within this file, at the top you will find the <default> area with the **<block name="root" … >**. This block has a child named head which contains the included css and js elements.

<block type="page/html_head" name="head" as="head">
<action method="addJs"><script>prototype/prototype.js</script></action>
<action method="addJs" ifconfig="dev/js/deprecation"><script>prototype/deprecation.js</script></action>
<action method="addJs"><script>prototype/validation.js</script></action>
<action method="addJs"><script>scriptaculous/builder.js</script></action>

...

</block> 

Здесь вы можете добавить свой javascript и css.Обратите внимание, что все добавляемые вами Js-файлы относятся к папке «js» в корневом каталоге.Файлы css включены в файлы скина текущих и стандартных шаблонов (skin / frontend / default / your_template (& default) / css).

b. Specific areas
If you want to include css or js on only certain areas (such as the checkout process or catalog pages), you can do that also. For instance, if you want it in a single product view (product view vs product list), you can open up catalog.xml, find <catalog_product_view> area (near line 168 in vs 1.2.1).  Add your code in there – notice that we are using the <reference> tag rather than <block> tags. We use the “reference” tag to reference other blocks that are in other areas of the template.

<reference name="head">
<action method="addJs"><script>varien/product.js</script></action>

<action method="addItem"><type>js_css</type><name>calendar/calendar-win2k-1.css</name><params/><!--<if/><condition>can_load_calendar_js</condition>--></action>
<action method="addItem"><type>js</type><name>calendar/calendar.js</name><!--<params/><if/><condition>can_load_calendar_js</condition>--></action>
<action method="addItem"><type>js</type><name>calendar/lang/calendar-en.js</name><!--<params/><if/><condition>can_load_calendar_js</condition>--></action>
<action method="addItem"><type>js</type><name>calendar/calendar-setup.js</name><!--<params/><if/><condition>can_load_calendar_js</condition>--></action>
</reference> 

Использование также можно использовать в макетеОбласти XML в административной части (страницы CMS, категории и дизайн продуктов).Это может выполнить то же самое, а также добавить или удалить другие блоки.

Метод 2 - Код блока:

Мы можем выполнить все это также в коде,Эти функции определены в Mage_Page_Block_Html_Head.Таким образом, мы можем использовать этот код в классе блока (а не в файле .phtml!):

$headBlock = $this->getLayout()->getBlock('head');
$headBlock->addJs('somefolder/yay.js'); 

Я предлагаю просматривать файлы page.xml до тех пор, пока не найден синтаксис removeItem ($ type,$ name для метода, для xml), который будет очень удобен для вас для добавления или удаления ресурсов по мере необходимости!

<action method="removeItem"><type>js</type><name>calendar/calendar.js</name</action>
$this->getLayout->getBlock('head')->removeItem('js', 'calendar/calendar.js'); 

Статья была опубликована: http://www.exploremagento.com/magento/adding-and-remove-js-css.php

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