Aleksandr Huz

Aleksandr Huz

С нами с 02 августа 2014; Место в рейтинге пользователей: #12
Aleksandr Huz
28 апреля 2021, 14:32
+3
Даже не знал об этом. Нужно почаще читать issues.
Кто-то пишет, чтобы это было в ядре, кто-то чтобы это был отдельный компонент.
Как по мне, в ядро можно такое и не включать, это расширение возможностей и тем более не всем это нужно, хватает и стандартных полей. Компонент не дорогой, в магазине действует, кто не знает, система скидок, с каждой покупкой цена снижается на 10%, но не более 50%. Но, если сделают этот функционал в ядре, то конечно он уже будет и не нужен.

Если такое в ядре хотят сделать, то почему бы не пойти дальше и добавить функционал еще и этого компонента msFieldsManager
Aleksandr Huz
28 апреля 2021, 09:20
0
Quiz подойдет, но с коробки такое не сделать, нужно немного доработать.
Aleksandr Huz
25 апреля 2021, 11:59
0
на данный момент нет. Но в планах интегрировать GoogleSheets
Aleksandr Huz
23 апреля 2021, 16:24
0
Ну а если мы удалим пользователя — мы удалим и информацию об оставленной электронной почте.
Да, это подходит только если почта вообще не нужна.
Aleksandr Huz
23 апреля 2021, 16:04
0
Согласен, не очень логично, но и не критично.
Ну попадает заказ к одному анониму, ничего страшного, в заказе адрес и номер будет разный. Врятли, менеджеры переходят к пользователю, чтобы посмотреть его контактные данные.

А если это сильно смущает то можно удалять этого же пользователя, если его имя совпадает с почтой
Вешаем плагин на событие: OnUserSave
if($mode == 'new' && $user->get('username') == $user->Profile->get('email')) {
   $user->remove();
}
Но, только если при регистрации почта не используется как логин.

Конечно, это все костыли, и более правильно будет не создавать пользователя, но дать возможность решать это через системную настройку.
Aleksandr Huz
22 апреля 2021, 15:02
+1
Вы можете бесплатно установить пакет на modhost.pro и посмотреть админку
Aleksandr Huz
06 апреля 2021, 20:56
+1
{set $rows = $_modx->runSnippet('!pdoResources', [
    'fastMode' => 0,
    'limit' => 0,
    'parents' => 2,
    'depth' => 5,
    'includeContent' => 1,
    'tvPrefix' => 'tv_',
    'includeTVs' => 'stars,room_type,room_details,basis_price,photos',
    'select' => '{"modResource":"id,uri,pagetitle,content,photos"}',
    'return' => 'json',
    'where' => ['isfolder' => 0]
]) | fromJSON}

{foreach $rows as $row} 
    ..
{/foreach}
Aleksandr Huz
18 марта 2021, 11:29
+1
Интерфейс на Vue.js с визуальным добавлением узлов и атрибутов
В статье написано
Aleksandr Huz
13 марта 2021, 10:03
0
Напишите мне в ТП
Aleksandr Huz
06 марта 2021, 22:36
0
$tvName = 'babelLanguageLinks';
if(!$tv = $modx->getobject('modTemplateVar', ['name' => $tvName])) {
    die("TV c именем {$tvName} не найдено");
}
$babel_TV_ID = $tv->get('id');
Aleksandr Huz
17 февраля 2021, 21:34
0
И потом сидишь и думаешь, а сделал ли я заказ в магазине.
Aleksandr Huz
05 февраля 2021, 10:58
0
Я за решение 1. Если есть хотя бы один комментарий не от автора, то вопрос нельзя удалить или снять с публикации.

Решение 2. Если прогер спрашивает как вывести ресурсы через pdoResources и берет в работу ИМ, то я на месте заказчика хотел бы видеть историю пользователя, чтобы быть уверенным в выборе. Это нормально, если прогер 2 года назад спрашивает какую-то мелочь, а сейчас уже умеет создавать компоненты.
Aleksandr Huz
02 февраля 2021, 16:10
1
+2
Добавить сортировку для поиска. Например, если добавить параметр
&sort=date
то результаты сортируются, но это нужно вручную добавлять.
Чтобы увидеть самые старые, то добавить еще:
&dir=asc
Aleksandr Huz
27 января 2021, 14:36
0
Зачем это делать, если можно создать событие и добавить одну строчку?
А если js исходника поменяется, а вы переопределили метод, новый функционал не будет работать.

Вообщем, возможно ваш вариант и имеет место быть, но это не лучший вариант.
Aleksandr Huz
27 января 2021, 14:33
0
Нет, нужно в админке создать плагин на событие msOnEmptyCart
if($modx->event->name == 'msOnEmptyCart') {
    $modx->sendRedirect('http://site.ru');
}
Aleksandr Huz
27 января 2021, 13:48
+1
Используйте события, а именно msOnEmptyCart.
Править исходники не рекомендую.
Aleksandr Huz
22 января 2021, 22:33
0
document.querySelector('.jsSearchForm').addEventListener(event, function (e) {
     e.preventDefault();
     let formData = new FormData(e.target.closest('form'));
     sendAjax(formData);
});
Точно работает?
event — это submit?
e.target — если сабмит, то это и есть форма.
Aleksandr Huz
21 января 2021, 21:47
1
+1
Почему вы не пишите это автору, то есть мне? Вы купили компонент, могли бы написать и в ТП.
забрать данные куда-нибудь в MIGX таблицу, а потом как-то реализовать поиск уже по MIGX таблице и вывести результат?
Если данных много и они не обновляются часто, то можно экспортировать данные в json файл. И затем сделать поиск по нему, а не по мигс таблице. Но этот вариант нужно дорабатывать.

Выпустил обновление.
Теперь сниппет GoogleSheets принимает 2 параметра query и where

1. query — для точного поиска. Значение массива должно совпадать со значением параметра query. Например:
{'!GoogleSheets' | snippet: [
     'table' => 'https://docs.google.com/spreadsheets/d/16eyRIpKGbw/edit#gi1',
     'range' => 'ExportProducts',
     'query' => 'Мобильный'
] | table: 'table table-hover'}

2. where — для поиска по определенному полю. Например:
{'!GoogleSheets' | snippet: [
     'table' => 'https://docs.google.com/spreadsheets/d/16eyRIpKGbw/edit#gi1',
     'range' => 'ExportProducts',
     'where' => [
          'pagetitle' => 'Мобильный'
     ],
] | table: 'table table-hover'}
Будет искать слово 'Мобильный' в значение поля pagetitle

P.S. Можно использовать 2 параметра одновременно.
Aleksandr Huz
16 декабря 2020, 08:58
0
Посмотри какой родитель у товаров