Добавить новую опцию макета страницы Magento

11

Я хотел бы добавить новый макет страницы в Magento, который можно будет выбрать на страницах CMS. Я скопировал 1-column.phtmlкод, немного его адаптировал и изменил на1-column-version2.phtml.

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

,

YorkieMagento
источник

Ответы:

18

Чтобы удовлетворить ваши требования, вам нужно создать расширение - без этого это невозможно.

Файл конфигурации модуля:

Создайте файл конфигурации файла модуля в app/etc/modules/Amit_NewLayout.xml

Код:

<?xml version="1.0"?>
<config>
    <modules>
        <Amit_NewLayout>
            <active>true</active>
            <codePool>local</codePool>
            <depends>
                <Mage_Page />
            </depends>
        </Amit_NewLayout>
    </modules>
</config>

Определить config.xml

Теперь определите 1-column-version2.phtmlкак шаблон для нового макета в app/code/local/Amit/NewLayout/etc/config.xml

Код:

<?xml version="1.0"?> 
<config>
    <modules>
        <Amit_NewLayout>
            <version>0.0.1</version>
        </Amit_NewLayout>
    </modules>
    <global>
        <page>
            <layouts> 
                <new_cms_layout module="page" translate="label">
                    <label>New Cms Layout</label>
                    <template>page/1-column-version2.phtml</template>
                    <layout_handle>lookbook</layout_handle>
                </new_cms_layout> 
            </layouts>
        </page>
    </global>
</config>

Теперь вы сможете увидеть этот макет в настройках макета страницы CMS.

Amit Бера
источник
Без этого поста это невозможно.
jmargolisvt
1

Создайте один модуль и добавьте ниже xml в ваш файл config.xml.

app/code/local/Namespace/CustomLayouts/etc/config.xml

<?xml version="1.0"?>
<config>
 <global>
  <page>
   <layouts>
    <custom_static_page_one>
     <label>Custom static page</label>
     <template>page/1-column-version2.phtml</template>
    </custom_static_page_one>
   </layouts>
  </page>
 </global>
</config>

Зарегистрируйте свой модуль

app/etc/modules/Namespace_CustomLayouts.xml

<?xml version="1.0"?>
<config>
 <modules>
  <Namespace_CustomLayouts>
   <codePool>local</codePool>
   <active>true</active>
  </Namespace_CustomLayouts>
 </modules>
</config>

Создайте свой собственный файл шаблона page/1-column-version2.phtml

Ахилеш Патель
источник
-3

Добавьте свой код в

app\code\core\Mage\Page\etc

config.xml:

с

 <My_one_column_cms module="page" translate="label">
        <label>My One Column</label>
        <template>page/home.phtml</template>
        <layout_handle>My_one_column_cms</layout_handle>
        </My_one_column_cms>

Вы можете изменить имена, как вы хотите в XML, вы можете поместить любые слова

Затем создайте home.phtml в качестве шаблона в newtheme / newpack / page / или в своей теме по умолчанию

Amit
источник
Неразумно изменять файлы ядра.
KiwisTasteGood
Вы никогда не должны напрямую изменять файлы Core. Чтобы уточнить, если бы вы обновили свой экземпляр Magento, вы бы потеряли свои изменения. Вот почему вы должны создать свое собственное расширение и реализовать, как в ответе Амит Бера
JoshCarter