Size: a a a

2020 June 04

v

vladimir in OctoberCMS
Sergey
а у тебя какой то плагин на подходе что ли?)
да, пылится один, я его напильником еще дорабатываю пока жду)
источник

NK

Nikita Khaetsky in OctoberCMS
vladimir
а почему через события? Можно же сделать extended трейт и регистрировать расширения без событий?
А разница какая будет?)
источник

v

vladimir in OctoberCMS
Nikita Khaetsky
А разница какая будет?)
Прямая регистрация без необходимости ловить события через Event менеджера
источник

S

Sergey in OctoberCMS
Nikita Khaetsky
Выпустил небольшое обновление, которое добавляет возможность расширения блоков редактора сторонними плагинами.  Теперь с помощью прослушивания двух событий вы можете с легкостью добавить свой блок сделанный по документации editor.js.

+ Еще добавил 3 блока)

https://octobercms.com/plugin/reazzon-editor
кстати не планируешь добавить возможность редактирования с фронта?
источник

NK

Nikita Khaetsky in OctoberCMS
Sergey
кстати не планируешь добавить возможность редактирования с фронта?
Зачем плагину эта возможность? Открываешь сайт editor.js и просто добавляя один js файл на страницу рендеришь его)
источник

NK

Nikita Khaetsky in OctoberCMS
vladimir
Прямая регистрация без необходимости ловить события через Event менеджера
Всмысле ты имеешь ввиду в каждом плагине писать свою функцию registerSomething и в нем хранить все данные для расширения?
источник

v

vladimir in OctoberCMS
Нет, сделать аналогично как модели расширяются или контроллеры базовые. Возможность заэкстендить и расширить менеджера.
Либо сделать менеджера синглтоном и расширять через метод а-ля registerBlock в методе boot расширяющего плагина.

Просто чтобы пройти мимо event менеджера
источник

NK

Nikita Khaetsky in OctoberCMS
vladimir
Нет, сделать аналогично как модели расширяются или контроллеры базовые. Возможность заэкстендить и расширить менеджера.
Либо сделать менеджера синглтоном и расширять через метод а-ля registerBlock в методе boot расширяющего плагина.

Просто чтобы пройти мимо event менеджера
А чем плох Event менеджер?
источник

v

vladimir in OctoberCMS
Nikita Khaetsky
А чем плох Event менеджер?
Тем что он своего рода реализация паттерна observer. Он не для расширения возможностей других объектов нужен, а для слушания их состояния/изменения.
Тоесть один объект кидает событие, а эвент его обрабатывает. Например та же авторизация, действие авторизации рождает событие "auth.success" (успешная авторизация), на это действие мы хотим провести дополнительные действия, например зафиксировать в логе авторизацию и направить письмо пользователю об авторизации со сменой IP. За авторизацию отвечает плагин Users, а вот за фиксацию лога и отслеживание политики безопасности отвечает плагин Security.
Если мы разместим логику не в эвенте, мы сделаем эту логику частью плагина авторизации, но по факту за информацию отвечает не плагин авторизации, а сторонний, который не вмешивается в работу пользовательского плагина на этапе авторизации, а лишь слушает его состояние с целью выполнения собственного действия - "пользователь авторизовался, необходимо инициировать отправку уведлений и зафиксировать в журнале"

У тебя же в евентах расширение не поведения блоков, а расширение конфигурации по наличию этих самых блоков, что не совсем является предназначением паттерна обсервера, ведь для корректной регистрации блоков, а главное возможности например получить весь список не в форм виджете, тебе необходимо вызывать событие в конструкторе менеджера (А в твоем случае это используется для расширения базового конфига плагина, в одном лишь методе форм менеджера). Против прямого расширения к примеру той же конфигурации через фасад Config из boot своего плагина, аналогично как это делается с коннекшенами к БД, кешу.

\Config::set('reazzon.editor::toolSettings.newBlock', [
   'raw' => [
       'class' => 'RawTool'
   ],
]);
источник

v

vladimir in OctoberCMS
Ну это по крайней мере мое виденье самого паттерна обсервера )) я через него не рискую обычно менять менять состояние конфигурации.
Возможно это практика и оправдана. Для к примеру той же lazy инициализации конфига.
источник

NK

Nikita Khaetsky in OctoberCMS
vladimir
Тем что он своего рода реализация паттерна observer. Он не для расширения возможностей других объектов нужен, а для слушания их состояния/изменения.
Тоесть один объект кидает событие, а эвент его обрабатывает. Например та же авторизация, действие авторизации рождает событие "auth.success" (успешная авторизация), на это действие мы хотим провести дополнительные действия, например зафиксировать в логе авторизацию и направить письмо пользователю об авторизации со сменой IP. За авторизацию отвечает плагин Users, а вот за фиксацию лога и отслеживание политики безопасности отвечает плагин Security.
Если мы разместим логику не в эвенте, мы сделаем эту логику частью плагина авторизации, но по факту за информацию отвечает не плагин авторизации, а сторонний, который не вмешивается в работу пользовательского плагина на этапе авторизации, а лишь слушает его состояние с целью выполнения собственного действия - "пользователь авторизовался, необходимо инициировать отправку уведлений и зафиксировать в журнале"

У тебя же в евентах расширение не поведения блоков, а расширение конфигурации по наличию этих самых блоков, что не совсем является предназначением паттерна обсервера, ведь для корректной регистрации блоков, а главное возможности например получить весь список не в форм виджете, тебе необходимо вызывать событие в конструкторе менеджера (А в твоем случае это используется для расширения базового конфига плагина, в одном лишь методе форм менеджера). Против прямого расширения к примеру той же конфигурации через фасад Config из boot своего плагина, аналогично как это делается с коннекшенами к БД, кешу.

\Config::set('reazzon.editor::toolSettings.newBlock', [
   'raw' => [
       'class' => 'RawTool'
   ],
]);
Да, в принципе логично. Тоже об этом думал когда делал. Но я делал увидев похожее в одном из плагинов самих rainlab или responsiv. Не помню точно, помню что видел такое у них.

Думаю что здесь скорее логичнее переделать не на то что ты рекомендуешь "расширение аля модель" а на создание своего метода registerSomething в plugin.php и слушать все эти методы у плагинов на наличие новых блоков. Такое есть в примере StaticPages (добавление сниппетов)
источник

NK

Nikita Khaetsky in OctoberCMS
Я сначала подумал так, даже что-то накидал. Но потом подумал что возможность расширить Editor вне plugin.php было-бы удобнее, и переделал так.
источник

v

vladimir in OctoberCMS
Nikita Khaetsky
Да, в принципе логично. Тоже об этом думал когда делал. Но я делал увидев похожее в одном из плагинов самих rainlab или responsiv. Не помню точно, помню что видел такое у них.

Думаю что здесь скорее логичнее переделать не на то что ты рекомендуешь "расширение аля модель" а на создание своего метода registerSomething в plugin.php и слушать все эти методы у плагинов на наличие новых блоков. Такое есть в примере StaticPages (добавление сниппетов)
Как вариант, будет и красивее и меньше событий и эвентов в менеджере.
В любом случае, по крайней мере с добавлением блоков, это динамическое расширение конфига на данный момент.

Работает - да, но я изредка к своему коду написанному час назад очень критичен) Могу быть занудой в каком то смысле, все-таки понятие энтерпраза не отменяется.
источник

PB

Pavel Bozhok in OctoberCMS
Ребята привет, а было у кого-то такая фигня, загружаю картинку png 120кб прогоняю через плагин imageResize {{ item.image | media | resize(627, auto, {mode: crop}) }} получаю размер изображения 900кб, api TinyPNG отключен так как после  вся фото размыто
источник

ЭФ

Эраст Фандорин... in OctoberCMS
Pavel Bozhok
Ребята привет, а было у кого-то такая фигня, загружаю картинку png 120кб прогоняю через плагин imageResize {{ item.image | media | resize(627, auto, {mode: crop}) }} получаю размер изображения 900кб, api TinyPNG отключен так как после  вся фото размыто
quality пробовал прописывать?
источник

ЭФ

Эраст Фандорин... in OctoberCMS
Pavel Bozhok
Ребята привет, а было у кого-то такая фигня, загружаю картинку png 120кб прогоняю через плагин imageResize {{ item.image | media | resize(627, auto, {mode: crop}) }} получаю размер изображения 900кб, api TinyPNG отключен так как после  вся фото размыто
у меня с тини такой проблемы не было, странно
источник

O

OctoClub Notificatio... in OctoberCMS
Перенос данных из одной модели в другую

Допустим сложилась такая ситуация, и вам понадобилось скопировать некоторое количество записей из одной модели в другую, если это 1 запись, то можно и...

Разделы: Плагины, Backend, Инструкции.

==============

Перейти к осбуждению: https://octoclub.ru/d/218-перенос-данных-из-одной-модели-в-другую
источник

S

Sergey in OctoberCMS
чот криво разметка кода встала
источник

S

Sergey in OctoberCMS
источник

NK

Nikita Khaetsky in OctoberCMS
Sergey
чот криво разметка кода встала
Потому-что люди оборачивают код не через тройной апостроф, а через 1, говоря сайту что это не блок кода а строка
источник