Загрузка файла в tickets

Делаю на tickets каталог с возможностью добавления анкеты зарегистрированным пользователем, проверкой этой анкеты админом и публикацией анкеты после проверки. Анкета после добавления имеет статус не опубликовано, до момента пока админ не проставит галку опубликовано. В анкете застрял на добавлении видео-файла.
ДАНО:
1) TV *video
2) чанк tickets.form.create.tpl создания самой анкеты:
<form class="well create" enctype="multipart/form-data" method="post" action="" id="ticketForm">
...
<div class="col-md-12 col-sm-12 mt-2">
<label for="ticket-photo">Insert video (maximum size 3 Mb, only mp4)</label>
<div class="custom-file">
  <input type="file" class="custom-file-input" name="video" id="video">
  <label class="custom-file-label" for="customFile">Choose video file</label>
  <span class="error" id="error_video"></span>
</div>
</div>
3) чанк tickets.form.update.tpl обновления анкеты после публикации (на случай испарвления)
<form class="well update" method="post" action="" id="ticketForm">
....
<div class="col-md-12 col-sm-12 mt-2">
<label for="ticket-photo">Insert video (maximum size 3 Mb, only mp4)</label>
<div class="custom-file">
  <input type="file" class="custom-file-input" name="video" id="video">
  <label class="custom-file-label" for="customFile">Choose video file [[+video]]</label>
  <span class="error" id="error_video"></span>
</div>
</div>
4) Плагин, который запускается по событию OnBeforeDocFormSave. На OnDocFormSave форма после нажатия сохранить вообще зависает.

<?php
if ($modx->event->name == 'OnBeforeDocFormSave') {
      if($mode == 'new'){  
        if (!empty($_FILES)) { 
             
            $id = $resource->get('id');
            $folder = 'video'; // имя папки куда грузить, должна быть создана (в корне сайта)
            $path = MODX_BASE_PATH.'/'.$folder.'/'; // Путь от корня до нужного места
            $tv_name = 'video'; // имя нашей тв
             
            // все значения файла
            $nameFile = $_FILES['video']['name'];
            $typeFile = $_FILES['video']['type'];
            $tmpNameFile = $_FILES['video']['tmp_name'];
            $sizeFile = $_FILES['video']['size']; 
             
            $limit_size = 3*1024*1024; // 3 Mb - максимальный размер загружаемого файла
            $file_types = array("mp4", "MP4"); // доступные расширения для загрузки
            $extensionFile = substr(strrchr($nameFile, '.'), 1); // получаем расширение файла
             
            $NewNameFile = 'id_'.$id.'_'.date("m_d_y").'.'.$extensionFile;  // наше новое имя файла
             
            if(is_uploaded_file($tmpNameFile)) // проверяем зашёл ли файл
            {
                if($limit_size > $sizeFile)
                { // Проверка на размер
                    if(in_array($extensionFile, $file_types)){ // проверка на тип
                         move_uploaded_file($tmpNameFile, $path.$NewNameFile); // загрузка файла
                         $resource->setTVValue($tv_name, $folder.'/'.$NewNameFile); // запись в ТВ
                    }
                }
            }
        }
    } 
}
5) Создан источник файлов Video и выбран для TV video в настройках самого TV

Проблемы:
1) Видео файл передается в папку video в корне, но не отображается в TV video в самом документе.
2) Видео файл не передается при редактировании формы при tickets.form.update.tpl
3) При создании нескольких анкет файлы в папке видео просто затираются и в паке остается только один последний файл.

Есть ли у кого-то готовый рабочий пример передачи файла через тикет? Думаю, что накосепорил с событием и самимb чанками создани и обновления анкеты. Передаются все ТВ, загрузка изображений через msgallery, но один ТВ файл не хочет заводиться.
Антон
26 июля 2022, 00:49
modx.pro
863
0

Перенос интернет магазина на MODX

Требуется принести сайт corp-mebel.ru с сохранением функционала. Просьба предоставить стоимость с учётом необходимых дополнений, а так же предоставить две цены, с товарами и без, и сроки.

TG: @monterarty
Вячеслав Варов
25 июля 2022, 22:43
modx.pro
528
0

Сниппет вывода TV параметров при условии их наличия

пригодился для вывода списка параметров товара из TV
наименование TV берется из description
UPD: после долгих раздумий добавил в фильтр id категории
Stepan
25 июля 2022, 13:57
modx.pro
1 714
+1

Интеграция расписания приема врачей с 1С Медицина

Всех приветствую, попросили настроить синхронизацию и вывести на сайте расписание врачей из 1С Медицина через API 1С через режим FTP.
Со стороны 1С, программисты готовы сделать любую выгрузку в формате XML file, вот пример: prnt.sc/gmkXjK1xeB2Q
Но что с ним делать? В какую сторону смотреть?

Дали ссылку на руководство Практическое применение механизма WEB-сервисов в системе 1С: Предприятие: infostart.ru/1c/articles/327963/

Подсказали смотреть на разделы:

Раздел 3 более применим к ситуации
Раздел 2 — обращение к 1С
Константин
25 июля 2022, 08:02
modx.pro
835
0

Ошибки от msorderhandler после обновления minishop2

Всем привет!
Использую свой класс для поля телефона, после обновления стали сыпаться ошибки типа:
[2022-07-24 11:26:31] (ERROR @ /www/core/components/minishop2/model/minishop2/msorderhandler.class.php: 6) Deprecated: use handlers from catalog core/components/minishop2/handlers/
[2022-07-24 11:26:31] (ERROR @ /www/core/components/minishop2/model/minishop2/minishop2.class.php: 436) [miniShop2] Could not load custom class at "/www/core/components/minishop2/custom/order/myorderhandler.class.php"
Через консоль удалял и переподключал уже его.
В чем может быть проблема?
Владимир
24 июля 2022, 11:35
modx.pro
876
0

minishop2 и PayPal

Здравствуйте, форумчане!

Сталкивались ли Вы с подключением системы оплаты PayPal в minishop2?
Вне зависимости от версии minishop2 (со встроенным способом оплаты на прежних версиях минишопа или в виде дополнительно плагина) происходит одна и та же картина: приходит клиенту письмо с ссылкой вида ИМЯ_САЙТА/assets/components/minishop2/payment/paypal.php?action=continue&msorder=367&mscode=УНИКАЛЬНЫЙ_КОД
Данная ссылка не рабочая.

Поля настроек Логин продавца; Пароль продавца; Подпись продавца; заполнены (без заполнения картина та же).

Что посоветуете? И можно ли сделать так, чтобы со страницы Оформления заказа была бы переадресация на страницу оплаты PayPal?
newbmod
23 июля 2022, 18:50
modx.pro
573
0

Buggregator (Ray) для MODX Revolution 2/3 или по-простому реал-тайм логирование

В данном видео познакомимся с реал-тайм логгером buggregator и его интеграцией в MODX Revolution 2/3 версий

Семён Кудрявцев
23 июля 2022, 11:11
modx.pro
2
1 161
+14

Как подружить кнопку Тинькофф и minishop2 на fenom

Кнопка покупки передает данные о товарах и имеет код:

<button
      type="button"
      class="TINKOFF_BTN_YELLOW"
      onclick="tinkoff.createDemo({
        shopId: 'SHOP_ID',
        showcaseId: 'SHOWCASE_ID',
        demoFlow: 'sms',
        items: [
         {name: 'iPhone 11', price: 100000, quantity: 1},
          {name: 'Чехол', price: 500, quantity: 1}
        ],
        promoCode: 'default',
        sum: 100500
      })"
      >
</button>
Фигурные скобки «мешают» работать Fenom, но они нужны для передачи данных о товарах

{foreach $products as $product}
         {name: '{$product.pagetitle}', price: {$product.price}, quantity: {$product.count}},
    {/foreach}



https://postimg.cc/HVd9rnyG

Какие решения есть?
Добавить пробелы к скобкам не помогает, т.к. тогда они ломают скрипт Тинькофф
Игорь Павлов
22 июля 2022, 18:18
modx.pro
540
0

Как добавить допустим класс тегу(html тегу), допустим к элементу [[*pagetitle]] при парсинге?

Хочу добавить класс каждому тегу который выставлен на страницу допустим
<div class="pr">[[*pagetitle]]</div>
добавить класс так
<div class="pr pagetitle_parsed">[[*pagetitle]]</div>
Пробовал так
<?php
switch ($modx->event->name) {
    case 'OnParseDocument':
        if($modx->user->isMember('Administrator')){
            $content = $modx->documentOutput;
            $tags = array();
            $collected = $modx->parser->collectElementTags($content, $tags, '[[', ']]', array('*'));
            // $modx->log(1, var_dump($tags));
            foreach($tags as $tag){
                $modx->log(1, var_dump($tag));
                break;
            }
            // $modx->log(1, var_dump($collected));
            
        }
        break;
Но даже не могу увидеть что за тег, имя и тд, мне просто выводится цифра 26
Vladimir
22 июля 2022, 12:33
modx.pro
489
0