Monthly Archives: 2017
У Magento 2 з’явились плагіни-перехоплювачі (Magento 2 plugins, Magento 2 interceptors), які дозволяють виконати власний код до/після та навколо виклику публічного методу класу.
Наприклад, є клас PHP з відкритими функціями "setName", "getName", "save":
<?php
namespace VendorName\ModuleName\Folder;
class SomeModel
{
private $name;
public function setName($name, $storeId = 0) {
$this->name[0] = $name;
}
public function getName($storeId = 0) {
return $this->name[$storeId];
}
public function save($fields, $customData) {
/* some save logic here */
}
}
Як створити плагін в Magento 2?
1. Створіть файл etc/di.xml у папці вашого модуля, помістивши у нього код:
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<type name="VendorName\ModuleName\Foder\SomeModel">
<plugin name="mycompany_mymodule_plugin_modulename_foder_somemodel"
type="MyCompany\MyModule\Plugin\ModuleName\Foder\SomeModelPlugin" sortOrder="10" />
</type>
</config>
Робота з URL у .phtml темплейт файлах
1. Отримання посилання на головну сторінку магазину (http://domain.com/):
<?= $this->getUrl() ?>
2. Отримання посилання на певну сторінку, для прикладу, "Contact Us" (http://domain.com/contacts/):
<?= $this->getUrl('contacts') ?>
3. Для отримання посилання на статичний файл теми, для прикладу:
app/design/frontend/ThemeVendor/theme_name/web/css/custom.css
app/design/frontend/ThemeVendor/theme_name/Magefan_Blog/web/js/lazyload.js
app/code/Magefan_Blog/view/frontend/web/js/lazyload.js
vendor/magefan/module-blog/view/frontend/web/js/lazyload.js
використовуйте код:
<?= $this->getViewFileUrl('css/custom.css') ?>
<?= $this->getViewFileUrl('Magefan_Blog::js/lazyload.js') ?>
Використовуйте код, для того, щоб вставити темплейт блок у WYSIWYG (Важливо! Додайте його в середину подвійних фігурних дужок):
block class="Magento\Framework\View\Element\Template" template="Magefan_Blog::content/block-template-example.phtml"
У попередніх статтях ми продемонстрували, як створити нові таблиці у базі даних Magento 2. З цієї статті ви дізнаєтеся про моделі для роботи з даними бази даних, які дозволять читати, редагувати та видаляти дані.
Magento 2 і Magento 1 для цих цілей використовує Model/ResourceModel/Collection ORM (Object-relational mapping). Для реалізації такої концепції необхідно створити 3 файли (модель, ресурс модель, колекцію).
Під час розробки інтернет-магазину на базі Magento 2, виникає задача розширення стандартного функціоналу Magento 2 або модулів Magento 2. Редагувати файли ядра Magento чи модулів недопустимо, тому що під час оновлення ці зміни будуть перезаписані. Отож, як внести зміни у storefront (frontend) файл темплейту, css, js?
УВАГА! Подані нижче інструкції не можна застовувати для переписування layout-файлів.
Переписування view-файлів модуля у папці app/code
Нехай потрібно змінити файл:
app/code/Magefan/Blog/view/frontend/templates/post/view.phtml
Створіть його копію у папці теми зі шляхом:
app/design/frontend/ThemeVendor/themename/Magefan_Blog/templates/post/view.phtml
Внесіть необхідні зміни у щойно створений файл теми.
Якщо власна тема відсутня на вашій Magento інсталяції, створіть її.
Базові команди Linux
pwd - відображає інформацію про поточне знаходження у файловій системі (шлях директорії (папки) у якій ви знаходитесь);
dir, ls - показує список файлів і папок у поточній директорії;
cd (change directory - змінити поточну директорію) дозволяє перейти у іншу папку;
Наприклад:
cd ../ - перейде у папку на рівень вище;
cd foo - перейде у дочірню папку "foo";
cd /var - перейде папку "var", що знаходиться у корені файлової системи;
touch fine_name - створення нового файлу з назвою "fine_name";
mkdir dir_name - створення нової папки "dir_name" у поточній директорії;
rm file_name (remove - видалити) - видалення файлу "file_name";
rm -r dir_name - видалення папки "dir_name";
cp origin_name new_name (copy - копіювати) - копіювання файлів і папок;
mv old_name new_name - перенесення файлів і папок;
ln -s origin_name link_name - створення символьного посилання;
У попередній статті ми розповіли як налаштовувати права доступу для користувачів адмін-панелі Magento 2. У цій статті ми розглянемо, як створювати власні правила доступу (Role Resources).
Для цього необхідно у папці вашого модуля створити ACL-файл (ACL - Access control list):
etc/acl.xml
Magento 2 дозволяє чітко розмежовувати права користувачів в адмін-панелі, тому кожен може отримати доступ лише до тих інтерфейсів, що необхідні для його роботи, ролі в компанії.
Для додавання чи зміни ролі:
1. Перейдіть в адмін-панель Magento 2 > System > Permissions > User Roles.
2. Оберіть роль, яку хочете змінити або натисніть кнопку "Add New Role", для додавання нової ролі.
Домашня сторінка блогу в Magento 2 — це перша сторінка блогу на яку заходять ваші читачі. Ви повинні налаштувати її таким чином, щоб людям було легко орієнтуватись у блозі та його категоріях.
Тож, у цій статті ви дізнаєтесь більше про налаштування домашньої сторінки блогу.
Для того, щоб налаштувати головну сторінку в модулі Magento 2 Блог, перейдіть в Stores > Configuration > Magefan Extensions > Blog та знайдіть розділ Blog Index Page.
Для того, щоб додати посилання на Блог у верхнє навігаційне меню:
1. Перейдіть в Stores > Configuration > Magefan Extensions > Blog та знайдіть розділ Category Top Navigation.
Для управління меню адмін-панелі Magento 2 (додавання нових пунктів) служить файл etc/adminhtml/menu.xml.
Позиція вашого магазину в Google або інших пошукових системах залежить від вашої стратегії SEO. Є багато факторів, на яких базується SEO, і навіть більше речей, які залежать від SEO, зокрема відвідуваність веб-сайту.
Magento 2 Блог — один із найкращих способів залучити більше відвідувачів на ваш веб-сайт. Тож ми додали найкращі практики SEO до нашого розширення, щоб сторінки вашого блогу займали хороші позиції в пошукових системах.
І в цій статті ви дізнаєтесь про налаштування постійних посилань блогу (blog permalink settings) — URL-адрес сторінок блогу.
Назва меню [ідентифікатор]
Dashboard [Magento_Backend::dashboard]
Sales [Magento_Sales::sales] Operations [Magento_Sales::sales_operation] Orders [Magento_Sales::sales_order] Invoices [Magento_Sales::sales_invoice] Shipments [Magento_Sales::sales_shipment] Credit Memos [Magento_Sales::sales_creditmemo] Billing Agreements [Magento_Paypal::paypal_billing_agreement] Transactions [Magento_Sales::sales_transactions]
У попередній статті ми описали, як створити власну секцію на сторінці конфігурації Magento 2 (Stores > Configuration).
Для того, щоб задати значення за замовчуванням полям налаштувань, необхідно у папці модуля створити файл
etc/config.xml
помістити у нього код:
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Store:etc/config.xsd">
<default>
<section_id>
<group_id>
<field_id>default_value</field_id>
</group_id>
</section_id>
</default>
</config>
Сторінку налаштування Magento 2 можна знайти в адмін-панелі Magento 2 > Stores > Configuration.
Усі вкладки та форми цієї сторінки налаштовуються за допомогою файлу
etc/adminhtml/system.xml
Щоб налаштувати бічну панель в Magento 2 Блозі, перейдіть в Stores > Configuration > Magefan Extensions > Blog та знайдіть групу Sidebar.
Тут ви можете знайти налаштування кожного з розділів бічної панелі:
- Налаштування пошукової форми блогу
- Налаштування дерева категорій блогу
- Налаштування останніх постів блогу
- Налаштування рекомендованих постів блогу
- Налаштування популярних постів блогу
- Налаштування архіву блогу
- Налаштування хмари тегів блогу
- Налаштування RSS Feed блогу
- Налаштування кастомного HTML блогу
Категорії блогу в Magento 2 — це прекрасний спосіб покращити навігацію блогу та впорядкувати публікації відповідно до різних критерій. Створюючи категорії для Magento 2 Блог, ви покращуєте враження користувачів на вашому веб-сайті та дозволяєте відвідувачам блогу швидше та ефективніше знаходити публікації, які їх цікавлять.
У цій статті ви дізнаєтесь про те, як створити публікації блогу, щоб ви могли структурувати публікації блогу найкращим чином.
Виконайте наступні кроки, щоб створити категорію блогу в Magento 2:
1. Перейдіть в Content > Blog > Categories та натисніть кнопку Add New Category.
Блог є одим з найкращих інструментів маркетингу застосування якого на вашому веб-сайті Magento 2 допоможе створити джерело трафіку та місце для просування вашого магазину.
Створюючи блог на Magento 2, ви викликаєте довіру та покращуєте досвід користувачів у вашому магазині.
У Magento, за замовчуванням, немає функції блогу. Тому вам потрібно встановити його на свою версію Magento, щоб мати можливість вести блог, не покладаючись на якусь сторонню платформу.
Враховуючи кількість доступних модулів блогу для Magento 2, вам не повинно бути важко вибрати найкращий для вашого магазину.
У цій статті ми покажемо вам, як створити публікацію блогу використовуючи Magento 2 Блог від Magefan.
Виконайте наступні кроки, щоб створити публікацію в Magento 2:
1. Перейдіть в Content > Blog > Posts та натисніть кнопку Add New Post.
2. Ввімкніть Публікацію і дайте їй Title.
3. Виберіть Category, до якої ви хочете призначити публікацію. Ви можете легко створити нову категорію, натиснувши кнопку New Category
Для додавання нової таблиці до бази даних Magento 2 необхідно створити файл у папці модуля:
app/code/<VendorName>/<ModuleName>/Setup/InstallSchema.php
помістіть у нього код:
<?php
namespace VendorName\ModuleName\Setup;
use Magento\Framework\Setup\InstallSchemaInterface;
use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Framework\Setup\SchemaSetupInterface;
use Magento\Framework\DB\Adapter\AdapterInterface;
class InstallSchema implements InstallSchemaInterface
{
public function install(SchemaSetupInterface $setup, ModuleContextInterface $context)
{
$installer = $setup;
$installer->startSetup();
//new table script will be there
$installer->endSetup();
}
}
Magento 2 може працювати у трьох режимах: default, developer та production.
Після встановлення Magento 2 перебуває у default-режимі (default mod). Він призначений для користувачів, яким невідомо про можливість зміни режиму роботи Magento 2, і займає проміжне місце між developer та production станом. Цей режим не оптимальний для розробки та виробничого середовища (production environment). У ньому Magento 2 кешує статичні файли, не виводить помилки у бувер обміну (на екран), але вони записуються у файл логу (magento2_folder/var/log).
У попередній статті ми показали як вивести текст "Hello World" на власній сторінці. Тепер виведіть його у новому блоці.
1. Додайте новий PHP class блоку.
Створіть файл:
app/code/<VendorName>/<ModuleName>/Block/SomeName.php
помістіть у нього код:
<?php
namespace VendorName\ModuleName\Block;
class SomeName extends \Magento\Framework\View\Element\Template
{
public function getWelcomeText()
{
return 'Hello World';
}
}
SomeName - довільна назва у форматі CamelCase (верблюжий регістр).
\Magento\Framework\View\Element\Template - клас, від якого унаслідуєте власний блок, що взаємодіє з темплейтом.
getWelcomeText - створений нами публічний метод що повертатиме текст "Hello World". Ви самі можете придумати його назву.