Очень часто пользователи Мадженто сталкиваются с такими вопросами, ответы на которые тяжело найти. Поэтому мы постарались собрать в одном месте наиболее популярные из таких вопросов, и наиболее полно на них ответить.
Всякий раз, когда вы добавили/изменили файлы XML, JS, CSS.
Блоки контента из .phtml-файла шаблона вызываются:
echo $this->getLayout()->createBlock("cms/block")->setBlockId("id_staticheskogo_bloka")->toHTML();
где id_staticheskogo_bloka — это уникальный идентификатор (ID) статического CMS-блока.
С помощью тегов в XML файлах структуры (например, в основных файлах шаблона — local.xml, page.xml)
<action method="addJs"><script>js/yourfile.js</script></action> <action method="addCss"><stylesheet>css/yourstyle.css</stylesheet></action>
ИЛИ
<action method="addItem"><type>skin_js</type><name>js/yourfile.js</name></action> <action method="addItem"><type>skin_css</type><name>css/yourstyle.css</name></action>
Обычно используются следующие типы блоков:
core/template, page/html, page/html_head, page/html_header, page/template_links, core/text_list, page/html_wrapper, page/html_breadcrumbs, page/html_footer, core/messages, page/switch.
Некоторые блоки, такие как content, left, right и т.д. – это блоки типа core/text_list. Когда эти блоки рендерятся, все их дочерние блоки рендерятся автоматически, без необходимости вызова метода getChildHtml().
Смотрите урок: Понимание логики дизайна для Magento
Методы PHP, начинающиеся с двойного подчеркивания, называют магическими методами. С их помощью вы можете определить поведение вашего объекта при различных манипуляциях с его экземпляром.
Magento использует магические методы
__call(), __get(), __set(), __uns(), __has(), __isset(), __toString(), __construct()
и т.д.
Более подробную информацию об этих методах вы можете найти внутри класса Varien_Object.
Подробная информация о магических методах в PHP: http://php.net/manual/en/language.oop5.magic.php
Magento создает 6 таблиц: module, module_datetime, module_decimal, module_int, module_text і module_varchar. Первая – это главная таблица, а остальные 5 хранят данные атрибута в различных типах данных. Например, целые значения запишутся в таблицу module_int, значения цен в таблицу module_decimal и т.д.
Эта связь хранится в 2 таблицах базы данных:
Смотрите урок: Как перевести Magento на русский
Для начала определимся с понятием MVC. MVC — это аббревиатура от Model-View-Controller (Модель – Представление – Контроллер). Любое приложение, которое использует разделение на данные, бизнес-логику и пользовательский интерфейс – можно назвать MVC.
Magento также использует логику MVC: контроллеры (для запроса/ответа маршрутизации), Block (для визуализации содержимого), Model (для бизнес-логики), Resource/Mysql4 (для операций с базами данных), etc (для файлов конфигурации конкретных модулей), Helper (для общих функций) , SQL (для сценариев установки), макет — Layout (для подключения блока с шаблонами для каждого действия контроллера) и шаблон/.phtml файл (для Представления).
Более детально архитектура Мадженто описана в статье: Структура Magento – архитектура файлов CMS
ОRМ – эта аббревиатура переводится как объектно-реляционное отображение. Это метод программирования, который используется для преобразования различных типов данных объектов. Так, с помощью этой технологии, базы данных связываются с концепциями объектно-ориентированного языка программирования (MVC).
Все модели Magento, которые взаимодействуют с базой данных, наследуются от класса Mage_Core_Model_Abstract, который потом наследуются от Varien_Object.
Пример работы ORM: когда вы хотите получить некоторые данные в Magento, вы вызываете это так:
Mage::getModel('module/model')->load(1);
где 1 – это первичный ID ключ некоторой Регулярной/Простой таблицы.
EAV – это модель данных Entity-Attribute-Value (Сущность-Атрибут-Значение), которая позволяет добавлять неограниченное количество колонок в базу данных. Так, по EAV, есть одна таблица, которая содержит все «атрибуты» данных (имена полей таблиц), и другие таблицы, которые содержат «сущности» (ID или первичный ID) и значение (значение для этого идентификатора) напротив каждого атрибута.
В Magento есть одна таблица для хранения значений атрибутов, которая называется eav_attribute и 5-6 таблиц, которые содержат сущности и данные в нормализованной форме:
EAV в Мадженто должно использоваться только тогда, когда вы не уверены в количестве полей таблицы, которые могут изменяться в будущем. Основное преимущество EAV – это например, когда вы захотите добавить поля таблицы в будущем, при уже имеющимся тысячам или миллионам записей в таблице. В обычной таблице, если вы добавите к ней поля с такими объемами данных, они могут нарушить всю вашу таблицу. В то время как в EAV, добавление столбца к таблице не повлияет на ранее сохраненные записи и все новые записи будут сохранены в этих столбцах.
Грехи других судить вы так усердно рветесь, начните со своих и до чужих не доберетесь… Read More
Люди, между которыми есть любовь и взаимопонимание, скрепляют отношения и зарождают новый союз, а дату… Read More
Для качественного SEO (поисковой оптимизации, раскрутки сайта) одним из важных показателей является Авторитет домена (Domain… Read More
Выяснение того, как вывести свои деньги с PayPal, является одним из первых вопросов, которыми озадачивается… Read More
Юбка – мощный элемент женского гардероба, благодаря которому любой наряд будет выглядеть потрясающе стильно и… Read More
Поисковые системы (например, Google) проверяют технические характеристики вашего сайта, такие как скорость загрузки, удобство навигации,… Read More