Популярні запитання по Magento і відповіді на них
Дуже часто користувачі Мадженто стикаються з такими питаннями, відповіді на які важко знайти. Тому ми постаралися зібрати в одному місці найбільш популярні з таких питань, і найбільш повно на них відповісти.
Коли потрібно чистити кеш, щоб побачити зміни в Magento?
Всякий раз, коли ви додали/змінили файли XML, JS, CSS.
Як включити CMS блок у файлі шаблону (.phtml)?
Блоки контенту з .phtml-файлу шаблону викликаються:
echo $this->getLayout()->createBlock("cms/block")->setBlockId("id_statik_blok")->toHTML();
де id_statik_blok – це унікальний ідентифікатор (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)
Міст — це щось більше, ніж просто споруда, яка поєднує два береги. Для того, щоб… Читати далі
Соломон
Життя нас вчить, що свою пару ми пізнаємо, коли розлучаємося, своїх братів ми пізнаємо, коли… Читати далі
Річард Бах
Жодне бажання не дається тобі окремо від сили, що дозволяє його здійснити. Хоча, можливо, для… Читати далі