Місячний архів: 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.
![]()
Тут ви можете знайти налаштування кожного з розділів бічної панелі:
Категорії блогу в Magento 2 — це прекрасний спосіб покращити навігацію блогу та впорядкувати публікації відповідно до різних критерій. Створюючи категорії для Magento 2 Блог, ви покращуєте враження користувачів на вашому веб-сайті та дозволяєте відвідувачам блогу швидше та ефективніше знаходити публікації, які їх цікавлять.
У цій статті ви дізнаєтесь про те, як створити публікації блогу, щоб ви могли структурувати найкращим чином.
Виконайте наступні кроки, щоб створити категорію блогу в Magento 2:
1. Перейдіть в Content > Blog > Categories та натисніть кнопку Add New Category.
![]()
Блог є одим з найкращих інструментів маркетингу застосування якого на вашому веб-сайті Magento 2 допоможе створити джерело трафіку та місце для просування вашого магазину.
Створюючи блог на Magento 2, ви викликаєте довіру та покращуєте досвід користувачів у вашому магазині.
У Magento, за замовчуванням, немає функції блогу. Тому вам потрібно встановити його на свою версію Magento, щоб мати можливість вести блог, не покладаючись на якусь сторонню платформу.
Враховуючи кількість доступних , вам не повинно бути важко вибрати найкращий для вашого магазину.
У цій статті ми покажемо вам, як створити публікацію блогу використовуючи Magento 2 Блог від Magefan.
Виконайте наступні кроки, щоб створити публікацію в Magento 2:
1. Перейдіть в Content > Blog > Posts та натисніть кнопку Add New Post.
![]()
2. Ввімкніть Публікацію і дайте їй Title.
3. Виберіть Category, до якої ви хочете призначити публікацію. Ви можете легко , натиснувши кнопку New Category.
4. Додайте Content вашого поста.
![]()
5. Додайте Short
Для додавання нової таблиці до бази даних 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". Ви самі можете придумати його назву.