Финансовая поддержка VPS, бесплатные дополнения и docs Донаты оплачивают сервер и двигают бесплатные дополнения MODX и документацию. Поддержать

Всего 126 118 комментариев

Дима Касаткин
Дима Касаткин
Пользуюсь похожей конструкцией, чтобы редактировать TV-шки с фронта. Отличный пример допиливания полезного функционала под проект, спасибо!

P.S. Поправь плиз отступы в форматировании кода во 3 и 4 блоках, а то я shift+tab чуть не нажал машинально, когда читал :)
Сергей
Сергей
ckeditor.js?v=1.4.6-pl:10528 Uncaught TypeError: Cannot read properties of undefined (reading 'build')
    at Object.build (ckeditor.js?v=1.4.6-pl:10528:76)
    at Object.build (ckeditor.js?v=1.4.6-pl:10528:76)
    at CKEDITOR.dialog.addPage (ckeditor.js?v=1.4.6-pl:10080:160)
    at new CKEDITOR.dialog (ckeditor.js?v=1.4.6-pl:9929:81)
    at a.openDialog (ckeditor.js?v=1.4.6-pl:10616:122)
    at a.<anonymous> (ckeditor.js?v=1.4.6-pl:10620:30)
    at e (ckeditor.js?v=1.4.6-pl:4488:33)
    at Array.y (ckeditor.js?v=1.4.6-pl:4493:105)
    at x (ckeditor.js?v=1.4.6-pl:4498:64)
    at ckeditor.js?v=1.4.6-pl:4511:41
Денис Усманов
Денис Усманов
И добавлю, что предлагаемый тобою вариант, полуавтоматический, т.е. после срабатывания придётся менять дату на следующий год. Мне нужно было сделать решение, которое как говорится «на века» и «без лишней возни») т.к. у заказчика сайтом управляет в основном HR отдел по вакансиям, и там точно разбираться с такими вещами не будут.
Денис Усманов
Денис Усманов
Привет! Да, можно вполне было пойти, через ресурсы, но мне нужно было решение в виде сниппета, который выводил бы по датам чанки с CSS/HTML/JS в разных местах… Поэтому, сниппет оказался на мой взгляд, самым верным решением.
DimoniXo
DimoniXo
Проблема всё чаще появляется, по причине того, что хостинги переходят на MySQL 8. Причина в том, что gallery использует слово «rank» в запросах а бд, а в новой версии MySQL это слово зарезервировано.
Решение:

В файле
core/components/gallery/processors/mgr/item/getlist.class.php

На строке 31 заменить
public $defaultSortField = 'rank';
на
public $defaultSortField = '`rank`';
На строке 66 заменить
$c->groupBy('rank');
на
$c->groupBy('`rank`');
Андрей Чаплыгин
Андрей Чаплыгин
Alexey, большое спасибо! То что нужно!

Немного дополню для интересующихся:

Если добавить в набор передаваемых параметров
'SOLUTIONTYPE' => 'Sole',
и включить в аккаунте PayPal оплату без авторизации (PayPal Account Optional), при редиректе на оплату в PayPal вы увидите ту же форму входа в аккаунт + появится дополнительная кнопка «Оплатить дебетовой\кредетовой катрой», при клике на которую вас всё равно попросят ввести email адрес, уже после чего дадут заполнить данные карты для оплаты.

Чтобы и этого избежать и упростить жизнь пользователю, впишите в тот же набор параметров ещё вот это
'LANDINGPAGE' => 'Billing',
С этим параметром, пользователь сразу будет отправлен на страницу, где останется только заполнить данные карты, без необходимости нажимать дополнительные кнопки и вводить email.

PS. На всякий случай скажу, что делаю это для клиента из США, поэтому добавил ещё и эту опцию
'LOCALECODE' => 'US',
Не уверен, что она необходима, учитывая что код US вроде как ставится по дефолту, но тем не менее, может кому будет полезно.

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

$msinshopnotify = $modx->getService('msinshopnotify', 'MsInShopNotify');
$tools = $msinshopnotify->getTools();
$tools->setInShop($productId);
Николай Артамонов
Николай Артамонов
Спасибо большое! Это был не кэш. Пока ждал ответа меня озарило. Оказалось, что плагин, который обновляет наличие еще реагирует на onDocFormSafe. То есть все, что правишь руками, при сохранении снова перезаписывается. Отсюда и значения ручные слетают.
Alexey
Alexey
Привет! Тут посмотри: stackoverflow.com/questions/7689640/paypal-express-checkout-pay-without-account

В класс оплаты на сайте в методе send в массив $params нужно добавить параметр 'SOLUTIONTYPE' => 'Sole', — disk.yandex.ru/i/f59-EKcIiGXNOQ

Плюс в настройках пейпала разрешить оплату без авторизации.

Должно помочь.
Дима Касаткин
Дима Касаткин
Дима Касаткин
Дима Касаткин
Привет! Спасибо за решение, сорри не могу плюсануть уже, время прошло, вовремя не заметил!

Я же правильно понимаю, что можно не делать одноразовый сниппет, а просто запустить его код через компонент Console или подобный?

И ещё есть вопрос по SEOSuite, пользуясь случаем. Они там решили вопрос с тем, что компонент создаёт большую секцию своих настроек в админке для каждого ресурса? Там эта секция была выше, чем секция с основным контентом (и соответственно с секцией TV-шек, если их системной настройкой `tvs_below_content` перенести тоже на первую вкладку в админке где страницы редактируешь) и из-за этого осложнялось редактирование контента на мой взгляд (SEO-настройки маячили и лишний раз мешались). Помню из-за этого даже кто-то ставил старые версии, SEOtab вроде… и ждали фикса, сообщив разрабам на github. Это пофикшено в свежих SEOsuite?
Станислав
Станислав
Добрый день. Тоже столкнулся с этой проблемой и решил ее так. С сайта ckeditor, в разделе плагины (addon) скачал плагин «justify»: ckeditor.com/cke4/addon/justify. Далее распаковал и и скопировал в /manager/assets/components/ckeditor/ckeditor/plugins (чтобы получилась там папка justify). Далее: Системные настройки, раздел ckeditor.extra_plugins, надо добавить justify. И все появится.
Андрей Чаплыгин
Андрей Чаплыгин
Допускаю что недостаточно хорошо разобрался с этим вопросом, поэтому сформулирую по проще.

Задача: по прежнему принимать оплату на свой аккаунт paypal, только чтобы у клиентов была возможность оплатить картой без необходимости входа в ЛК paypal.

На сколько понимаю эту возможность их система предоставляет, но могу ошибаться с методом интеграции, толи через Integrate PayPal Checkout, толи через API PayPal REST что больше похоже на правду. А может и через тот же NVP/SOAP это можно сделать например поменяв apiUrl…

В общем, буду рад любому вашему опыту.