Pull to refresh

Comments 22

Отличная статья, спасибо!
Думаю, что это кому-то поможет в разработке расширений для Magento, потому что система и впрямь непроста.
Если претендуете на основательность, то нужно было указать, что добавлять что-то в
app/design/frontend/base/*
skin/frontend/base/*
нехорошо, нужно создавать собственную тему и пакет для неё
В base/default кидать действительно не рекомендуется, потому что:
1) Это просто плохой стиль, так как эта папка предназначена для хранения основной темы, а не для изменений в ней.
2) До версии 1.4 такой папки просто не существовало, а некоторые магазины до сих пор сидят на 1.3.

Но по теме на каждый модуль это как-то слишком много тем получается. Обычно всё кладётся в default/default. Во всяком случае все модули, которые я видел, так делают.
Согласен, что для каждого модуля своя тема — это жирно =) Однако упомянуть о назначении base каталогов стоило
Base это то место где система будет искать шаблоны если не найдет в текущем пакете, тоесть если у магазина настроенно 20 тем (или пакетов), и наш модуль должен одним кликом установится и работать, то ему место именно в base. Собственно с версии 1.4 ее для этого и создали.
Спасибо, конечно, буду иметь в виду. Вам как разработчику системы виднее, но, на мой взгляд, пока что самый лучший выход для обеспечения совместимости с 1.3 это всё-таки default/default. Кстати, зачем её вообще оставили, если её функции теперь выполняет base/default?
Base/default — это базовые шаблоны для фронтенда, не привязанные к какой либо теме (скелет), а default/default это уже тема, если посмотреть внимательней то можно увидить, что все скины (css, images, js) находятся в default/default. Раньше все было в default/default, что как бы не совсем логично :)

По поводу совместимости, если мне память не изменяет, система пытается грузить шаблоны в таком порядке:

v1.4

1 — maPackage/myTheam
2 — maPackage/default
3 — base/default

v1.3

1 — maPackage/myTheam
2 — maPackage/default
3 — default/default

То есть кладя файлы в default/default мы потеряем совместимость для версии 1.4+ c кастомной темой.

Вот такие пироги :)
Спасибо! Статья отличная.
А будет статья о том как создать свой модуль для вывода в админке и редактирования какого нибудь контента? например свой новостной модуль?
Согласен, для создания модуля, который имеют свою часть и во фронтенде, и в бэкенде есть свои тонкости. Не буду обещать, но идея для следующего топика хорошая, спасибо.
Ну, статей мало потому что не у всех есть возможность их выкладывать :)
А статья замечательная.

Про хелпер не совсем точно — если его не вызывать и не объявлять в XML то в файле нет необходимости. Вроде в 1.3 и 1.5 так работает.

Так же отдельные модули лучше включать не в etc/modules/Mage_All.xml, а создав отдельный файл для модуля в котором мы его включаем. Тогда его можно устанавливать копированием всех файлов модуля.
Хелпер Data.php нужен, если предполагается использовать переводы. Если не предполагается ни переводить, ни использовать хелперы, то можно, по-моему, не «заводить» его.
Это очень просто проверить. Создайте новый модуль, в котором будет только файл etc/config.xml, включите его в Mage_All.xml и попробуйте зайти на сайт. В логах будет запись об ошибке, что Yourmodule_Helper_Data не найден.
Если в config.xml не описывать helper то ошибки не будет.
Я счас глянул — у меня в модуле нет папки Helper вообще и модуль работает давно и успешно, даже продается.)

А переводить можно используя helper('core').
Огромное спасибо за статью, очень много информации о кишочках этой CMS. Крайне полезно для тех, кто задумывается, стоит ли её изучать и стоит ли делать на ней сайты.
Собственно,
перед отображением страницы Magento парсит все .xml-файлы из папки layout
— `nuff said
Еще раз спасибо, вы сэкономили кучу времени многим людям.
Парсит все .xml-файлы только если отключен кеш.
После полутора лет эксплуатации Magento нет ни малейшего желания продолжать развивать магазин на этой платформе.
Изначально подкупает наличие великолепной многослойной навигацией в стоке. А потом понимаешь, что ради этой функции не стоит получать столько гемороя во всем остальном.
Следует понимать, что для Magento порог вхождения довольно высок. Статья хорошая и понятная. Спасибо.
Отличная штука! По функционалу явно выигрывает. Нужно взять на заметку.
Sign up to leave a comment.

Articles