Сторінка 3 - Місячний архів: 2018
- 1 хв читання
Ви можете встановити від Magefan, використовуючи методи встановлення за допомогою composer або архіву.
Встановлення через composer (рекомендовано)
Будь ласка, перейдіть до свогоОбліковий запис Magefan > ЗавантаженняВстановити через Composer щоб отримати інструкції з встановлення composer .
Встановлення за допомогою архіву та FTP
Завантажте ZIP-архів розширення Convert Guest to Customer з вебсайту magefan.com (не з GitHub чи інших джерел).
Витягніть файли.
Копіювати додаток папку з архіву до вашої папки Magento 2 .
У командному рядку, використовуючи «cd», перейдіть до кореневого каталогу Magento 2 .
Виконайте команди командного рядка:
php bin/magento setup:upgradephp bin/magento setup:di:compilephp bin/magento setup:static-content:deploy
Примітка: Якщо ви не хочете, щоб ваш вебсайт був недоступний під час розгортання, спробуйте ці .
Після встановлення розширення Magento 2 Convert Guest to Customer ви можете запустити .
- 1 хв читання
Ви можете встановити від Magefan, використовуючи методи встановлення за допомогою composer або архіву.
If you use Magento 2.4.x or greater please .
Встановлення через composer (рекомендовано)
Відкрийте командний рядок.
За допомогою команди "cd" перейдіть до кореневого каталогу Magento 2.
Виконайте команди командного рядка:
composer require magefan/module-login-as-customer# Authentication required (repo.magento.com)# Get your Magento Marketplace authentication keys or use these: # Username: 7c018006799466c681ad507e27904677# Password: 289077c86e811661a8f7751828485d3aphp bin/magento setup:upgradephp bin/magento setup:di:compilephp bin/magento setup:static-content:deploy
Примітка: Якщо ви не хочете, щоб ваш вебсайт був недоступний під час розгортання, спробуйте ці .
Встановлення за допомогою архіву та FTP
Завантажте ZIP-архів розширення Login As Customer з веб-сайту magefan.com (не GitHub чи інших джерел).
Витягніть файли.
Копіювати додаток папку з архіву до вашої папки Magento 2.
У командномуihor
- 1 хв читання
Ви можете встановити за допомогою Magefan, використовуючи методи встановлення за допомогою composer або архіву.
Встановлення через composer (рекомендовано)
Будь ласка, перейдіть до свого облікового запису Magefan > Обліковий запис Magefan > Завантаження > Встановлення через Composer , щоб отримати інструкції з встановлення composer .
Встановлення за допомогою архіву та FTP
Завантажте ZIP-архів розширення Auto Language Switcher з веб-сайту Magefan.com (не GitHub чи інших джерел).
Розпакуйте файли.
Скопіюйте папки app та lib з архіву до вашої папки Magento 2.
У командному рядку, використовуючи "cd", перейдіть до кореневого каталогу Magento 2.
Виконайте команди CLI:
php bin/magento setup:upgradephp bin/magento setup:di:compilephp bin/magento setup:static-content:deploy
Примітка: якщо ви не хочете, щоб ваш веб-сайт був недоступний під час розгортання, спробуйте ці .
Після встановлення розширення Magento 2 Auto Language Switcher ви можете запустити .
- 1 хв читання
- 1 хв читання
Іноді ви можете бачити сповіщення на панелі Magento 2, які відображаються знову і знову. Це сповіщення адміністратора Magento 2.
Щоб припинити показ цих повідомлень, потрібно позначити їх як прочитані.
Для цього, будь ласка, перейдіть до Керування сповіщеннями сторінку. Натисніть на значок дзвіночка у верхньому правому куті адміністративної панелі, а потім натисніть кнопку "Дивитися всі (X непрочитаних)"посилання".
Виберіть потрібні повідомлення та позначте їх як прочитані.
От і все.
Однак, є деякі сповіщення, які корисно отримувати вам, як адміністратору.
наприклад, новий відгук, вимкнений кеш та сповіщення про низький рівень товару на складі
Перевірте , щоб отримувати електронні листи про зміни у вашому магазині безпосередньо на вашу електронну скриньку.
- 1 хв читання
Якщо ви встановили або оновили розширення Magento 2 та отримали повідомлення про помилку, наприклад:
Module 'Company_Module' from 'app/code/Company/Module' has been already defined in 'vendor/company/module'.
, це означає, що у вас є 2 версії розширення:
1) у папці app/code/ Company/ Module 2) у папці vendor/ company/ module
У папці vendor Magento зберігає всі компоненти (розширення, теми, мовні пакети), які були встановлені за допомогою Composer.
Оскільки встановлення або оновлення розширень через Composer є кращим, вам потрібно видалити папку розширення app/code/Company/Module (не забудьте про резервну копію перед видаленням) та виконати команди встановлення.
Приклад:
Якщо ви отримуєте помилку:
Module 'Foo_Bar' from 'app/code/Foo/Bar' has been already defined in 'vendor/foo/module-bar'.
Вам потрібно:
1. Зробіть резервну копію папки "app/code/Foo/Bar"
2. Видаліть "app/code/Foo/Bar".
3. Виконайте команди
php bin/magento setup:upgradephp bin/magento setup:di:compilephp bin/magentoihor
- 1 хв читання
Спочатку ви не можете переіндексувати Magento з панелі адміністратора. Щоб виконати , вам потрібно використовувати PuTTY або іншу термінальну програму для запуску команд CLI, наприклад, команду для переіндексації:
php bin/magento indexer:reindex
Отже, найчастіше розробники використовують . Однак, за допомогою БЕЗКОШТОВНОГО розширення Magento 2 Command Line (CLI) від Magefan ви можете запускати команди CLI безпосередньо з панелі адміністратора Magento 2.
Щоб переіндексувати Magento 2 з панелі адміністратора:
1. Встановіть розширення Magefan CLI, щоб побачити новий пункт меню " Система > Командний рядок ", який буде додано до меню адміністратора.
2. Введіть свій поточний пароль адміністратора (з міркувань безпеки). На сторінці "Командний рядок" введіть команду переіндексації Magento 2.
3. Натисніть ENTER , щоб розпочати переіндексацію після введення команди " php bin/magento indexer:reindex" .
Результат:
За допомогою модуля Magefan CLI ви можете виконувати будь-які інші команди Magentoihor
- 2 хв читання
Використовуйте для генерації безкоштовного робочого сертифікату Давайте зашифруємо. Сервіс, який дозволяє генерувати сертифікати SSL за допомогою автоматичного API.
Усі приклади і команди відображаються на базі Ubuntu 16.04. Домен, для якого потрібно згенерувати сертифікат, має бути закріпленим (зазначеним) за поточним сервером Linux.
Виконайте наступні кроки, щоб згенерувати та підключити сертифікат:
1. Встановіть Certbot:
sudo add-apt-repository ppa:certbot/certbotsudo apt-get updatesudo apt-get install certbot
2. Certbot повинен відповісти на криптографічний запит, який надсилає «Let's Encrypt API», щоб повідомити, що ви контролюєте домен. Відкрийте потр 80 (HTTP) або 443 (HTTPS) у вашому брендмауері. Виконайте команду:
sudo ufw allow 80
Якщо команда ufw недоступна, встановіть її:
sudo apt-get install ufw
3. Запустіть Certbot:
sudo certbot certonly --standalone --preferred-challenges http -d example.com
де example.com - назва вашого домену.
У результаті виконання командиihor
- 1 хв читання
Якщо ви використовуєте Magento 2.2.x або новішої версії та отримуєте повідомлення про помилку:
1 exception(s):
Exception #0 (Magento\Framework\Config\Dom\ValidationException): Element 'block', attribute 'class': [facet 'pattern'] The value '\Magento\Framework\View\Element\Text\ListText' is not accepted by the pattern '[A-Z][_a-zA-Z\d]*(\\[A-Z][_a-zA-Z\d]*)*'.
Line: 982
Element 'block', attribute 'class': '\Magento\Framework\View\Element\Text\ListText' is not a valid value of the atomic type 'blockClassType'.
Line: 982
Exception #0 (Magento\Framework\Config\Dom\ValidationException): Element 'block', attribute 'class': [facet 'pattern'] The value '\Magento\Framework\View\Element\Text\ListText' is not accepted by the pattern '[A-Z][_a-zA-Z\d]*(\\[A-Z][_a-zA-Z\d]*)*'.
Line: 982
Element 'block', attribute 'class': '\Magento\Framework\View\Element\Text\ListText' is not a valid value of the atomic type 'blockClassType'.
Line: 982
Вам потрібно перевірити всі файли макетів у вашій темі та користувацькихihor
- 2 хв читання
Якщо вам потрібно розширити модуль блогу Magento 2 від Magefan та додати нове текстове поле на сторінку редагування дописів блогу в адміністративній панелі Magento 2 (Вміст > Блог > Дописи), вам потрібно створити просте власне розширення Magento 2.
Ви можете завантажити зразок розширення з нашої сторінки GitHub або створити його вручну, виконавши наведені нижче кроки:
1. Створіть файл composer.json
app/code/Magefan/BlogCustomField/composer.json
{ "name": "magefan/module-blog-custom-field", "description": "Implements Blog functionality on Magento 2 store", "require": { "magefan/module-blog" : ">=2.8.0" }, "type": "magento2-module", "version": "2.0.0", "license": [ "OSL-3.0", "AFL-3.0" ], "autoload": { "files": [ "registration.php" ], "psr-4": { "Magefan\\BlogCustomField\\": "" } }}
2. Створіть файл registration.php
app/code/Magefan/BlogCustomField/registration.php
<?php/*** Copyright © Magefan (support@magefan.com). All rights reserved.* See LICENSE.txt for license details (http://opensource.org/licenses/osl-3.0.php).*/ihor
- 1 хв читання
Якщо ви отримуєте повідомлення про помилку " Немає такої сутності .", " Немає такої сутності з " або " Немає такої сутності з customerId " у Magento 2, проблема зазвичай виникає під час спроби завантажити неіснуючий об'єкт через клас репозиторію Magento 2.
Щоб налагодити це , відкрийте наступний файл:
vendor/magento/framework/Exception/NoSuchEntityException.php
та на початку методу __construct тимчасово додайте код зворотного трасування налагодження:
foreach (debug_backtrace() as $_stack) { echo ($_stack["file"] ? $_stack["file"] : '') . ':' . ($_stack["line"] ? $_stack["line"] : '') . ' - ' . ($_stack["function"] ? $_stack["function"] : '');}exit();
приклад:
public function __construct(Phrase $phrase = null, \Exception $cause = null, $code = 0) {
foreach (debug_backtrace() as $_stack) { echo ($_stack["file"] ? $_stack["file"] : '') . ':' . ($_stack["line"] ? $_stack["line"] : '') . ' - ' . ($_stack["function"] ? $_stack["function"]ihor
- 1 хв читання
Хочемо поділитися з вами корисними на наш погляд шпаргалками.
Magento 2 Шпаргалка
Джерело: https://nublue.r.worldssl.net/blog/wp-content/uploads/2015/12/Wallpaper-1280px1.jpg
Пріорітет CSS селекторів
Джерело: http://www.standardista.com/wp-content/uploads/2012/01/specificity3.pdf
Git Шпаргалки
Джерело: https://zeroturnaround.com/wp-content/uploads/2016/02/Git-Cheat-Sheet-pdf-v2.png
Git Flow
Джерело: https://namethattech.files.wordpress.com/2014/11/git-flow-updated.png?w=604&h=782
- 2 хв читання
Ви коли-небудь замислювалися, наскільки легко перевірити якість власного коду, коду ваших колег або стороннього модуля, який ви хочете використовувати в проекті Magento?
Команда розробників Magento створила Magento Extension Quality Program Coding Standard (Magento EQP), який дозволяє перевірити відповідність коду стандарту, а також виявити такі недоліки:
- виконання SQL-запитів у циклі; - використання небезпечних функцій; - використання суперглобальних змінних; - надмірна складність коду; - невиправдане завантаження колекцій.
Встановлення
Ви можете встановити... Magento EQP через Composer, виконавши цю команду CLI:
git clone https://github.com/magento/magento-coding-standard.gitcd magento-coding-standardcomposer install
Якщо у вас немає composer, ви можете... завантажити його тут.
Перевірка
Щоб перевірити код (який знаходиться, наприклад, у папці /шлях/до/вашого/розширення ), перейдіть до папки Magento EQP :
cd /path/to/magento-coding-standard
та виконайте таку команду:
vendor/bin/phpcsihor
- 1 хв читання
Під час оновлення Magento 2, або перемикання гілок git у вашому середовищі розробки, іноді може з'являтися помилка:
The following modules are outdated: Vendor_Module schema: current version - x.x.x, required version - z.z.z
Щоб вирішити цю проблему, виконайте такі дії:
1. Спробуйте отримати найновіший код розширення. Виконайте команду CLI в кореневому каталозі Magento:
composer install
Якщо у вас виникли проблеми з виконанням цієї команди, просто пропустіть її та перейдіть до кроку 2.
2. Спробуйте оновити свою базу даних. Виконайте команду CLI:
php bin/magento setup:upgrade
3. Якщо кроки 1 та 2 не допомогли, перейдіть до своєї бази даних та виконайте цей SQL-запит (не забудьте змінити виділений жирним шрифтом текст):
UPDATE `table_prfix_setup_module` SET schema_version="z.z.z", data_version="z.z.z" WHERE module="Vendor_Module";
"table_prfix_" можна знайти в app/etc/env.php, зверніть увагу, що він може бути порожнім.
- 1 хв читання
Якщо ви використовуєте Magento 2.2.x і отримуєте наступну помилку:
1 exception(s):Exception #0 (Magento\Framework\Config\Dom\ValidationException): Element 'block', attribute 'class': [facet 'pattern'] The value '\Magento\Framework\View\Element\Text\ListText' is not accepted by the pattern '[A-Z][_a-zA-Z\d]*(\\[A-Z][_a-zA-Z\d]*)*'.Line: 1187
Element 'block', attribute 'class': '\Magento\Framework\View\Element\Text\ListText' is not a valid value of the atomic type 'blockClassType'.Line: 1187
Будь ласка, знайдіть у всіх файлах макету * .xml рядок
class="\
та замініть його
class="
(Видалити слеш з початку значення класу атрибуту)
Якщо ви отримали цю проблему на сторінці публікації блогу Magefan, зробіть наступне:
1. Оновіть розширення блогу мінімум до версії v2.6.22. Перевірте файл
app/design/frontend/ThemeVendor/themename/Magefan_Blog/layout/blog_post_view.xml
на наявність class="\, який описаний вище, та внесіть необхідні зміни.
- 2 хв читання
Уявіть, що ви готуєте пасту та сідаєте пограти в якусь гру. Ви слухаєте одним вухом, чи не википить «страва». У цьому випадку ви спостерігач. Коли паста починає википати — спрацьовує подія «pasta_began_to_boil_away», яка змушує вас (спостерігача) поспішити на кухню (виконати дію, алгоритм).
У Magento 2, як і в реальному житті, є спостерігачі та події, які реалізовані на основі шаблону « Публікація-підписка ». Ми вже описали , що дозволяє розширювати та змінювати функціональність магазину. Давайте подивимося, як це можна зробити за допомогою подій та спостерігачів у Magento 2.
Події
Події запускаються модулями Magento 2, коли дія відбулася або має відбутися. Magento має багато власних подій, а також дозволяє викликати власну подію.
Використовуйте метод dispatch класу \Magento\Framework\Event\ Manager для виклику події.
Наприклад:
namespace MyCompany\MyModule;class MyClass{
/** * @var EventManager */ private $eventManager;
public function __construct(ihor
- 1 хв читання
Для того, щоб мати можливість швидко видалити відруальні хости (домени) на базі розмірів Linux+Apache+MySql+PHP, встановіть Сценарій керування віртуальним хостом.
Відкрийте CLI (командний рядок, термінал). Виконайте команди:
cd /usr/local/bin/sudo wget https://raw.githubusercontent.com/RoverWire/virtualhost/master/virtualhost.shsudo chmod +x virtualhost.shsudo ln -s virtualhost.sh virtualhost
Тепер вам доступна команда virtualhost:
virtualhost [create | delete] [domain] [optional host_dir]
Щоб додати новий віртуальний хост, виконайте:
virtualhost create mydomain.com
Щоб видалити віртуальний хост, виконайте:
virtualhost delete mydomain.com
- 2 хв читання
Часто потрібно змінювати логіку коду JavaScript, розташовану у файлі .js. Найпростіший спосіб – перезаписати js-файл за допомогою теми. Ви можете дізнатися, як перезаписати файли перегляду, у статті про . Це швидкий, але не елегантний спосіб.
Щоб змінити один або кілька методів js-файлу, використовуйте міксини, доступні в RequireJS.
Щоб розширити цей файл:
app/code/VendorName/ModuleName/view/%area%/web/js/folder1/folder2/somefile.js
за допомогою наступного коду:
define( [ 'jquery', 'underscore', 'ko', 'uiComponent', 'uiRegistry', ], function ( $, _, ko, Component, registry, ) { 'use strict';
return Component.extend({ // ... method1: function() { /* some code */ }, method2: function() { /* some code */ } // ... });
});
%area% – область, де розширюється файл, наприклад: frontend, adminhtml, base.
Щоб перезаписати методihor
- 1 хв читання
Зазвичай ви отримуєте помилку bash permission denied під час запуску скрипта/файлу, який не має дозволів на виконання. Це одна з помилок . Все, що вам потрібно зробити, щоб виправити це, це змінити дозволи файлу та додати виконавчий.
Щоб виправити помилку bash permission denied (відмовлено в доступі до bash), виконайте такі кроки:
1. Відкрийте термінал (оболонку)
2. Перейдіть до папки зі скриптом
3. Виконайте команду CLI, щоб змінити налаштування дозволів файлу:
chmod +x path_to_file/file_name
Наприклад, якщо ви виконуєте :
bin/magento ...
і отримуєте помилку:
bash: bin/magento: Permission denied
Вам потрібно додати дозвіл на виконання ( x ) до файлу bin/magento.
Для цього виконайте команду CLI:
chmod +x bin/magento
У випадку Magento 2 ви також можете використовувати наступну команду, щоб уникнути проблеми (php перед bin/magento):
php bin/magento ...
Ще одна проблема, з якою ви можете зіткнутися під час виконання команд bin/magento , як-от наведені нижче, – це збій веб-сайту під часihor
- 1 хв читання
Усі PHP-програмісти знайомі з суперглобальними змінними, такими як $_GET, $_REQUEST, $_POST , але їх пряме використання заборонено згідно зі стандартами коду Magento2. Тому не використовуйте їх у своїх проектах Magento 2, особливо якщо ви хочете пройти технічний огляд коду на Magento Marketplace.
Отже, які методи слід використовувати?
Щоб отримати дані із запиту, використовуйте такі методи: getParam ($key, $default = null); getParams(); getPostParam ($key, $default = null); getPost(); класу \Magento\Framework\App\RequestInterface , наприклад:
protected $request;public function __construct( \Magento\Framework\App\RequestInterface $request, ....//інші параметри вашого класу) { $this->request = $request; ...//інший код конструктора}public function example() { // $data = $_REQUEST; $data = $this->request->getParams(); // $id = isset($_REQUEST['id']) ? $_REQUEST['id'] : null; $id = $this->request->getParam('id'); // $name = isset($_REQUEST['name'])ihor
- 1 хв читання
Хочемо поділитися з вами записом двох виступів із зустрічей Magento 2 DevTalks. У першому Андрій Коносов розповідає про ТОП-10 вразливих веб-додатків за версією OWASP та як із ними боротися.
У другому Станіслав Лопухов переказує доповідь від Джеймса Тіткамба та ще раз «пробігається» по найбільш розширених помилках, які призводять до проблеми з безпекою веб-додатків.