Доп. свойство заказа типа "Файл"

#
Доп. свойство заказа типа "Файл"
как правильно прикреплять файлы к заказам?
и отправлять их в письме администратору прикрепленными файлами?

можно создать доп. свойство типа Файл, но стандартный обработчик корзины на файлы не рассчитан
#
Re: Доп. свойство заказа типа "Файл"
хотя бы что-нибудь одно..
#
Re: Доп. свойство заказа типа "Файл"
inteo,
Вам нужно в обработчике платежной системы получить файл из запроса и прикрепить к сообщению
HostDev.pw - модули для HostCMS, Telegram: @hostdev
#
Re: Доп. свойство заказа типа "Файл"
Каким образом? Как правильно перед send() прикрепляются файлы?
#
Re: Доп. свойство заказа типа "Файл"
Столкнулся с этой задачей и я)  Версия HostCMS:  6.5.3
Есть функция createOrder() /modules/shop/payment/system/handler.php

Обнаружил что там сохраняются  дополнительные свойства заказа магазина:

// Additional order properties
      $aOrderParamProperties = Core_Array::get($this->_orderParams, 'properties');

      if (is_array($aOrderParamProperties))
      {
         foreach ($aOrderParamProperties as $aTmp)
         {
            if (count($aTmp) == 2)
            {
               $iProperty_id = $aTmp[0];
               $value = $aTmp[1];

               $oProperty = Core_Entity::factory('Property', $iProperty_id);
               $oProperty_Value = $oProperty->createNewValue($this->_shopOrder->id);

               // Дополнительные свойства
               switch ($oProperty->type)
               {
                  case 0: // Int
                  case 3: // List
                  case 5: // Information system
                     $oProperty_Value->value(intval($value));
                     $oProperty_Value->save();
                  break;
                  case 1: // String
                  case 4: // Textarea
                  case 6: // Wysiwyg
                     $oProperty_Value->value(strval($value));
                     $oProperty_Value->save();
                  break;
                  case 8: // Date
                     $date = strval($value);
                     $date = Core_Date::date2sql($date);
                     $oProperty_Value->value($date);
                     $oProperty_Value->save();
                  break;
                  case 9: // Datetime
                     $datetime = strval($value);
                     $datetime = Core_Date::datetime2sql($datetime);
                     $oProperty_Value->value($datetime);
                     $oProperty_Value->save();
                  break;
                  case 2: // File


                  break;
                  case 7: // Checkbox
                     $oProperty_Value->value(is_null($value) ? 0 : 1);
                     $oProperty_Value->save();
                  break;
               }
            }
         }
      }


Вопрос: Отправляю файл и в итоге там ничего не происходит, обработчик в коде как вы видите пустой case 2: // File Хотелось бы знать как можно записать файл в БД и отправить по почте?

Можете выложить код обработчика?
Смотрел тут есть похожий на решение код. Не состыковывается, есть необходимость сохранить типы файлов array('XLS','XLSX','DOC','DOCX','PDF', 'JPG', 'JPEG', 'GIF', 'PNG' скажем реквизиты Юр.лица который оформляет заказ.
E-mail: info@syrbek.ru / телега: @syrbek /skype: activexm / syrbek.ru / Поддержка сайтов / г. Москва [HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, Git, SVN, Redmine]
Модератор
#
Re: Доп. свойство заказа типа "Файл"
Seri,
для свойств заказов доп. св-ва типа файл не поддерживаются.
#
Re: Доп. свойство заказа типа "Файл"
HostCMS писал(а):
для свойств заказов доп. св-ва типа файл не поддерживаются.

Понятно( но вручную можно дописать обработчик? Если в админке загружать то все нормально. Надо что бы при создании заказа записывались прикрепленные заказы.
E-mail: info@syrbek.ru / телега: @syrbek /skype: activexm / syrbek.ru / Поддержка сайтов / г. Москва [HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, Git, SVN, Redmine]
#
Re: Доп. свойство заказа типа "Файл"
Решил в общем так:
case 2: // File

                            $item_dir_path = UPLOADDIR . 'shop_' . $oShop->id . '/';
                            $item_dir_path .= Core_File::getNestingDirPath($this->_shopOrder->id, $oShop->Site->nesting_level) . '/order_' . $this->_shopOrder->id . '/';
                            if (!is_dir($item_dir_path))
                            {
                                try
                                {
                                    Core_File::mkdir($item_dir_path, CHMOD, TRUE);
                                } catch (Exception $e) {}
                            }

                            $kernel = & singleton('kernel');
                            $ext = $kernel->GetExtension($value['name']);
                            if ($ext != '')
                            {
                                $ext = '.' . $ext;
                            }

                            $property_big_file = $item_dir_path . 'order_property_file_' . $iProperty_id . '_' . $this->_shopOrder->id . $ext;
                            $check=true;
                            if ($value['name']!='') {

                                $file_name=$value['name'];
                                $tmp=$value['tmp_name'];

                                $trusted_formats=array('gif', 'jpg', 'png', 'bmp', 'eps', 'tif', 'rtf', 'pdf', 'doc', 'docx', 'xls', 'xlsx', 'rar', 'zip', 'tar');

                                $check_file_name=explode(".",$file_name);
                                $ext=$check_file_name[count($check_file_name)-1];
                                if (!in_array($ext,$trusted_formats)) {
                                    die("Разрешены форматы gif, jpg, png, bmp, eps, tif, rtf, pdf, doc, docx, xls, xlsx, rar, zip, tar");
                                    $check=false;
                                }

                                if (filesize($tmp)>10000000) {
                                    die("Размер не должен привышать 10Mb");
                                    $check=false;
                                }
                            }

                            if ($check)
                            {
                                if (move_uploaded_file($tmp, CMS_FOLDER . $property_big_file)) {
                                    $oProperty_Value->file = basename($property_big_file);
                                    $oProperty_Value->file_name = Core_Type_Conversion::toStr($value['name']);
                                    $oProperty_Value->file_description = '/'.$property_big_file;
                                    $oProperty_Value->save();
                                }
                            }
                  break;

Но стирается все время после обновления системы( Обновляю и возвращаю обратно пока так.
E-mail: info@syrbek.ru / телега: @syrbek /skype: activexm / syrbek.ru / Поддержка сайтов / г. Москва [HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, Git, SVN, Redmine]
#
Re: Доп. свойство заказа типа "Файл"
Также понадобилось прикрепить файл к заказу. Не пойму, как по примеру Seri передать из формы заказа информацию о том что прикреплен файл?
#
Re: Доп. свойство заказа типа "Файл"
Galaxy писал(а):
Также понадобилось прикрепить файл к заказу. Не пойму, как по примеру Seri передать из формы заказа информацию о том что прикреплен файл?

В админке создаете доп. свойства "Файл" в заказе ИМ. Далее используете в шаблоне XSL. Выше обработчик закачивает прикрепленный  файл на сервер.
E-mail: info@syrbek.ru / телега: @syrbek /skype: activexm / syrbek.ru / Поддержка сайтов / г. Москва [HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, Git, SVN, Redmine]
Авторизация