Вячеслав Варов

Вячеслав Варов

С нами с 06 сентября 2016; Место в рейтинге пользователей: #232

Как использовать функции PHP в плагинах MODX?

Не понимаю почему добавляя функцию в плагин сайт перестает работать, вот код плагина
<?php
/** Функция обрабатывает размер файла в байтах в человекочитаемый 
    формат добавляя к размеру файла размерность, например 128 Mb
*/
function human_filesize($bytes, $decimals = 2) {
  $sz = ['B','Kb','Mb','Gb','Tb','Pb'];
  $factor = floor((strlen($bytes) - 1) / 3);
  return sprintf("%.{$decimals}f", $bytes / pow(1024, $factor)) . ' ' .@$sz[$factor];
}

/** @var modX $modx */
switch ($modx->event->name) {
    case 'pdoToolsOnFenomInit':
        /** @var Fenom $fenom
            Мы получаем переменную $fenom при его первой инициализации и можем вызывать его методы. 
            Например, добавим модификатор вывода имени домена сайта из произвольной ссылки.
        */
        $fenom->addModifier('getFileInfo', function ($input) {
          if (file_exists($input)) {
            return strtoupper(pathinfo($input, PATHINFO_EXTENSION)) . ', ' . human_filesize(filesize($input), 0);
          }
        });
        break;
}
если заккоментировать функцию human_filesize, все работает, если оставить — сайт вылетает в ошибку fenom, может есть какие-то правила добавления функций?
Вячеслав Варов
23 января 2024, 10:53
modx.pro
272
0

Публикация изменений на сайт только для менеджера/админа

Подскажите можно ли реализовать следующий функционал:
Все изменения на сайте публикуются и видимы только для авторизованных в админ панели пользователей, и только после проверки можно опубликовать это все на основной сайт?

Это нужно чтобы внесенные изменения не улетели сразу на паблик, чтобы их можно было предварительно проверить как это выглядит на сайте и затем только сделать общедоступными

Есть мысли сделать это через babel и два контекста, первый поддомен test и контекст test_web второй обычный домен и контекст web, однако не хотелось бы по два раза вносить изменения
Вячеслав Варов
12 января 2024, 20:22
modx.pro
298
0

Как в MIGX сделать поле с выбором конфигурации

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

И второй вопрос, как сделать вывод картинки, в меню заполнения полей, я хочу чтобы после выбора конфигурации выводилось превью в виде картинки и следом шли поля, какой тип поля для этого нужно указать? Я думал о поле image с дефолтным значением, но может есть более эстетичные варианты?

Все это я хочу сделать для более удобного наполнения блоками страницы. Например для каждого шаблона будет migx поле, внутри которого будет возможность выбора, какой блок ты хочешь добавить, и соответственно для каждого блока свой набор полей и превью.
Вячеслав Варов
25 декабря 2023, 14:16
modx.pro
1
245
0

Возможно ли в модкс автоматически в админке считать стоимость

Вопрос такой, возможно ли считать стоимость товара указывая два параметра, стран цена и скидка на товар, поле цена должно заполняться автоматически по формуле Старая цена — скидка в процентах
Вячеслав Варов
16 ноября 2022, 08:32
modx.pro
389
0

Сниппет выбивает сайт в 500 ошибку если вызывается только один раз

Столкнулся с непонятной ошибкой, а именно:
Есть сниппет который сортирует данные полученные из msproducts
<?php
$data = json_decode($data, true);

function transpose($array) {
    array_unshift($array, null);
    return call_user_func_array('array_map', $array);
}
$result = call_user_func_array('array_merge', transpose(array_chunk($data , 6)));
return json_encode($result);
Данные я в него отправляю таким образом:
{set $res_array = '!msProducts' | snippet : [
    'parents' => $id,
    'limit' => 0,
    'return' => 'json'
]}
    {set $colors_full_array = '!sort3' | snippet : [
        'data' => $res_array
    ] | fromJSON}
И проблема в том что сайт прогружается до начала этого кода и в консоли появляется ошибка 500, в логах все чисто как на сервере так и в модкс

Если я добавляю просто рядом второй раз аналогичный вызов, то первый отрабатывает нормально — на втором вылетает 500

С чем может быть связано?
Вячеслав Варов
15 ноября 2022, 10:53
modx.pro
323
0

Не открываются страницы 4 уровня 502 - Bad Gateway .

Доброго дня!
На сайте перестали открываться страницы 4 уровня:
a.auto-autoservice.ru/models/audi-a3/remont-dizelnogo-dvigatelya/kapitalnyij-remont-dizelnyix-dvigatelej/
Выбивает ошибку 502, в чем может быть причина?

При этом
a.auto-autoservice.ru/models/audi-a3/remont-dizelnogo-dvigatelya/ — открывается отлично
Вячеслав Варов
30 октября 2022, 10:31
modx.pro
204
0

Авторизация на сайте по ссылке на email

Добрый день!

Подскажите пожалуйста, возможно ли через дополнение Office реализовать вход в личный кабинет через email таким образом:
1) клиент вводит email
2) на email приходит ссылка для регистрации/авторизации
3) переходим по ссылке — залогинились/зарегистрировались

Получается минуем ввод пароля, заменяя его ссылкой на почту.

Пример функционала уже реализованного на MODX3:
docs.modx.com/3.x/ru/building-sites/client-proofing/security/passwordless-login
Вячеслав Варов
26 октября 2022, 11:54
modx.pro
290
0

Не пойму почему не добавляются товары в корзину minishop2

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

при добавлении в корзину, приходит успешный ответ от сервера, что количество товара в корзине изменено — перехожувкорзину — пусто, в чем может быть причина?

сайт — mebel.varmedia.ru/
Вячеслав Варов
23 октября 2022, 11:55
modx.pro
466
0

Дополнительные свойства товара minishop2

Доброго дня!
Пытаюсь добавить два дополнительных свойства товара типа чекбокс
По инструкции создал плагин товара, получилось вывести поля в карточку товара в админке, все работает. Теперь пытаюсь чтобы поле вывелось как стандартные поля minishop2 «новый, особый, популярный», но что-то ничего не выводится, не пойму почему, код msproductdata.js:

Вячеслав Варов
04 сентября 2022, 15:22
modx.pro
405
0

Работа в админке с MIGX с телефона

Столкнулся с проблемой, что поле MIGX нельзя отредактировать с мобильного телефона, так как там же нужно кликнуть по строке правой кнопкой мыши, чтобы выпало контекстное меню где можно нажать «редактировать».
С телефона (iPhone) не получается вообще никак вызвать это меню, отсюда вопрос, может кто сталкивался и можно вывести кнопку в колонку, например «редактировать» и ее нажатием открывалось окно редактирования строки?




UPD Сделал через конфигурацию migx, но может как-то можно проще через поле «Разметка колонок:» вписать?
Так как например у меня много полей и на каждое конфигурацию делать — такое себе:))



Хорошая инструкция по добавлению кнопок: https://lectoria.pro/read/migx-ekspress-rukovodstvo.html
Вячеслав Варов
28 августа 2022, 17:08
modx.pro
690
0