Вячеслав Варов
С нами с 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, может есть какие-то правила добавления функций? Публикация изменений на сайт только для менеджера/админа
Подскажите можно ли реализовать следующий функционал:
Все изменения на сайте публикуются и видимы только для авторизованных в админ панели пользователей, и только после проверки можно опубликовать это все на основной сайт?
Это нужно чтобы внесенные изменения не улетели сразу на паблик, чтобы их можно было предварительно проверить как это выглядит на сайте и затем только сделать общедоступными
Есть мысли сделать это через babel и два контекста, первый поддомен test и контекст test_web второй обычный домен и контекст web, однако не хотелось бы по два раза вносить изменения
Все изменения на сайте публикуются и видимы только для авторизованных в админ панели пользователей, и только после проверки можно опубликовать это все на основной сайт?
Это нужно чтобы внесенные изменения не улетели сразу на паблик, чтобы их можно было предварительно проверить как это выглядит на сайте и затем только сделать общедоступными
Есть мысли сделать это через babel и два контекста, первый поддомен test и контекст test_web второй обычный домен и контекст web, однако не хотелось бы по два раза вносить изменения
Как в MIGX сделать поле с выбором конфигурации
Приветствую!
Подскажите пожалуйста как сделать в MIGX select поле с выбором конфигурации полей, например, я хочу в зависимости от выбора конфигурации выводить на заполнение тот или иной набор полей, видел где-то статью, не смог найти.
И второй вопрос, как сделать вывод картинки, в меню заполнения полей, я хочу чтобы после выбора конфигурации выводилось превью в виде картинки и следом шли поля, какой тип поля для этого нужно указать? Я думал о поле image с дефолтным значением, но может есть более эстетичные варианты?
Все это я хочу сделать для более удобного наполнения блоками страницы. Например для каждого шаблона будет migx поле, внутри которого будет возможность выбора, какой блок ты хочешь добавить, и соответственно для каждого блока свой набор полей и превью.
Подскажите пожалуйста как сделать в MIGX select поле с выбором конфигурации полей, например, я хочу в зависимости от выбора конфигурации выводить на заполнение тот или иной набор полей, видел где-то статью, не смог найти.
И второй вопрос, как сделать вывод картинки, в меню заполнения полей, я хочу чтобы после выбора конфигурации выводилось превью в виде картинки и следом шли поля, какой тип поля для этого нужно указать? Я думал о поле image с дефолтным значением, но может есть более эстетичные варианты?
Все это я хочу сделать для более удобного наполнения блоками страницы. Например для каждого шаблона будет migx поле, внутри которого будет возможность выбора, какой блок ты хочешь добавить, и соответственно для каждого блока свой набор полей и превью.
Возможно ли в модкс автоматически в админке считать стоимость
Вопрос такой, возможно ли считать стоимость товара указывая два параметра, стран цена и скидка на товар, поле цена должно заполняться автоматически по формуле Старая цена — скидка в процентах
Сниппет выбивает сайт в 500 ошибку если вызывается только один раз
Столкнулся с непонятной ошибкой, а именно:
Есть сниппет который сортирует данные полученные из msproducts
Если я добавляю просто рядом второй раз аналогичный вызов, то первый отрабатывает нормально — на втором вылетает 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
С чем может быть связано?
Не открываются страницы 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/ — открывается отлично
На сайте перестали открываться страницы 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/ — открывается отлично
Авторизация на сайте по ссылке на email
Добрый день!
Подскажите пожалуйста, возможно ли через дополнение Office реализовать вход в личный кабинет через email таким образом:
1) клиент вводит email
2) на email приходит ссылка для регистрации/авторизации
3) переходим по ссылке — залогинились/зарегистрировались
Получается минуем ввод пароля, заменяя его ссылкой на почту.
Пример функционала уже реализованного на MODX3:
docs.modx.com/3.x/ru/building-sites/client-proofing/security/passwordless-login
Подскажите пожалуйста, возможно ли через дополнение Office реализовать вход в личный кабинет через email таким образом:
1) клиент вводит email
2) на email приходит ссылка для регистрации/авторизации
3) переходим по ссылке — залогинились/зарегистрировались
Получается минуем ввод пароля, заменяя его ссылкой на почту.
Пример функционала уже реализованного на MODX3:
docs.modx.com/3.x/ru/building-sites/client-proofing/security/passwordless-login
Не пойму почему не добавляются товары в корзину minishop2
Добрый день!
Не пойму почему товары в корзину добавляются через раз, также если перейти в корзину, и нажать удаление товара, он пропадает, но после перезагрузки снова отображается, если остался один товар в корзине то его просто не получается удалить.
при добавлении в корзину, приходит успешный ответ от сервера, что количество товара в корзине изменено — перехожувкорзину — пусто, в чем может быть причина?
сайт — mebel.varmedia.ru/
Не пойму почему товары в корзину добавляются через раз, также если перейти в корзину, и нажать удаление товара, он пропадает, но после перезагрузки снова отображается, если остался один товар в корзине то его просто не получается удалить.
при добавлении в корзину, приходит успешный ответ от сервера, что количество товара в корзине изменено — перехожувкорзину — пусто, в чем может быть причина?
сайт — mebel.varmedia.ru/
Дополнительные свойства товара minishop2
Доброго дня!
Пытаюсь добавить два дополнительных свойства товара типа чекбокс
По инструкции создал плагин товара, получилось вывести поля в карточку товара в админке, все работает. Теперь пытаюсь чтобы поле вывелось как стандартные поля minishop2 «новый, особый, популярный», но что-то ничего не выводится, не пойму почему, код msproductdata.js:
Пытаюсь добавить два дополнительных свойства товара типа чекбокс
По инструкции создал плагин товара, получилось вывести поля в карточку товара в админке, все работает. Теперь пытаюсь чтобы поле вывелось как стандартные поля minishop2 «новый, особый, популярный», но что-то ничего не выводится, не пойму почему, код msproductdata.js:
Работа в админке с MIGX с телефона
Столкнулся с проблемой, что поле MIGX нельзя отредактировать с мобильного телефона, так как там же нужно кликнуть по строке правой кнопкой мыши, чтобы выпало контекстное меню где можно нажать «редактировать».
С телефона (iPhone) не получается вообще никак вызвать это меню, отсюда вопрос, может кто сталкивался и можно вывести кнопку в колонку, например «редактировать» и ее нажатием открывалось окно редактирования строки?
UPD Сделал через конфигурацию migx, но может как-то можно проще через поле «Разметка колонок:» вписать?
Так как например у меня много полей и на каждое конфигурацию делать — такое себе:))
Хорошая инструкция по добавлению кнопок: https://lectoria.pro/read/migx-ekspress-rukovodstvo.html
С телефона (iPhone) не получается вообще никак вызвать это меню, отсюда вопрос, может кто сталкивался и можно вывести кнопку в колонку, например «редактировать» и ее нажатием открывалось окно редактирования строки?
UPD Сделал через конфигурацию migx, но может как-то можно проще через поле «Разметка колонок:» вписать?
Так как например у меня много полей и на каждое конфигурацию делать — такое себе:))
Хорошая инструкция по добавлению кнопок: https://lectoria.pro/read/migx-ekspress-rukovodstvo.html