pdoSitemap ошибка карта начинается со 2й строки, как исправить?

Вызов 1 на странице, отступов нет
<?php
$output = $modx->runSnippet('pdoPage',array(
    'element' => 'pdoSitemap',
    'parents' => 0,
    'context' => $modx->context->key,
    'depth' => 10,
    'limit' => 100,
    'showHidden' => 0
));
return $output;
Тип страницы xml, шаблон пустой, когда всё установил она работала, но через время появилась вот эта ошибка!

в контенте страницы на первой строке вызов снипетта
{'!pars' | snippet}
больше ничего там нет
Vladimir
15 августа 2023, 09:27
modx.pro
428
0

Не устанавливается кастомная кнопка подгрузки pdopage mfilter2

minishop2 => 2.9.3
msearch2 => 1.10.2
pdoTools => 2.13.2

Вызов
[[!mFilter2?
	&element=`msProducts`
	&parents=`[[*id]]`
	&limit=`9`
	&depth=`0`
	&ajaxMode=`button`
	&tpl=`productTpl`
	&pageLimit=`3`
	&sortby=`{ "parent":"DESC", "menuindex":"DESC" }`
	&includeTVs=`productTitle,productHoverImage`
	&ajaxElemWrapper=`#pdopage`
	&ajaxElemRows=`#pdopage .rows`
	&ajaxElemMore=`#pdopage .btn_more`
	&ajaxTplMore=`@INLINE <button class="btn_more objs-btn def-btn wired-btn">Показать еще</button>`
]]
Устанавливается стандартная кнопка
<button class="btn btn-default btn_more">Загрузить еще</button>
Она работает всё подгружает, но это не та кнопка что я установил
Vladimir
14 августа 2023, 13:06
modx.pro
347
0

Проблема с отправкой писем на почту через AjaxForm

Всем доброго времени суток. Ищу хоть какой-то помощи куда копать ибо уже закончились идеи. Проблема в следующем не отправляются письма из форм на почту если в чанки почтового письма пытаюсь отправить более 4-х переменных т.е. больше 4-х полей.

Если я в чанке письма вставляю 2 или 3 поля или 4, то все отправляется, если больше то все болты, но при этом ошибок в консоли нет, в админке в формите заявка сохраняется причем со всеми заполнеными полями. Т.е. в целом все работает, не работает только отправка письма на почту при условии что в чанке письма добавлено много переменных.
Maks
11 августа 2023, 15:40
modx.pro
751
0

Связать mSearch2 и mFilter2

Здравствуйте.
Можно ли интегрировать mSerach2 непосредственно в фильтр? Т.е. что бы поиск и фильтр находились на одной странице (это я понимаю что можно) и всё это дело работало следующим образом:
1. Желательно чтобы результаты поиска выводились аяксом без перезагрузки страницы.
2. При нажатии кнопки «Сбросить» в фильтре также очищался и поисковый запрос (без перезагрузки страницы).
Очень хочется сделать именно так.
Игорь
11 августа 2023, 09:59
modx.pro
1 042
0

mFilter2 – при фильтрации вывести дополнительный блок с ресурсами

Приветствую.
Столкнулся с такой задачей.
Установлен mFilter2, фильтр ограничен выводом товара limit=>9, заместо пагинации кнопка.
Как при фильтрации или если на странице выводится меньше товаров чем указано в лимите, подгружать вывод из дочерних веток. Например, выводить блок похожие товары.
Направьте пожалуйста на правильный путь, может где есть примеры? Или что-то подобное. За готовое решение отблагодарю.
Рустам
11 августа 2023, 05:01
modx.pro
390
0

Не создает файл Word через Hook в AjaxForm

Я написал php код в отдельном файле и сохранил его на сервере. Его задача подтягивать поля из формы и создавать Word документ через PhpWord.

Если отправлять форму указывая путь к PHP файлу в Action, то всё работает нормально, но по хорошему, надо сделать через hook в админке modx.

Я попробовал просто вставить код в созданный мной сниппет и подключить его к hook`ам в AjaxForm
Так не работает и спустя несколько часов поиска я решил сюда отписать.

В «Журнале ошибок» пусто.

<?php
   // что-то там с валидацией, без него вроде дальше по хукам не проходит и форма не отправится. 
   $output = true;
   
   // путь к каталогам, для сокращение ссылок 
   $path = '/var/www/*****/data/';
   
   require $path . 'vendor/autoload.php';

   $document = new \PhpOffice\PhpWord\TemplateProcessor($path . "www/*****/phpword/brif_template.docx");
   
   // По инструкции из PhpWord 
   $uploadDir = __DIR__;
   $outputFile = 'review_full.docx';
   
   
   // Подтягиваем поля из форм
   $campony_name = $hook->getValue('campony_name');
   $document->setValue('campony_name', $campony_name);
   
   $contact_name = $hook->getValue('contact_name');
   $document->setValue('contact_name', $contact_name);
   
   $current_site = $hook->getValue('current_site');
   $document->setValue('current_site', $current_site);
   
   $region = $hook->getValue('region');
   $document->setValue('region', $region);
   
   $phone = $hook->getValue('phone');
   $document->setValue('phone', $phone);
   
   $mail = $hook->getValue('mail');
   $document->setValue('mail', $mail);
   
   $business_line = $hook->getValue('business_line');
   $document->setValue('business_line', $business_line);
   
   $competitors = $hook->getValue('competitors');
   $document->setValue('competitors', $competitors);
   
   
   // Сохраняет на сервере
   $document->saveAs($outputFile);
   
return $output;


<section class="main__request request" style=" margin: 100px auto; ">
   <div class="request__container container">
      <div class="request__inner">
         <div class="request__form" style=" margin: 0 auto; ">
            
            [[!AjaxForm?
               &snippet = `FormIt`
               
               &form = `brifForm.tpl`
               &emailTpl = `brifMail.tpl`
               
               &hooks = `PHPWordForm,spam,email,FormItSaveForm`
               
               &fromName = `Запись онлайн`
               &formFields = `mail,phone`
               &fieldNames = `mail==E-Mail,phone==Телефон,campony_name==Сообщение`
               
               &emailFrom = `[[++email_from]]`
               &emailFromName = `Форма обратной связи`
               &emailSubject = `Заявка со страницы - [[*pagetitle]]`
               &emailTo = `t2nda@yandex.ru`
               
               
               &validationErrorMessage = `В форме содержатся ошибки!`
               
               &successMessage = `Спасибо за обращение в нашу компанию! 

Менеджер свяжется с вами в ближайшее время`
            ]]
      </div>
   </div>
</section>

<form
   class="request__form form"
   action="[[~[[*id]]? &scheme=`full`]]"
   enctype="multipart/form-data"
   method="POST"
>
   
   <div class="form__field">
      <input type="text" class="form__input" name="campony_name" placeholder="campony_name">
   </div>
   <div class="form__field">
      <input type="text" class="form__input" name="contact_name" placeholder="contact_name">
   </div>
   <div class="form__field">
      <input type="text" class="form__input" name="current_site" placeholder="current_site">
   </div>
   <div class="form__field">
      <input type="text" class="form__input" name="region" placeholder="region">
   </div>
   <div class="form__field">
      <input type="text" class="form__input" name="phone" placeholder="phone">
   </div>
   <div class="form__field">
      <input type="text" class="form__input" name="mail" placeholder="mail">
   </div>
   <div class="form__field">
      <input type="text" class="form__input" name="business_line" placeholder="business_line">
   </div>
   <div class="form__field">
      <input type="text" class="form__input" name="competitors" placeholder="competitors">
   </div>
   
   
   <button class="form__button button button--rounded button--vertical-gradient button--light-blue-blue-gradient" type="submit">
      <span>
         Оставить заявку
      </span>
   </button>
   
</form>


Я не спец в php, обычно мелкие правки вносил и пользуюсь готовыми решениями.

По задаче, мне нужно будет отправить сгенерированный файл по почте и потому решил сделать через AjaxForm, чтобы отдельно обработчик не писать. Во первых — я нуб в этом, во вторых — мне кажется так будет правильно.
Денис Мавлютов
10 августа 2023, 14:55
modx.pro
432
0

mSync и 50.000 товаров

Добрый день. У клиента есть 1с-розница и 50.000 товаров на борту. Можно выгружать только ночью, с 00-00 и до 08-00.

Проблема в следующем, что за ночь успевает прогрузиться только 10.000 товаров и то без оферса только импорты. Вопрос как можно увеличить скорость выгрузки нормальными способами.

Пробовал разбивать выгрузку в 1с на каталоги, но почему то они криво выгружаются. Один раз выгрузятся и все, потом он не хочет выгружать снова. То есть создаю несколько выгрузок (в разные дни) в 1с, но они все-ровно не работают.

Может кто то помочь в этом вопросе за небольшое вознаграждение?

П.с. это без фотографий товары.
Михаил
10 августа 2023, 14:20
modx.pro
619
0

Как сделать пагинацию в PDOPage без параметров в URL?

Приветствую.
Постараюсь объяснить подробно ситуацию.

weranda
10 августа 2023, 13:00
modx.pro
352
0

Обновление компонента FileAttach под MODX3

14 50 000
Друзья, давайте скинемся и обновим компонент FileAttach под MODX3!



[ССЫЛКА НА СБОР](устарела, сбор завершен) ← пополнение картой

Если хотите криптой или др., напишите мне (контакты в профиле)

Это прекрасный компонент, используется на многих проектах. Он позволяет прикреплять файлы к ресурсам и выводить их на фронтенде. То, что он не поддерживает 3 версию, тормозит всеобщее обновление на MODX3. Если кто не знаком с компонентом, вот ссылки:

Оригинальный автор видимо занят, сказал что сделает, но пока не случилось… Вот мой issue на github компонента по теме.

Исполнитель найден, топовый автор из местных, но озвученный бюджет я один не потяну, присоединяйтесь!

[ССЫЛКА НА СБОР] если кто не заметил сразу (устарела, сбор завершен)

P.S. Все собранные донаты отправились в пользу автора компонента-преемника: FileMan by @Наумов Алексей! Спасибо всем кто участвовал!
Дима Касаткин
09 августа 2023, 14:07
modx.pro
1
1 742
+8

Не выводит то что должно

есть код, который должен выводить output переменную, но выводит совсем не понятно что

{
    "success": true,
    "message": "",
    "data": {
        "msorder": 80
    }
}
if ($action == 'createOrder') {
    $product_id = $_POST['product_id'];
     $scriptProperties = array(
      'json_response' => true,
      'max_count' => 1000,
      'allow_deleted' => false,
      'allow_unpublished' => false
    );
    
    $miniShop2 = $modx->getService('miniShop2','miniShop2', MODX_CORE_PATH . 'components/minishop2/model/minishop2/', $scriptProperties);
    $miniShop2->initialize($modx->context->key, $scriptProperties);
    
    $output = [];
    
    try {
        $miniShop2->cart->clean();
        
        $cart = $miniShop2->cart->add($product_id,1, ['size' => '']);
        $order = $miniShop2->order->submit();
     
        $output['success'] = true;
    } catch (Exception $e) {
        $output['success'] = false;
    }
    echo json_encode($output);
}
Максим
09 августа 2023, 11:50
modx.pro
353
0