Частые вопросы по Magento и ответы на них
Очень часто пользователи Мадженто сталкиваются с такими вопросами, ответы на которые тяжело найти. Поэтому мы постарались собрать в одном месте наиболее популярные из таких вопросов, и наиболее полно на них ответить.
Когда нужно очистить кэш, чтобы увидеть изменения в Magento?
Всякий раз, когда вы добавили/изменили файлы XML, JS, CSS.
Как включить CMS блок в файле шаблона (.phtml)?
Блоки контента из .phtml-файла шаблона вызываются:
echo $this->getLayout()->createBlock("cms/block")->setBlockId("id_staticheskogo_bloka")->toHTML();
где id_staticheskogo_bloka — это уникальный идентификатор (ID) статического CMS-блока.
Как подключить файлы JavaScript/CSS в Magento?
С помощью тегов в 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
Смотрите урок: Понимание логики дизайна для Magento
Что такое «магические методы» в Magento?
Методы PHP, начинающиеся с двойного подчеркивания, называют магическими методами. С их помощью вы можете определить поведение вашего объекта при различных манипуляциях с его экземпляром.
Magento использует магические методы
__call(), __get(), __set(), __uns(), __has(), __isset(), __toString(), __construct()
и т.д.
Более подробную информацию об этих методах вы можете найти внутри класса Varien_Object.
Подробная информация о магических методах в PHP: http://php.net/manual/en/language.oop5.magic.php
Сколько таблиц в базе данных создает Magento при создании нового модуля?
Magento создает 6 таблиц: module, module_datetime, module_decimal, module_int, module_text і module_varchar. Первая – это главная таблица, а остальные 5 хранят данные атрибута в различных типах данных. Например, целые значения запишутся в таблицу module_int, значения цен в таблицу module_decimal и т.д.
Где в базе данных хранится связь между настраиваемым товаром и простым товаром?
Эта связь хранится в 2 таблицах базы данных:
- catalog_product_relation
- catalog_product_superlink_table
Как сделать перевод Magento
Смотрите урок: Как перевести Magento на русский
Что такое архитектура MVC в Magento?
Для начала определимся с понятием MVC. MVC — это аббревиатура от Model-View-Controller (Модель – Представление – Контроллер). Любое приложение, которое использует разделение на данные, бизнес-логику и пользовательский интерфейс – можно назвать MVC.
Magento также использует логику MVC: контроллеры (для запроса/ответа маршрутизации), Block (для визуализации содержимого), Model (для бизнес-логики), Resource/Mysql4 (для операций с базами данных), etc (для файлов конфигурации конкретных модулей), Helper (для общих функций) , SQL (для сценариев установки), макет — Layout (для подключения блока с шаблонами для каждого действия контроллера) и шаблон/.phtml файл (для Представления).
Более детально архитектура Мадженто описана в статье: Структура Magento – архитектура файлов CMS
Как работает Magento ОRМ?
ОRМ – эта аббревиатура переводится как объектно-реляционное отображение. Это метод программирования, который используется для преобразования различных типов данных объектов. Так, с помощью этой технологии, базы данных связываются с концепциями объектно-ориентированного языка программирования (MVC).
Все модели Magento, которые взаимодействуют с базой данных, наследуются от класса Mage_Core_Model_Abstract, который потом наследуются от Varien_Object.
Пример работы ORM: когда вы хотите получить некоторые данные в Magento, вы вызываете это так:
Mage::getModel('module/model')->load(1);
где 1 – это первичный ID ключ некоторой Регулярной/Простой таблицы.
Что такое EAV в Magento?
EAV – это модель данных Entity-Attribute-Value (Сущность-Атрибут-Значение), которая позволяет добавлять неограниченное количество колонок в базу данных. Так, по EAV, есть одна таблица, которая содержит все «атрибуты» данных (имена полей таблиц), и другие таблицы, которые содержат «сущности» (ID или первичный ID) и значение (значение для этого идентификатора) напротив каждого атрибута.
В Magento есть одна таблица для хранения значений атрибутов, которая называется eav_attribute и 5-6 таблиц, которые содержат сущности и данные в нормализованной форме:
- eav_entity, eav_entity_int (для хранения целых значений),
- eav_entity_varchar (для хранения переменных значений),
- eav_entity_datetime (для хранения значений даты и времени),
- eav_entity_decimal (для хранения десятичных значений/с плавающей точкой),
- eav_entity_text (для хранения текстовых (тип MySQL Text) значений).
EAV в Мадженто должно использоваться только тогда, когда вы не уверены в количестве полей таблицы, которые могут изменяться в будущем. Основное преимущество EAV – это например, когда вы захотите добавить поля таблицы в будущем, при уже имеющимся тысячам или миллионам записей в таблице. В обычной таблице, если вы добавите к ней поля с такими объемами данных, они могут нарушить всю вашу таблицу. В то время как в EAV, добавление столбца к таблице не повлияет на ранее сохраненные записи и все новые записи будут сохранены в этих столбцах.
Последние посты
Самые красивые и впечатляющие мосты со всего мира (ТОП-10)
Мост — это нечто большее, чем просто сооружение, соединяющее два берега. Для того, чтобы появился… Читать далее
Соломон
Жизнь нас учит, что свою пару мы познаем, когда разводимся, своих братьев мы познаем, когда… Читать далее
Чак Паланик
Кто может — тот делает. Кто не может — тот критикует Чак Паланик Читать далее
Ричард Бах
Ни одно желание не дается тебе отдельно от силы, позволяющей его осуществить. Хотя, возможно, для… Читать далее
Стивен Кинг
Жизнь – это непрерывный опыт, и даже самые плохие моменты занимают свое место в пазле… Читать далее
неизвестный автор
Люди, которые любят одиночество, дорого заплатили за дружбу с кем-то... неизвестный автор Читать далее