Наверх

Блог RSS

Сортировка: По дате ↓ По просмотрам

Из-за чего возникает ошибка Could not load config

16 августа 2023, 13:24

Иногда разработчики сталкиваются с ошибкой Could not load config, которая отображается в окне alert на странице. Эту ошибку выводит JavaScript пакета pdoTools при использовании pdoPage (везде, где есть пагинация).

Этот компонент работает через Ajax, и для того, чтобы на каждый Ajax-запрос система могла ответить, она должна знать набор параметров сниппета (tpl, parents и прочее). Но так как запрос приходит в виде Ajax, то сам шаблон страницы уже не парсится. Как узнать параметры? Эти параметры сниппет сохраняет в $_SESSION, а уже JavaScript, который ловит аякс-запрос, оттуда эти параметры «вытаскивает».

Вот could not load config означает, что action.php не нашёл параметры в сессии. Такое бывает, если сессия очищается, если меняется юзер, ну или что-то еще.

Так чт, если сделать в админке «Завершить все сеансы», то юзеры, у которых открыта страница фильтров или списка статей/товаров, будут видеть эту ошибку, пока не перезагрузят страницу.

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

Читать дальше

Создание API для авторизации пользователей в приложениях

28 февраля 2023, 15:25

Иногда при создании приложений для Android и iPhone, а так же для использования в каких-то сторонних сервисах, может потребоваться сделать на сайте простенькое API для разграничения доступа.

Обычно схема этого API такая:

  • Пользователь вводит в приложении логин и пароль
  • Приложение делает запрос к сайту, передавая эти данные
  • Сайт проверяет, действительно ли есть пользователь с таким логином и правильно ли указан пароль
  • Если всё ок — сайт выдаёт в ответ токен
  • Приложение сохраняет этот токен у себя (на телефоне пользователя)
  • И при любых обращениях к сайту использует этот токен
  • Сайт получает токен и выдаёт контент, который доступен именно для этого пользователя

Читать дальше

Сниппет вывода TV параметров при условии их наличия

21 декабря 2022, 08:27

пригодился для вывода списка параметров товара из TV
наименование TV берется из description
UPD: после долгих раздумий добавил в фильтр id категории

Читать дальше

Решение проблемы "Добавление комментариев закрыто. MODx Revolution, компонент quip"

21 декабря 2022, 08:26

Сообщение от модуля Quip комментариев:
Добавление комментариев закрыто. MODx Revolution, компонент quip

Как решить проблему —
Зайти в Сниппет: QuipReply(), вкладка параметры, разрешить редактирование, находим closeAfter поле, и вместо 14, пишем 99999999999. Сохранить набор параметров, Сохранить. Очистить кэш.

Повторяем толе самое для Сниппет: Quip ().
Теперь форма ввода комментариев не пропадет спустя 14 дней.

Источник: modx.pro/solutions/23099

Читать дальше

Как сделать мультикатегории на MODX с TV-шкой

21 декабря 2022, 08:25

Всем привет.
Недавно глубоко озадачился этим решением и в результате которого нехитрым (почти) способом можно сделать мультикатегории.
Подходит данное решение для сайтов у которых, наверное не более 5..10к товаров. На больших, думаю, будет тормозить, (не проверял) так что обратная связь приветствуется.

Читать дальше

Remove Duplicates MODX

21 декабря 2022, 08:24

Может кому пригодится.)
Компонент ищет дубликаты ресурсов, в разных контекстах!
PS^ версия сыровата, JS накидал на коленке (эффекты и тп пока отсутствуют).

Есть два варианта обработки ресурсов:
  • Перемещение в корзину
  • Создание нового алиаса с прфиксом ID ресурса.

Читать дальше

Возвращаем привычный вид страницы после установки пакета SEO Suite

21 декабря 2022, 08:24

Разработчик sterc, выпустивший два известных модуля для СЕО-шников: SEO Tab и SEO Pro — сделал новый пакет.
Называется он: SEO Suite. Данный пакет объединил в себе два выше указанных пакета + был полностью переписан весь код и добавлены новые плюшки.
Всё бы ничего, но как по мне он очень уж сильно меняет внешний вид страницы в админке. Стало неудобно =(
Поэтому не долго думая — вернул прежний вид, но при этом оставив новый функционал.


Читать дальше

[СДЕЛАЙ САМ] Ajax Регистрация, Авторизация, Сброс пароля, Редактирование профиля

21 декабря 2022, 08:23

Задача: сделать ajax регистрацию, авторизацию, сброс пароля и редактирование пользователя, используя минимум сторонних компонентов.
Почему минимум? Ну часть из тех компонентов, что реализуют подобный функционал, платная (Office, ajaxLogin) и бюджеты есть не всегда на них есть. Некоторые (ajaxLogin) в данный момент не доступны из-за смерти автора. Общий недостаток большинства компонентов это то, что они загружают дополнительные скрипты и стили, что порой приводит к необходимости дополнительно оптимизировать сайт. Компонент Login не работает по ajax. Однако это можно обойти , но runSnippet запустит много всего и не факт что это всё нужно в данный момент. Поэтому предлагаю своё решение.
Нам понадобится:
1. AjaxForm;
2. FormIt;
3. Этот репозиторий.

Порядок действий:
1. Скопировать core/elements/snippets/ajaxidentification.class.php.
2. Создать в админке сниппеты
2.1 AjaxIdentification (код лежит в core/elements/snippets/hooks/AjaxIdentification.php);
2.2 userExists (код лежит в core/elements/snippets/validators/userExists.php);
2.3 userNotExists (код лежит в core/elements/snippets/validators/userNotExists.php;
2.4 ActivateUser (код лежит в core/elements/snippets/ActivateUser.php) // этот можно вызывать прям из файла если хотите.
3. В вывоз AjaxForm в параметр hooks первым значением добавить AjaxIdentification, сюда же добавить параметр method ( register — регистрация, login — авторизация, forgot — восстановление доступа, update — обновление данных).
4. В js на событие af_complete добавить редирект на нужные страницы. Ссылки можно получать
из мета-тегов с именами типа loginSuccessUrl.
Всё. Далее немного потока сознания и пояснений.

Читать дальше

Билдер SQL запросов для modx, minishop2 и TV

21 декабря 2022, 08:22

Всем привет, просили меня недавно сделать выгрузку со старого сайта на modx с более чем 200к товаров, т.к. я уже давно не работал с modx, абсолютно забыв методы API, а также помня, насколько медленно и ресурсозатратно оно работает было решено писать SQL напрямую и все бы ничего, пока я не увидел структуру tv полей. Руками писать SQL с выборкой необходимых TV было адским адом, и было решено за часик накидать мини билдер SQL запросов

Получился примерно такой в использовании билдер, по мне покрывает 100% моих задач в формировании SQL для выгрузок из modx & ms2:
$builder = new SimpleBuilder();
$builder->addResourceFields('id', 'pagetitle', 'longtitle')
    ->addMs2Fields('article', 'price')
    ->addTvFields('price_opt', 'product_time', 'valute', 'remains', 'product_tax')
    ->where('deleted', '=', false)
    ->where('published', '=', true)
    ->where('class_key', '=', 'msProduct')
    ->where('remains', '!=', 0)
    ->whereNotNull('remains')
    ->whereIn('id', [18559, 18560])
    ->limit(1)
    ->offset(1)
;
$sql = $builder->sql();

$products = $modx->query($sql)->fetchAll(PDO::FETCH_ASSOC);
Под катом код и результат SQL который формирует билдер
Если хочется сразу к коду

Читать дальше

AjaxForm без jQuery

21 декабря 2022, 08:21

Приветствую тебя дорогой читатель. Давно хотел это сделать и наконец-то сделал — теперь для работы AjaxForm не нужен jQuery. Для этого нужно
1. Перейти по ссылке.
2. Заменить содержимое папок core/components/ajaxform и assets/componentns/ajaxform/ данными из репозитория.
3. Заменить код сниппета AjaxForm кодом из репозитория.
Если будут ошибки пишите в комментарии, а под катом немного о нюансах.

Читать дальше

Авторизация

через сервис Loginza:


Шаблоны MODX

1 2 Дальше »

Объектная
модель
MODX