Популярні запитання по 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, додавання стовпця до таблиці не вплине на раніше збережені записи і всі нові записи будуть збережені в цих стовпцях.

 

This post was last modified on 17/07/2015 15:25

Останні пости

Вінстон Черчилль

Песиміст бачить труднощі у кожній можливості; оптиміст у будь-яких труднощах бачить можливості Сер Вінстон Леонард…

19/05/2024

Конфуцій

Коли вам здасться, що мета недосяжна, не змінюйте ціль — змінюйте свій план дій Конфуцій…

12/05/2024

Чарльз Дарвін

Виживає не найсильніший і не найрозумніший, а той, хто найкраще пристосовується до змін Чарльз Роберт…

11/05/2024

Що таке тег canvas в HTML5 і для чого він потрібен?

Елемент <canvas> з’явився лише в HTML5 і використовується для динамічного малювання графіки на веб-сторінці з…

10/05/2024

Ден Браун

Можливо все, — неможливе просто потребує більше часу Ден Браун  

09/05/2024

Що включає в себе чистка ноутбука?

Ноутбук — це не тільки зручний і функціональний ґаджет, а й доволі делікатний пристрій, що…

08/05/2024