Павел Гвоздь

Павел Гвоздь

С нами с 31 мая 2015; Место в рейтинге пользователей: #3

Накидайте интересных тем для статей

Ребята, привет!
У меня есть желание написать несколько полезных статей для вас. Давайте вместе поучаствуем в этом! Вы напишите темы, которые вас интересуют, а я выберу самые интересные из них и напишу статьи/инструкции/кейсы.


Важно:
— чтобы тематика касалась MODX, хоть каким-то боком,
— не начального, а хотя бы, среднего уровня, чтобы писать было не скучно,
— сразу излагайте вопрос/тему подробнее, чтобы мне не пришлось тратить время на уточняющие детали.

Жду отклика в комментариях!
Павел Гвоздь
10 сентября 2018, 11:04
4
805
+9

Защита дополнений в деталях



Приветствую. Эта заметка будет полезна скорее для уже состоявшихся авторов компонентов, но возможно начинающим тоже будет полезно изучить механизм и позволит стать будущими авторами дополнений, если ещё в раздумьях.

Не так давно некоторые дополнения на modstore.pro обзавелись защитой. Дополнения можно по прежнему устанавливать из репозитория, но если попробовать скопировать архив с пакетом на другой сайт, то установить ничего не получится. И это было сделано не спроста, так как наглости некоторых людей нет предела, пришлось предпринять меры.

Следом авторам платных дополнений разослали инструкцию о том, каким образом встроить подобную защиту в собственные дополнения. Стоит отметить, что с первого раза сделать по инструкции (несмотря на простоту) не получилось в силу особенностей применяемого варианта сборки пакета. Пришлось разбираться досконально и выяснять, как и что в MODX работает, чтобы сделать это “правильно” и надежно.

Прежде чем продолжить, стоит ознакомиться с специальным методом сборки пакетов – «Сборка transport-пакета без установки MODX». Инструкция написана в далеком 2015 году, однако описанный метод работает до сих пор. Отличие в том, что подход не требует установки MODX для сборки пакета, т.е. сборку запустить можно откуда угодно, имея только исходники пакета и xPDO.

Детали внутри.

Иван Климчук
30 апреля 2018, 22:41
15
5 270
+15

Изменяем форму заказа minishop2

За год работы с минишопом я понял одну вещь — никто не знает как просто и быстро кастомизировать стандартную форму заказов. Для меня это довольно частая задача, по этому соберу тут несколько приемов которыми сам пользуюсь:


Pavel Zarubin
22 апреля 2018, 02:16
70
2 124
+41

[miniShop2] - Перенос изображений в Selectel

В данном топике решается проблема переноса изображений с сайта на Selectel Cloud Storage.
Ситуация с которой пришлось столкнуться — магазин наполнялся и все было хорошо, в какой то момент решили перейти на облачное хранилище. По хорошему нужно было создать новый медиасорс и его привязаться к Selectel, а затем задать его по дефолту, но было сделано иначе. Просто MS2 Images настроили на Selectel и дальше приняли спокойно наполнять.
И вроде бы все нормально, но… что же со старыми файлами что лежат на хостинге? А да, с ними проблемка…
Под катом скрипт для переноса вот таких изображений в облако.
Володя
22 сентября 2017, 09:13
9
1 115
+7

Sendex и AjaxForm - подписка на рассылку ч/з ajax

Sendex, как учебный компонент, особо не развивается, но он довольно удобен и приятен в обращении изнутри сайта. В связи с чем регулярно его использую. Но вот «снаружи», на фронте, он не очень удобен. Очередная просьба от клиента «чтобы окошко появлялось, а страничка не перезагружалась», побудила переписать для себя сниппет так, чтобы потом пользовать его через ajaxform. Получилось три чанка, один сниппет и немного джаваскрипта.
mngatoff
26 августа 2017, 19:52
25
2 203
+8

Использование модификаторов Fenom в PHP

Заметка коротенькая, но может быть полезной.

Все знают, что мы можем добавлять собственные модификаторы Fenom на событие pdoToolsOnFenomInit. А как быть, если мы хотим потом использовать этот же модификатор не в чанках и шаблонах, а в своих PHP скриптах?

А очень просто:
$pdoTools = $modx->getService('pdoTools');

$string = 'Some very very long string';
if ($truncate = $pdoTools->getFenom()->getModifier('truncate')) {
	$string = $truncate($string, 10);
}

return $string;
Здесь мы получаем модификатор truncate и обрезаем строку до 10 символов, если она больше.
Василий Наумкин
20 августа 2017, 11:10
10
1 364
+10

Каталог на 5млн товаров с фильтрами

Коллеги, добрый день.

Прошу именно совета КАК реализовывать каталог на 5млн товаров с фильтрами в категориях. Сейчас на стадии выбора пути, по которому делать. Хотел бы услышать совет девелоперов, которые уже реализовывали нечто подобное. Это может быть и НЕ модх. Пхп+майскул.

Может быть уже есть готовые компоненты? Ведь задача типовая…

Задача:
  • 5млн товаров (женские и мужские вещи, аксессуары, обувь)
  • 250 категорий с уровнем вложенности 5
  • 8 фильтров для всех категорий (фильтры одинаковые):
    • Брэнд (множественный выбор)
    • Магазин (множественный выбор)
    • Диапазон цены (числа, от и до)
    • Сезон (множественный выбор)
    • Размер (множественный выбор)
    • Скидка (числа, от)
    • В наличии (чекбокс)
  • Находясь в категории в ней видны и фильтруются товары вложенных категорий
  • Каталог работает очень быстро
  • Во всех категориях фильтры одинаковые, хочется не отсечь возможность в будущем использовать разные фильтры для разных категорий
Михаил
07 августа 2017, 11:49
4
1 407
+1

Markdown - редактирования текст в формате markdown

Дополнение для редактирования текст в формате markdown на frontend c просмотром результата.



Андрей Степаненко
05 июля 2017, 14:07
4
1 431
+14

[localizator] Мультиязычность, СЕО, автоперевод...



Языковые версии \ сателиты без контекстов, с автоматическим переводом всех полей ресурса + сео, да еще и автоперевод лексиконов — это я уместил в названии localizator.
but1head
23 апреля 2017, 20:57
39
12 578
+32

Семантически правильныe Breadcrumbs на pdoCrumbs

Верстая очередной проект для замороченных на SEO клиентов, столкнулся с тем, что pdoCrumbs конечно хорош в своей программной логике, но приведенные в документации примеры не совсем верно построены с точки зрения SEO и архитектуры HTML.

Под катом сам код, мои заметки и несколько полезных комментариев.



Николай Савин
27 января 2017, 19:12
42
5 776
+20