Підступна війна росії проти України. Орієнтовні втрати ворога
(станом на 29.04.2024)
467470
осіб
348
літаків
325
гелікоптерів
7285
танків
14007
ББМ
11985
артилерія
778
ППО
1051
РСЗВ
16109
машин
26
кораблі і катери
Популярні запитання по Magento і відповіді на них
Опубліковано

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

 

 

Напишіть тут свою думку/питання

Ваша пошта не публікуватиметься. Обов’язкові поля позначені *