Вопросы

Почему не работает кастомный контроллер office?

Добрый день!
Создал кастомный контроллер profilecustom.class.php в папке с контроллерами.
Скопировал метод Update и назвал UpdateCustom.
Скопировал profile/default.js и назвал custom.js, указал его в системной настройке.
В js указал action profilecustom/updatecustom.

При сохранении профиля в личном кабинете во вкладке Network вижу ответ
Could not find method "updatecustom" in controller "profilecustom"
Код контроллера:
if (!class_exists('officeProfileController')) {
    include 'profile.class.php';
}
/**
 * Class officeProfileCustomController
 */
class officeProfileCustomController extends officeProfileController
{

    /**
     * Updates profile of user
     *
     * @param array $data
     *
     * @return array|string
     */
    public function UpdateCustom($data = array())
    {...
Lori
06 марта 2024, 11:28
modx.pro
199
0

Minishop 4.3.0-pl источник файлов

Всем доброго времени суток.
Имеем на борту
Minishop 4.3.0-pl
MODX 2.8.5

При создании нового товара для этого товара в галерее задается источник файлов 1 Filesystem
В настройках магазина установлен источник файлов галереи но почему то игнорируя все настройки при создании нового товара задается именно этот источник файлов.
Такое случилось после переезда на выделенный сервер.
Возможно кто то знает причину и способ ее устранения.
Спасибо.
Maks
05 марта 2024, 07:23
modx.pro
187
0

какой-то конфликт с методом getTVValue и дополнением Gallery

на cайте использую плагины для подмены цены у товаров в зависимости от значения ТВ-поля (в котором размер скидки записан).
работало все нормально пока не поставил плагин Gallery и работать перестало.

и проблема оказалась в том, что когда я беру это ТВ-поле со скидкой в плагине, например

if ($modx->event->name == 'msOnBeforeAddToCart') {
        $promo = $product->getTVValue('promo');
        $price = $product->get('price');

        /*Дальше код*/
то возникает ошибка. т.е. плагин не срабатывает, при попытке добавить товар в корзину, всплывает ошибка

message: "/home/путь_на_хосте/public_html/test1/core/components/gallery/elements/tv/output/"
success: false
и я не могу понять и нагуглить, почему так происходит, может кто сталкивался?

ссылка для примера того, что происходит
alexandr.skyrda
04 марта 2024, 20:53
modx.pro
71
0

Localizator и videoGallery

Добрый день всем.
При попытке создать перевод на вкладке «Локализация» у ресурсов с TV типа videoGallery, выходит ошибка:
Fatal error: Uncaught Error: Call to a member function fromJSON() on null in /http/core/cache/mgr/smarty/e56913b5ca093d98857b8830fdac610c0ae6babe_0.file.tv.videoGallery.input.tpl.php:24


Кто нибудь смог подружить эти два компонента?
Lori
04 марта 2024, 12:17
modx.pro
194
0

Проблема с галереей

Добрый вечер!
Столкнулся с неожиданной проблемой. ModX 2.8.5, PHP 7.4
В карточке товара Minishop2 не появляется превьюшка, хотя во вкладке галерея фото загружено.
Если залить две или больше фотографии — не работает их сортировка (перетаскиваю. Админка пару секунд «думает» и все остается на своих местах.
После каждой такой попытки в логе появляется одна и та же ошибка:

[2024-03-02 18:30:08] (ERROR @ /home/c/.../public_html/core/xpdo/om/xpdoobject.class.php: 240) Error 42000 executing statement:
Array
(
[0] => 42000
[1] => 1064
[2] => You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ASC LIMIT 1' at line 1
)

В таблице modx_ms2_products в столбцах thumb и image у каждого товара прописано NULL.

Кто-нибудь сталкивался?
Олег
02 марта 2024, 18:39
modx.pro
222
0

Добавление товаров из списка товаров в корзину с указанием количества и удалением.

Нужна возможность добавлять товары в корзину из списка товаров, как с кнопки «добавить», так и через инпут количества и удалять также через инпут.
При клике по кнопке, в инпуте кол-ва нужно поставить 1, блоку товара дабавить класс active, при уменьшении товаров до 0 удалить класс active.
То-есть основным механизмом добавления должен быть инпут количества, кнопка будет спрятана при присвоении блоку класса active через стили, нужна она только чтобы в инпут вписать первый товар.
Задача срочная, за реальную помощь буду материально благодарен!
Скрин disk.yandex.ru/i/AnqJxU_nXiCjZw
Fred
29 февраля 2024, 19:36
modx.pro
637
0

mSync и скорость парсинга

Доброе время суток, камрады!

Столкнулся с такой проблемой: при любой конфигурации PHP или mSync нагрузка на сервер не вся, хотя я очень, очень старался. Из-за чего парсинг происходит медленно.

Хостинг beget, 2 CPU, 2 RAM, 30 GB SSD, 1 GB swap, Rocky Linux 9, MariaDB 10.5, PHP 7.4, NGINX.

Что мне такого прописать, чтобы выжать все соки из VPS? Сейчас ни оперативка, ни процессор толком не нагружаются.

Полей в настройках модуля включено буквально штук 5, остальные для выгрузки отключены.

Посоветуйте что-нибудь, вдруг сами сталкивались или настраивали.
Raimei
28 февраля 2024, 22:16
modx.pro
231
0

как правильно реализовать меню категорий товара из ссылками на фильтры по значению TV поля?

может не совсем понятно сформулирован вопрос, но на скрине суть должна стать ясной

вроде типичная задача для магазинов
где «виды», «место» и т.д. это тв-поля
для каждой категории вывести надо значения этих полей (если они содержатся в товарах категории)
а ссылка должна вести на категорию с выбранным фильтром
ну т.е. выбирают люстры со стилем Ампир и ссылка такого типа будет /lyustryi/?tv|ms_type-svet=Ампир
можете подсказать, с какой стороны подойти к этой задачи?
ведь кейс не редкий, а я в апи модх не силен, что бы это все «обкрутить» через снипеты
alexandr.skyrda
28 февраля 2024, 00:59
modx.pro
1 718
0

Как ускорить работу mSearch2?

На сайте почти 100 тыс товаров. Поиск mSearch2 по некоторым запросам может доходить до полминуты. Вызов стандартный:

{var $res = $_modx -> runSnippet('!msearch2', [
    'parents' => 2,
    'returnIds' => 1,
    'limit' => 'none'
])}

{$_modx -> runSnippet('!pdoPage', [
    'element' => 'msProducts'
    'parents' => 2,
    'resources' => $res,
    'where' => '{"Data.remains:>=": 1}',
    'tpl' => '@FILE chunks/tovarPreview4row.tpl',
    'includeThumbs' => '140x140',
    'limit' => 24,
    'showLog' => 1
])}


Как можно ускорить выборку?
Например чтобы искал только по полю pagetitle?
ViktorK
27 февраля 2024, 22:10
modx.pro
232
0

Почему путь к изображению не полный в msProducts?

Всех приветствую!
Пытаюсь вывести карточки товара с дополнительным полем изображения (system_imagePage) использую msProducts. Но путь к изображению формируется неполный.
{$_modx->runSnippet('msProducts', [
'showHidden' => 0,
'showUnpublished' => 1,
'parents' => 24,
'depth' => 0,
'scheme'=> 'abs',
'sortby' => '{«menuindex»:«ASC»}',
'tvPrefix'=>'',
'includeTVs' => 'catalog_heatingAreaLabel, system_imagePage',
'useWeblinkUrl' => '1',
'tpl' => '@FILE default/chunks/tpl/catalog/item/card.tpl'
])}

Чанк
<div class="col-12 col-md-6 col-xl-4">
  <div class="catalog-item">

      <div class="catalog-item__stickers">
        {if $new} <div class="catalog-item__sticker">Новинка</div> {/if}
        {if $popular} <div class="catalog-item__sticker">Хит</div> {/if}
        {if $favorite} <div class="catalog-item__sticker">Рекомендуем</div> {/if}
      </div>

    <div class="catalog-item__top">
      <div class="catalog-item__image">
        <img src="{$system_imagePage}" alt="{$pagetitle}">
      </div>
      <div class="catalog-item__title"><a class="link-primary" href="{$id | url}">{$pagetitle}</a></div>

      <div class="catalog-item__label">{$catalog_heatingAreaLabel}</div>

      <div class="catalog-item__characteristics">
        {$_modx->runSnippet('msProductOptions', [
          'product' => $id,
          'tpl' => '@FILE default/chunks/tpl/catalog/item/options.tpl',
          'onlyOptions' => 'thermalPower, dimensions, fuelСonsumption, MaximumLogLength, waterVolume, weightWithoutWater'
        ])}
      </div>

      <div class="catalog-item__price-wrapper">
        <span class="catalog-item__price">{$price} ₽</span>
        {if $old_price != 0}
          <span class="catalog-item__old-price">{$old_price} ₽</span>
        {/if}
      </div>
    </div>
    <div class="catalog-item__bottom">
      <form class="form-horizontal ms2_form" method="post">
        <input type="hidden" name="id" value="{$id}"/>
        <input type="hidden" name="count" id="product_price" class="form-control col-md-6" value="1"/>
        <button type="submit" class="btn btn--block btn--brand js-catalog-btn-buy" name="ms2_action"
                value="cart/add">
          Купить
        </button>
      </form>
      <a href="{$id | url}" class="mt-3 btn btn--block
     ">Подробнее</a>
    </div>
  </div>
</div>
Кирилл
27 февраля 2024, 07:31
modx.pro
220
0