Янис

Янис

С нами с 05 мая 2016; Место в рейтинге пользователей: #75
Янис
10 сентября 2018, 13:30
0
Помогло, спасибо. В моём случае сайт улетел при установке miniShop 2.4.15, до установки pdoTools.
Да, правильный путь core/cache/includes/elements/modplugin
Янис
08 августа 2018, 14:36
0
Я его вариант и использую, просто не понятно, почему пример из документации не работает? Видимо кроме Василия нам никто не даст ответ.
Янис
08 августа 2018, 14:22
0
Те же яйца, вид сбоку: «ключ найден: 2»
Янис
07 августа 2018, 21:57
0
Не работает: «ключ найден:2». И ошибки в синтаксисе нет. Документация:

Сложный синтаксис
{"Hi, {$user.name}!"}        выводит: Hi, Username!
{"Hi, {$user->name}!"}       выводит: Hi, Username!
{"Hi, {$user->getName()}!"}  выводит: Hi, Username!
{"Hi, {\$user->name}!"}      выводит: Hi, {$user->name}!
Янис
07 августа 2018, 19:32
0
Спасибо, теперь работает как надо. Возникает вопрос: почему пример из документации pdoTools не работает?
Янис
12 января 2018, 21:01
0
Через filterOptions.
&filterOptions=`{
"more_tpl": "<button class=\"btn btn-default btn-more my\">[[%pdopage_more]]</button>"
}`
Янис
20 ноября 2016, 12:43
0
ОК. Я не программист. И даже не учусь :)

BTW. Мой клиент чуть расширил задачу и мне понадобилось передать [[+url]] дальше. Пришлось урл закодировать. Так появились еще две строчки:
// Новая опция для urlencode 
$urlEncode = $modx->getOption('urlEncode', $scriptProperties, false);
// И как обычно, перед сбросом в чанк --  URL-кодирование строки. 
if ($urlEncode) 
        $itemArr['urlencode'] = urlencode($itemArr['url']);
Насколько оно надо другим, не скажу. Но если надо — пользуйтесь.
Янис
16 ноября 2016, 18:23
0
На тему вывода даты загруженного файла. Мне понадобилось и я добавил пару строк (версия 1.0.8):
// Определяем дополнительную опцию
$showDate = $modx->getOption('showDate', $scriptProperties, false);
// Перед сбросом данных в чанк определяем дату файла
if ($showDate) $itemArr['filedate'] = filectime($item->getFullPath());
Теперь у нас есть еще одна опция &showDate=`1` и еще один плейсхолдер [[+filedate]], что содержит дату файла.
Виталий, внесете дополнения в сниппет FileAttach?
Янис
30 августа 2016, 10:47
+1
Как я уже писал: «Я пока все-таки поставил вариант с другим именем класса для полей. » Т.е. я дополнил default.js. Изменений не много:
После строчки
form.find('.error').removeClass('error');
Вставил
form.find('.field-error').removeClass('field-error');
Строку
form.find('[name="' + key + '"]').addClass('error');
Изменил на
form.find('[name="' + key + '"]').addClass('field-error');
После сроки
form.find('.error').removeClass('error');
Добавил
form.find('.field-error').removeClass('field-error');
И блок
$(document).on('keypress change', '.error', function () {
  var key = $(this).attr('name');
  $(this).removeClass('error');
  $('.error_' + key).html('').removeClass('error');
});
Изменил на
$(document).on('keypress change', '.error, .field-error', function () {
  var key = $(this).attr('name');
  $(this).removeClass('error field-error');
  $('.error_' + key).html('').removeClass('error');
});
Т.е. теперь инпутам, селектам и прочим полям присуждается класс .field-error, вместо .error.
Ну и css слегка подправить нужно.
Янис
18 мая 2016, 11:19
0
Насчет сниппета я поторопился. Идем в настройки системы-минишоп, там есть пункт о выводе цены (ms2_price_format), т.е. [[!+price]] не число, о чём я и говорил.
Янис
18 мая 2016, 10:48
0
Тогда только один вариант — свой писать сниппет.
Янис
18 мая 2016, 09:55
0
Не видя вывода плэйсхолдера цены, тяжело сказать. Там точно нет никаких знаков группирования тысяч? Например пробел?
Янис
18 мая 2016, 09:40
0
Проверьте, всегда ли [[+price]] является числом. Это очень распространённая ошибка
Янис
17 мая 2016, 18:36
0
> form.find('.error').html(''); выполняется для спана с текстом ошибки, а не для самого элемента.
И где вы это увидели? В строке про span нет ни слова. Обнуляются всё html содержимое елементов с классом .error. Обычные инпуты и текстареа не имеют html содержимого, поэтому их это не задевало. А вчера — сошлись звезды и понадобилась мне аджакс форма с селектом.
Янис
17 мая 2016, 18:25
0
Тоже не комильфо́, сообщения с ошибками не обнуляются. Я пока все-таки поставил вариант с другим именем класса для полей. И установил AjaxForm локально, чтобы он обновления не искал.

Главное — проблема локализована. Как ее решить с наименьшими потерями для всех, вряд ли подскажу, как я уже писал — не особо я разбираюсь в js, чуть-чуть jQuery умею. Время есть, а если кто-то столкнётся с проблемой, то хоть не будет биться головой об стенку, как я вчера.

Если нужна помощь в тестировании — всегда пожалуйста.
Янис
17 мая 2016, 17:12
0
Стало еще хуже — обнуляются инпуты
Янис
17 мая 2016, 17:03
0
Нет, не локальная. Я стал править дальше, чтобы класс «field-error» очищался и нашел строку из-за которой происходит весь конфликт и обнуление селекта:
37. form.find('.error').html('');
Вот содержимое селекта с классом «error» и обнуляется.
Янис
17 мая 2016, 16:44
0
Скажу сразу — я в js, как свинья в апельсинах. Но вот что я нарыл:

Строка, из-за которой опустошается селект, была найдена быстро (default.js)
54. form.find('[name="' + key + '"]').addClass('error');
А вот дальше начались танцы с бубном и призывом грома — я попробовал не находить строчку, а фильтровать, пробовал искать по атрибуту «name», ничего не изменилось. А потом покурил, стукнул в бубен и спросил: «О великий селект, почему ты глючишь?» И ответил селект: «А мне имя класса не нравится!» Вот тут я выпал в осадок, но поменял строчку
54. form.find('[name="' + key + '"]').addClass('field-error');
и всё заработало. На всякий случай убрал все стили (мало ли). Те же яйца, вид сбоку.

Итого: Василий с ГитХабом у меня еще хуже, чем с js, сможешь изменить класс «error» для полей на какой нибудь другой, например на «field-error»?
Янис
17 мая 2016, 14:39
0
ОК, убрал, но легче не стало. Пример с оформление селекта взят отсюда: FormIt