Всего 123 792 комментария

Игорь
03 июня 2023, 10:52
0
Здравствуйте.
Подскажите, можно ли использовать этот компонент совместно с картой во фронтенде — т.е. выбирать точку на карте при оформлении заказа?.. В демо, вроде, такого нет…
Артур Шевченко
03 июня 2023, 00:03
0
Печалька, что мы сломали работу с этим компонентом.Надо будет на досуге покопаться.
Prihod
02 июня 2023, 17:39
0
Середина августа
Николай Савин
02 июня 2023, 16:12
+1
Я аж всплакнул чуть-чуть. Так хорошо сказал. Практически тост
Дима Касаткин
02 июня 2023, 16:10
0
Привет! Google уже пишет в наших аккаунтах, что через ~30 дней отключит сбор данных в счетчиках (потоках данных) которые имеют версии до GA4. Предлагает конвертацию там какую-то и т.п. Короче будущее наступило!
Дима Касаткин
02 июня 2023, 16:07
+6
Класс! И без того давно «не по-детски» функциональный минишоп благодаря таким апдейтам добирает ещё более «взрослой» серьезности.

Казалось бы просто сообщения об ошибках, че там… но на рабочих магазинах где заказы и менеджеры «шуршат» ежедневно, банальные сообщения об ошибках способны сохранять комфортно-прохладную температуру там, где раньше подгорали чьи-то кресла в случаях когда «что-то пошло не так, а я ничего не нажимала» :)

Как не страшно это говорить, но похоже ради этих новых фишек стоит начинать задумываться об обновлении магазинов со «старых» версий MiniShop2 2.x и даже 1.х

Спасибо за релиз!
Николай Савин
02 июня 2023, 15:52
+1
Александр — я думаю многие авторы, особенно бесплатных дополнений с удовольствием воспользуются любезно предоставленным вами художественным описанием и заменят им свой сухой технический текст. Вы не стесняйтесь присылайте.
Также документация открыта всем желающим.
Я вам больше скажу — наш «градообразующий» минишоп нуждается в маркетинге и в подобных человекопонятных объяснениях. Присоединяйтесь. Можем даже сделать маркетинговый сайт силами сообщества.
Vladimir
02 июня 2023, 14:41
0
Сделал так в вызов добавил 2а новых параметра:
1)cacheDataVarName (это имена переменой в кеше из которой возмётся результат)
2)formSelector (это для фронта чтобы отсортировать результат для каждой формы если нужно)

Создал снипет в котором записывается данные в кэш а так же их получения.
Способ вызова для записи:
$saveInvoiceToCache = $modx->runSnippet('customCacheStorage', ['cacheVarName' => 'newInvoice', 'cacheValue' => $generateInvoice['downloadLink']]);
Сам сниппет:

<?php
if ($modx->cacheManager->get($cacheVarName) && !$cacheValue) {
    // Если есть кэш
    $output = $modx->cacheManager->get($cacheVarName);
}else{
    $output = $cacheValue;
    // Запись в кэш
    $modx->cacheManager->set($cacheVarName, $output, 40);
}

return $output;
*********************
Затём в файле core/components/ajaxform/model/ajaxform/ajaxform.class.php
Добавил в конструктор ("__construct") след вещи:

$this->cacheDataVarName = '';
$this->formSelector = '';

В том же файле, уже в методе "process" записал значение для 2х параметров указаных выше:

$this->formSelector = $scriptProperties['formSelector'] ? $scriptProperties['formSelector'] : 'have no form';
$this->cacheDataVarName = $scriptProperties['cacheDataVarName'];

***************************************************************
Затем в методе "success" в начало тела добавил следующие

if($this->cacheDataVarName){
    $getInvoiceFromCache = $this->modx->runSnippet('customCacheStorage', ['cacheVarName' => $this->cacheDataVarName]);

    if(!$data){
        $data = array();
    }

    $data['fileLink'] = $getInvoiceFromCache;
    $data['responseFormSelector'] = $this->formSelector;
}


А на фронте в тригере "af_complete" делаю нужные вещи (само сабой разделяю на === true и === false)
if(response.data && response.data.responseFormSelector && response.data.responseFormSelector == 'invoiceForm'){}
и так далее.

Само собой это не лучший вариант, и не совсем продакшен, к тому же это делалось для внутренних целей, не для публики. ПОЖАЛУЙСТА кто может добавьте что лучше сделать для данной задачи, с радостью исправлю и научусь новому.
.
Само собой лучше не трогать исходники, и есть лучшие методы для моей задачи, такое как заменить снипет формит и не пришлось бы городить балаган с исходниками и кэшем, и просто там отправить письма! Позже так и сделаю
Александр Мельник
02 июня 2023, 13:44
0
так как для проекта для которого он разрабатывался этого не нужно
Вот вот! Я так сразу и подумал, что родился этот компонент исключительно под требования какого то одного заказчика. Ему требовалась конкретная бизнес логика и вы ее реализовали.

Поэтому и есть некое ощущение оторванности от всего остального мира, поскольку сделано под конкретные нужды.
Но это не значит что компонент плохой, ни в коем случае.
Александр Мельник
02 июня 2023, 13:42
+1
Это прекрасно.
Но чтобы об этом узнать, нужно купить.
Да наверное можно мне ответить, что можно бесплатно попробовать на модхосте, но все равно это время и не малое — регистрируйся, устанавливай, сам разбирайся — а что можно сделать, а что нет.
Да проще уже самому написать функционал, чем методом тыка разбиратсья в чужом.

А вот когда в документации помимо сухих технических данных, есть человеческим языком написанный текст, что мол после установки вы сможете решить такие то и такие то свои проблемы, вот это и это станет делать более просто и так далее — это же прекрасно.
Вот для примера, компонет в магазине (да простит меня автор)
modstore.pro/packages/alerts-mailing/socialtools
Название — Компонент с социальным функционалом
Описание — SocialTools — это компонент с социальным функционалом для CMS / CMF MODX. С помощью него можно отправлять и читать сообщения

Ну жесть же. Компонент с социальным функционалом, который позволяет читать и отправлять сообщения. Какие сообщения? Где читать? Куда отправлять? Чьи сообщения… А ниже только примеры вызовов сниппетов. Ничего не понятно, ни варианты использования, ни решаемые компонентом задачи. С таким же успехом название и описание можно было написать на латинском языке или на суахили, ничего не изменилось бы.

Ну это я так, бурчу от старости)
Prihod
02 июня 2023, 13:34
+1
Что касается уведомления менеджеров разных филиалов то это будет добавлено в последующих версиях так как для проекта для которого он разрабатывался этого не нужно, а нужно изначально сео составляющая и остатки
Игорь
02 июня 2023, 13:33
0
Здравствуйте.
Подскажите, как можно получить название или id зон доставки. Т.е. планируется при оформлении заказа, в зависимости от выбранной зоны делать то или иное действие.
Prihod
02 июня 2023, 13:30
0
Но для этого нужны отдельные домены и отдельно ресурсы. Чтобы у филиала А был домен a.site.com и сооствественно СВОЕ содержимое страницы a.site.com/contacts или a.site.com/about
а у филиала Б свое содержимое этих страниц. Но получается что это не так.
это все можно сделать так как можно создавать сео поля и привязывать их к шаблонам и филиалам
Александр Мельник
02 июня 2023, 13:10
+1
Понятно, спасибо.
Честно скажу, мне часто в описании новых компонентов (не обязательно ваших) не хватает «художественной части». Почти всегда все авторы акцентируют внимание на том, как вызвать сниппет, что ему передать и так далее и это правильно.
Но этого мало. Это уже технические аспекты, которые интересны сугубо разработчику.
А вот рассказать — зачем был создан этот компонент, какие задачи он призван решать, как именно он решает эти задачи, чем он облегчит жизнь менеджеру? сеошнику? покупателю? Ведь это важно, чтобы привлечь потенциальных покупателей.

Вот мне не особо понятно, зачем вообще может использоваться деление сайта на филиалы. Я думал, что это даст возможность в рамках одного сайта делать СЕО продвижение сразу нескольких своих филиалов. Но для этого нужны отдельные домены и отдельно ресурсы. Чтобы у филиала А был домен a.site.com и сооствественно СВОЕ содержимое страницы a.site.com/contacts или a.site.com/about
а у филиала Б свое содержимое этих страниц. Но получается что это не так.
Если бы в админке были разделены списки заказов для разных филиалов, то это могло бы облегчить жизнь менеджеров. Раз уж вышло что в рамках одного сайта например должны работать менеджеры 10 филиалов, то им было бы легче если бы они получали на свою почту уведомления о заказах сделанных по их филиалу, видели в админке только свои список заказов. Получается что и для менеджера никаких особых выгод нет.
Пользователю сайта есть небольшой бонус — только если включены поддомены, только если настроен редирект на самый близкий к пользователю филиал, то теоретически он сделает заказ в этом филиале и возможно товары к нему прибудут быстрее, чем если бы он заказал в другом филиале.

И я прекрасно понимаю, что вы сделали огромную работу, но без какого-то художественного представления, рассказа о том, зачем вообще это все нужно, сложно увидеть реальные случаи использования.
Николай Савин
02 июня 2023, 13:05
+1
Ответил в директ
Баха Волков
02 июня 2023, 12:29
+1
Кроме того, команда работает над новым большим проектом для сообщества, релиз которого будет чуть позже.
Абсолютно не понимаю о чем речь
Prihod
02 июня 2023, 12:25
0
Поддомены для каждого филиала создавать не обязательно только если этого требует SEO
Илья
02 июня 2023, 12:21
0
Вообще без скриптов полностью вывел, такая же история…
Илья
02 июня 2023, 12:18
0
Uncaught TypeError: Cannot read properties of undefined (reading 'extend')

at self.initialize (default.js:38:35)
self.sendData = $.extend({}, self['sendDataTemplate']);
at new xLike (default.js:324:18)
if (self.initialize(options)) {
            self.run();
        }
Dan
Dan
02 июня 2023, 12:13
0
да, верно. Но у вас же проблема в скриптах, а не в вызове сниппета. Может напишите полный код ошибки из консоли. И попробуйте вызвать xLike на тестовой странице с простым шаблоном, без подключения лишних скриптов — если там работает, значит проблема в скриптах сайта