В Magento есть несколько стандартных типов страниц, так называемых шаблонов (template) или “лайяутов” (layout).
Это Empty, 1 column, 2 columns with left bar, 2 columns with right bar, 3 columns.
Казалось бы все есть, но если понадобится еще один пользовательский вид страницы Magento, к примеру в 4 колонки? Или стандартный в 2 колонки но с другими размерами колонок для новостей?
Ниже простой пример, как сделать пользовательский тип страницы для Magento.
Можно сделать двумя способами:
- через папку Magento app/code/local/Mage (скопировав файлы из app/code/core/Mage)
- создать модуль для Magento, который просто будет добавлять функционал к стандартным файлам Magento из app/code/core/Mage
Наверное лучший способ – это создать как модуль Magento.
Пример.
- Откроем папку app/code/local
- Создадим папку поставщика/разработчика модуля(ей) Magento, к примеру Myname
- Откроем Myname и создадим папку для модуля, назовем Custompage
- Далее создадим файл конфигурации для Magento, в котором настраивается тип страниц.
- Откроем Custompage и создадим папку etc, и в папке etc создадим файл config.xml
- Открываем и смотрим файл app/code/core/Mage/Page/etc/config.xml, как видно в XML теге page/layouts задаются типы страниц в Magento,
и шаблоны .phtml для вывода контента. Задача модуля в том чтобы изменить/добавить в тег
- Добавим изменения-правки в новый модуль Magento, открываем app/code/local/Myname/Custompage/etc/config.xml и вставим следующий код
<?xml version="1.0"?>
<config>
<modules>
<Myname_Custompage>
<version>1.0</version>
</Myname_Custompage>
</modules>
<global>
<page>
<layouts>
<one_column_custom module="page" translate="label">
<label>Custom 1 column</label>
<template>page/1column.phtml</template>
<layout_handle>page_one_column_custom</layout_handle>
</one_column_custom>
</layouts>
</page>
</global>
</config>
Был добавлен блок
<one_column_custom module="page" translate="label">
<label>Custom 1 column</label>
<template>page/1column.phtml</template>
<layout_handle>page_one_column_custom</layout_handle>
</one_column_custom>
где
label — название типа страницы Magento (появится в админ панели)
template — шаблон .phtml файл, который будет обрабатывать вывод контента
layout_handle — системный идентификатор типа страницы, можно будет работать через код и XML (к примеру обновлять блоки)
- Создадим шаблон, файл .phtml для обработки контента страницы нового типа.
Открываем файлы/папку темы Magento которую используем или по умолчанию app/design/frontend/default/default. И создадим файл 1column-custom.phtml - Теперь осталось только подключить модуль для Magento. И сбросить кеш.
- Подключим модуль Magento, открываем app/etc/modules,
и создаем файл Myname_Custompage.xml.
И вставим следущий код
<?xml version="1.0"?>
<config>
<modules>
<Myname_Custompage>
<active>true</active>
<codePool>local</codePool>
</Myname_Custompage>
</modules>
</config>
- И обновим кеш Magento
Зайдем в админ панель Magento: CMS -> Pages -> кнопка Add new page и в вкладке(таб) Design в выборе Layout появилось “Custom 1 column”

Скачать модуль Magento для создания пользовательского типа страниц
https://github.com/magefast/MagentoCustomPageType