Fi1osof
С нами с 05 мая 2014; Место в рейтинге пользователей: #102 часа назад
Полностью согласен с недостатками реактивных фреймворков, описанных в заметке, думаю 100мс на инициализацию бекенда это очень много — что-то не так с ...
Плюсы и минусы Vue и gtsAPI 3
6 часов назад
Правильный вариант из текущей документации такой:
{set $condition = 1}
{switch $condition}
{case 0, 1, 2}
сработае...
Конструкция switch case без break в Fenom 6
Вчера в 13:55
ну тогда groupby и having
+ подгрузка не родных пакетов
есть?
еще я правильно понимаю что фильтрация и сортировка по умолчанию по всем полям?
...
Кейс gtsAPI. CRUD пользователей на фронте 1
Вчера в 13:39
Моя кофейная гуща говорит о том, что это код html и там есть смайлики, а кодировка бд не utf8mb4.
Modx Revo режет код HTML 2
23 ноября 2024, 11:51
Отличное дополнение, спасибо!
Подскажите, как организовать файл если стоит msOptionsPrice2 привязан к опции size там может быть много позиций с разн...
[YandexMarket2] интеграция с msOptionsPrice2 1
23 ноября 2024, 00:42
Еще снова вернулась проблемка, после выбора способа доставки почтой РФ — появляется стоимость доставки, но она «прилипает» и не исчезает после переклю...
Расчет стоимости доставки msRussianPost 11
22 ноября 2024, 21:57
Лучше деинсталировать и установить новую версию. Там полностью переписан JS.
ms_CDEK2 пропал? 5
22 ноября 2024, 20:33
Фильтрация как правило предполагает точное совпадения значений, а тебе нужен поиск.
mFilter2 фильтрация tv 1
22 ноября 2024, 19:55
Все исправилось, после замены на 'parents' => $_modx->resource.id
Помогите найти ошибку в шаблоне, теги 13
22 ноября 2024, 09:31
А кто подскажет, как в форму Создания/Редактирования ресурса, через ms2Form, добавить возможность выбирать несоклько параметров в одном TV?
Ну то-ест...
Создание ресурсов из фронтенда сайта, зарегистрированными пользователями. 4
Этот провайдер сейчас из коробки не поддерживается (просто заморожен), но восстановить не долго, доработаем.
Повторюсь, гарантии на доставку смсок по таким каналам нет никакой. Нужны белые каналы.
UPD: Заработала епочта. Вы немного слукавили со стоимостью. Она зависит от суммы пополнения баланса. Вы готовы за раз пополнить на 75 000 рублей, чтобы по 25 копеек смски слать? Не думаю. А на небольших суммах стоимость не сильно отличается.
Размер платежа, руб. Тариф, смс/руб.
от 1 до 999 0,51
от 1 000 0,48
от 2 000 0,43
UPD 2: Vlas, регистрация вчера ради одного коммента. Не рекламы ли ради?
Белые смс-ки на летсадс стоят 1.70. Это средняя по рынку стоимость.
Давай по порядку.
Во-первых, у тебя там всего три строчки на «создание кеша».
То есть простой запрос на УРЛ документа (кстати, об этом еще чуть ниже будет сказано).
У меня же плагин 200+ строк кода. Для того, чтобы сгенерировать кеш документа, я не шлю какие-то GET-запросы на внешние ресурсы, а именно гененерирую кеш на уровне выполнения самого скрипта. И там поверь, очень много тонкостей.
У тебя возникает вопрос нафига вообще так все усложнять? Почему не слать простой запрос? Я отвечу. Во-первых, задача ставилась не только генерировать кеш текущего редактируемого документа, но и кеш остальных документов тоже. Но ты, видимо, этого в статье не увидел, «дежавю» ослепило тебя. Вот смотри, что происходит при сохранении документа после полного сброса кена при включенной настройке генерации кеша всех документов (или настройке регенерации при полном сбросе кеша):
После чего даже все другие документы доступны сразу из кеша:
Ткни пальцем, где твой компонент умеет генерировать кеш остальных документов?
Кстати, тебе на заметку: при вызове обновления документов через процессоры напрямую, твой плагин не генерит кеш документа, потому что ты проверяешь глобальную $_POST['createCache'], а не $resource->get('createCache'). Не знал, что обновляемым объектам все передаваемые в процессор параметры присваиваются? Просто в БД не пишется лишнего.
Во-вторых, слышал про мультидоменность и мультиконтекстность? Давай посмотрим, что происходит при сохранении документов с твоим великим плагином?
Ой, 404-ая. А при заходе на документ по реальной ссылке во фронте, получаем его не из кеша.
А с моим плагином как? А с моим все хорошо. Он корректно определил контекст и сформировал корректный запрос.
Так что конечно можешь продолжать бесплатно свое раздавать. Оно же работает кое-как. Это нормально. А когда сделаешь, чтобы работало как у меня, тогда посмотрим насколько оно у тебя будет бесплатное, и не похожее на то, как у меня сделано.
И еще: если вдруг ты доработаешь свое «творение», и оно будет «генерировать» кеш всех документов, как именно ты это будешь делать? Так же слать GET-запросы? То есть на сайте 100 документов, 10 раз отредактировал страницу, ушло 10 раз по 100 запросов на сайт? Мало того, что это 1000 инициализаций MODX-а, так это еще и 1000 записей сессий в БД. А будет 10 человек работать, по 100 сохранений в день? 10*100*100 = 100 000 записей в БД за день? Ну-ну…
P.S. И не думай, что я «идею» подсмотрел у тебя. Поверь на слово, это не так. Я далеко не все твои топики читаю.
Добавляет новый пункт контекстного меню joxi.ru/Y2LjLVES9wy54r
Минус в том, что срабатывает только когда элементы подгружаются. Если в момент навешивания события элементы уже есть, то они будут без допэлемента. Но если вовремя вклиниться, то ОК будет.
Конечно получать по айдишнику не круто, лучше через менеджер компонентов брать или типа того (есть, к примеру, поиск по типу компонентов). Это так, набросок.
А вообще, еще лучше слать PR, функционал нужный и должен быть в ядре.
Сообщение произвольное, можно даже в кириллице. Но в кириллице одно сообщение — 70 символов, в латинице 140.
Я пользуюсь подобным: modx.pro/help/10524/#comment-71823
И как было заявлено в описании компонента, с нашей стороны помощь в настройке. Так что если не справитесь самостоятельно, поможем.
Если примут, то можно будет не только разрешать авторизацию без пароля (если возвращать true), но и можно будет выбрасывать собственные ошибки. Так будет гораздо гораздее.
Как раз этого и хотел не допустить, и это и решает данный PR. Его неидеальность только в том, что придется в нем в случае чего все равно проверять пароль, если надо проверить пароль (так как сейчас проверка пароля идет уже за пределами вызова этого события), но это не страшно. Теперь, если вы считаете, что все проверки пройдены, но не надо позволить пользователю авторизоваться, можно будет просто вернуть сообщение ошибки (не true и не false).
Хотя конечно, если где-то что подешевле нароется, будет замечательно.
Но плюс к слову, аргументирую.
Вот смотрите, процессор обновления документа расширяет базовый процессор modObjectUpdateProcessor. В этом процессоре есть метод fireBeforeSaveEvent(). Если у текущего процессора есть свойство $this->beforeSaveEvent, то на это событие вызывается плагин. В процессоре обновления документа resource/update это свойство есть, и когда процессор отрабатывается, выполняется и плагин. И в плагине можно вернуть сообщение об ошибке. И на это в базовом процессоре прописан корректный обработчик. Обратите внимание, что в этом обработчике прописано присвоение возвращаемой переменной $preventSave. И внимательно посмотрите на эту конструкцию:
Если $preventSave не пустое, то возвращается ошибка. Вот это правильная работа плагина. Создайте плагин на событие OnBeforeDocFormSave и пропишите $modx->event->_output = «false»; и попробуйте сохранить документ. Что получите? Ошибку.
Вас смущает 'false'? Так вот, это не неверное значение, как вы выразились, а произвольное строчное значение, то есть сообщение. И это сообщение может быть более непрограммиступонятное, и даже можно подсвечивать произвольные поля.
Вот это корректная работа плагина.
А что у нас в security/login прописано? Тупо возврат логического false. Из-за чего корректной обработки не происходит.
Вы просто выполняете дополнительные действия, никак не влияя на ход выполнения процессора. А вы попробуйте в этом своем плагине вернуть ошибку пользователю и прервать его авторизацию.
У нас с вами разные понятия «как надо». Сделаете вы $modx->event->_output = true; или не сделаете ничего, результат не поменяется в принципе. А вы сделайте так, чтобы поменялся.
А вы поищите хорошенько, может что-то подобное найдете.