Добавление большого и малого изображения инфоэлемента через клиентскую часть.

Модератор
#
Добавление большого и малого изображения инфоэлемента через клиентскую часть.
            if (isset($_FILES['image']['tmp_name']) && $_FILES['image']['size'])
            {
               if (Core_File::isValidExtension($_FILES['image']['name'], Core::$mainConfig['availableExtension']))
               {
                  
                  $ext = Core_File::getExtension($_FILES['image']['name']);
                  // Указание изображений
                  $param = array();

                  // Путь к файлу-источнику большого изображения;
                  $param['large_image_source'] = $_FILES['image']['tmp_name'];

                  $large_image = 'information_items_' . $oInformationsystem_Item->id . '.' . $ext;
                  $small_image = 'small_' . $large_image;

                  // Оригинальное имя файла большого изображения
                  $param['large_image_name'] = $large_image;

                  // Оригинальное имя файла малого изображения
                  $param['small_image_name'] = $small_image;

                  // Путь к создаваемому файлу большого изображения;
                  $param['large_image_target'] = $oInformationsystem_Item->getItemPath() . Core_File::convertFileNameToLocalEncoding($large_image);

                  // Путь к создаваемому файлу малого изображения;
                  $param['small_image_target'] = $oInformationsystem_Item->getItemPath() . Core_File::convertFileNameToLocalEncoding($small_image);

                  // Использовать большое изображение для создания малого
                  $param['create_small_image_from_large'] = TRUE;
                  $param['watermark_file_path'] = $oInformationsystem->getWatermarkFilePath();
                  $param['watermark_position_x'] = $oInformationsystem->watermark_default_position_x;
                  $param['watermark_position_y'] = $oInformationsystem->watermark_default_position_y;
                  $param['large_image_preserve_aspect_ratio'] = $oInformationsystem->preserve_aspect_ratio;
                  $param['small_image_max_width'] = $oInformationsystem->group_image_small_max_width;
                  $param['small_image_max_height'] = $oInformationsystem->group_image_small_max_height;
                  $param['small_image_watermark'] = $oInformationsystem->watermark_default_use_small_image;
                  $param['small_image_preserve_aspect_ratio'] = $param['large_image_preserve_aspect_ratio'];
                  $param['large_image_max_width'] = $oInformationsystem->group_image_large_max_width;
                  $param['large_image_max_height'] = $oInformationsystem->group_image_large_max_height;
                  $param['large_image_watermark'] = $oInformationsystem->watermark_default_use_large_image;

                  $oInformationsystem_Item->createDir();

                  $result = Core_File::adminUpload($param);

                  if ($result['large_image'])
                  {
                     $oInformationsystem_Item->image_large = $large_image;
                     $oInformationsystem_Item->setLargeImageSizes();
                  }

                  if ($result['small_image'])
                  {
                     $oInformationsystem_Item->image_small = $small_image;
                     $oInformationsystem_Item->setSmallImageSizes();
                  }

                  $oInformationsystem_Item->save();
               }
               else
               {
                  echo 'Неверный формат файла';
               }
            }


input для добавления файла имеет название image.
Вы только что начали читать предложение, чтение которого вы уже заканчиваете.
#
Re: Добавление большого и малого изображения инфоэлемента через клиентскую часть.
Как можно вывести все(фотографии) из ИС в профиле пользователя которые он добавил с сайта и соответственно дать ему возможность редактировать удалять свои фото..

и второй вопрос как можно дать пользователю возможность создавать свои альбомы?
Модератор
#
Re: Добавление большого и малого изображения инфоэлемента через клиентскую часть.
zedserver,
Как Ваш вопрос относится к этой теме?! Создайте отдельную тему.
#
Re: Добавление большого и малого изображения инфоэлемента через клиентскую часть.
А подскажите, этот код вставляется в типовую динамическую?
Модератор
#
Re: Добавление большого и малого изображения инфоэлемента через клиентскую часть.
VikFx,

Да. Данный пример для типовой динамической страницы.
Вы только что начали читать предложение, чтение которого вы уже заканчиваете.
#
Re: Добавление большого и малого изображения инфоэлемента через клиентскую часть.
Для интернет магазина так будет:  
if (isset($_FILES['image']['tmp_name']) && $_FILES['image']['size'])
            {
               if (Core_File::isValidExtension($_FILES['image']['name'], Core::$mainConfig['availableExtension']))
               {
                  
                  $ext = Core_File::getExtension($_FILES['image']['name']);
                  // Указание изображений
                  $param = array();

                  // Путь к файлу-источнику большого изображения;
                  $param['large_image_source'] = $_FILES['image']['tmp_name'];

                  $large_image = 'shop_items_catalog_' . $oShop_Item->id . '.' . $ext;
                  $small_image = 'small_' . $large_image;

                  // Оригинальное имя файла большого изображения
                  $param['large_image_name'] = $large_image;

                  // Оригинальное имя файла малого изображения
                  $param['small_image_name'] = $small_image;

                  // Путь к создаваемому файлу большого изображения;
                  $param['large_image_target'] = $oShop_Item->getItemPath() . Core_File::convertFileNameToLocalEncoding($large_image);

                  // Путь к создаваемому файлу малого изображения;
                  $param['small_image_target'] = $oShop_Item->getItemPath() . Core_File::convertFileNameToLocalEncoding($small_image);

                  // Использовать большое изображение для создания малого
                  $param['create_small_image_from_large'] = TRUE;
                  $param['watermark_file_path'] = $oShop->getWatermarkFilePath();
                  $param['watermark_position_x'] = $oShop->watermark_default_position_x;
                  $param['watermark_position_y'] = $oShop->watermark_default_position_y;
                  $param['large_image_preserve_aspect_ratio'] = $oShop->preserve_aspect_ratio;
                  $param['small_image_max_width'] = $oShop->group_image_small_max_width;
                  $param['small_image_max_height'] = $oShop->group_image_small_max_height;
                  $param['small_image_watermark'] = $oShop->watermark_default_use_small_image;
                  $param['small_image_preserve_aspect_ratio'] = $param['large_image_preserve_aspect_ratio'];
                  $param['large_image_max_width'] = $oShop->group_image_large_max_width;
                  $param['large_image_max_height'] = $oShop->group_image_large_max_height;
                  $param['large_image_watermark'] = $oShop->watermark_default_use_large_image;

                  $oShop_Item->createDir();

                  $result = Core_File::adminUpload($param);

                  if ($result['large_image'])
                  {
                     $oShop_Item->image_large = $large_image;
                     $oShop_Item->setLargeImageSizes();
                  }

                  if ($result['small_image'])
                  {
                     $oShop_Item->image_small = $small_image;
                     $oShop_Item->setSmallImageSizes();
                  }

                  $oShop_Item->save();
               }
               else
               {
                  echo 'Неверный формат файла';
               }
            }
#
Re: Добавление большого и малого изображения инфоэлемента через клиентскую часть.
Попробовал внедрить данный код, для добавления к создаваемому элементу изображения в свой обработчик ,я создаю отзыв из всплывающей формы
вот мой код
Элемент создается, но дальше все сыпется и не добавляются ни свойства(которые вконце, раньше работали), ни соответственно изображение тоже не подтягивается

$oInformationsystem = Core_Entity::factory('Informationsystem', 33);

$oInformationsystem_Item = Core_Entity::factory('Informationsystem_Item');
$oInformationsystem_Item->name = $_POST['name'];
$oInformationsystem_Item->description = $_POST['review'];
$oInformationsystem_Item->active = '0';
$oInformationsystem_Item->text = '';

// Здесь $oInformationsystem_Item будет присвоен informationsystem_id и далее он будет сохранен!
$oInformationsystem->add($oInformationsystem_Item);

if (isset($_FILES['file1']['tmp_name']) && $_FILES['file1']['size'])
            {
               if (Core_File::isValidExtension($_FILES['file1']['name'], Core::$mainConfig['availableExtension']))
               {
                  
                  $ext = Core_File::getExtension($_FILES['file1']['name']);
                  // Указание изображений
                  $param = array();

                  // Путь к файлу-источнику большого изображения;
                  $param['large_image_source'] = $_FILES['file1']['tmp_name'];

                  $large_image = 'information_items_' . $oInformationsystem_Item->id . '.' . $ext;
                  $small_image = 'small_' . $large_image;

                  // Оригинальное имя файла большого изображения
                  $param['large_image_name'] = $large_image;

                  // Оригинальное имя файла малого изображения
                  $param['small_image_name'] = $small_image;

                  // Путь к создаваемому файлу большого изображения;
                  $param['large_image_target'] = $oInformationsystem_Item->getItemPath() . Core_File::convertFileNameToLocalEncoding($large_image);

                  // Путь к создаваемому файлу малого изображения;
                  $param['small_image_target'] = $oInformationsystem_Item->getItemPath() . Core_File::convertFileNameToLocalEncoding($small_image);

                  // Использовать большое изображение для создания малого
                  $param['create_small_image_from_large'] = TRUE;
                  $param['watermark_file_path'] = $oInformationsystem->getWatermarkFilePath();
                  $param['watermark_position_x'] = $oInformationsystem->watermark_default_position_x;
                  $param['watermark_position_y'] = $oInformationsystem->watermark_default_position_y;
                  $param['large_image_preserve_aspect_ratio'] = $oInformationsystem->preserve_aspect_ratio;
                  $param['small_image_max_width'] = $oInformationsystem->group_image_small_max_width;
                  $param['small_image_max_height'] = $oInformationsystem->group_image_small_max_height;
                  $param['small_image_watermark'] = $oInformationsystem->watermark_default_use_small_image;
                  $param['small_image_preserve_aspect_ratio'] = $param['large_image_preserve_aspect_ratio'];
                  $param['large_image_max_width'] = $oInformationsystem->group_image_large_max_width;
                  $param['large_image_max_height'] = $oInformationsystem->group_image_large_max_height;
                  $param['large_image_watermark'] = $oInformationsystem->watermark_default_use_large_image;

                  $oInformationsystem_Item->createDir();

                  $result = Core_File::adminUpload($param);

                  if ($result['large_image'])
                  {
                     $oInformationsystem_Item->image_large = $large_image;
                     $oInformationsystem_Item->setLargeImageSizes();
                  }

                  if ($result['small_image'])
                  {
                     $oInformationsystem_Item->image_small = $small_image;
                     $oInformationsystem_Item->setSmallImageSizes();
                  }

                  $oInformationsystem_Item->save();
               }
               else
               {
                  echo 'Неверный формат файла';
               }
            }



$oProperty = Core_Entity::factory('Property')->find(111);

            if (!is_null($oProperty->id) && $_POST['vozrast'])
            {
               $oValue = $oProperty->createNewValue($oInformationsystem_Item->id);
               $oValue->value = $_POST['vozrast'];
               $oValue->save();
            }
$oProperty = Core_Entity::factory('Property')->find(112);

            if (!is_null($oProperty->id) && $_POST['city'])
            {
               $oValue = $oProperty->createNewValue($oInformationsystem_Item->id);
               $oValue->value = $_POST['city'];
               $oValue->save();
            }
$oProperty = Core_Entity::factory('Property')->find(115);

            if (!is_null($oProperty->id) && $_POST['email'])
            {
               $oValue = $oProperty->createNewValue($oInformationsystem_Item->id);
               $oValue->value = $_POST['email'];
               $oValue->save();
            }
#
Re: Добавление большого и малого изображения инфоэлемента через клиентскую часть.
Вот ошибка что возникает

<strong>Замечание:</strong> Use of undefined constant CHMOD - assumed 'CHMOD' в файле /hsphere/local/home/krilova/mirkiyana.com/modules/informationsystem/item/model.php (строка 642)<strong>Замечание:</strong> Use of undefined constant CHMOD_FILE - assumed 'CHMOD_FILE' в файле /hsphere/local/home/krilova/mirkiyana.com/modules/core/file.php (строка 142)<strong>Замечание:</strong> Use of undefined constant CHMOD - assumed 'CHMOD' в файле /hsphere/local/home/krilova/mirkiyana.com/modules/core/file.php (строка 35)Exception: The directory 'upload/information_system_33/3/2/8/item_328' directory has not been created.
<br />36 modules/core/exception.php
<br />395 modules/core/file.php
<br />35 modules/core/file.php
<br />145 modules/core/file.php
<br />897 modules/core/file.php
<br />99 js/form-review.php
Модератор
#
Re: Добавление большого и малого изображения инфоэлемента через клиентскую часть.
PakoGonsalezZ,

Добавьте в начало своего файла:

define('CURRENT_SITE', 1);
$oSite = Core_Entity::factory('Site', CURRENT_SITE);
Core::initConstants($oSite);
Вы только что начали читать предложение, чтение которого вы уже заканчиваете.
#
Re: Добавление большого и малого изображения инфоэлемента через клиентскую часть.
Класс, спасибо помогло
Авторизация