Добавление фото через API

#
Добавление фото через API
Подскажите как реализовать задачу добавлнение фото через API системы hostcms? Дело в том что у меня есть много фото (порядка 1000 шт.) и я хотел бы опубликовать их на своем сайте, а добавлять по одной фото - как то не серьезно.
Модератор
#
Re: Добавление фото через API
Unsiker,
Есть API сайта, в частности информационных систем. Посмотреть или загрузить API можно с сайта: http://www.hostcms.ru/documentation/

Если будут вопросы - задавайте.
#
Re: Добавление фото через API
HostCMS писал(а):
Если будут вопросы — задавайте.

как реализовать задачу добавлнение фото через API системы hostcms?
Модератор
#
Re: Добавление фото через API
Unsiker,
хороший, но очено общий вопрос. Начнем с того, где именно Вы будете эту задачу реализовывать.
#
Re: Добавление фото через API
Это будет обычный пхп файл - который считывает содержимое каталога, определяет файлы с расширением jpg, если таких файлов больше нуля то подключается к API системы hostcms и в цикле добавляет фотографии.

Разовая операция для добвления множества фотографий.

Весия HostCMS v.5 Халява
Модератор
#
Re: Добавление фото через API
Unsiker,
создаете файл, вносите
<?php
@ini_set('display_errors', 1);
error_reporting(E_ALL);

require_once(dirname(__FILE__) . '/' . 'main_classes.php');

// дальше свой код

?>


методы ставки элемента есть в API.
Модератор
#
Re: Добавление фото через API
пример фрагмента добавления:
$available_extantions = array (
'JPG',
'JPEG',
'PNG',
'GIF');

// Получаем информацию об информационной системе
$information_system_info = $information_system->GetInformationSystem($information_system_id);

//$uploaddir = CMS_FOLDER . UPLOADDIR;

// Если передан файл - загружаем его
if (isset ($_FILES['photo']['tmp_name']) && $_FILES['photo']['size'])
{
   // Путь к папке информационного элемента
   $item_dir_path = $information_system->GetInformationItemDir($insert_item_id);

   // Создаем папку информационного элемента
   if ($kernel->PathMkdir($item_dir_path))
   {
      $uploaddir = CMS_FOLDER . $item_dir_path;

      $param_load_file = array();

      $information_item_image = '';
      $information_item_small_image = '';

      $file_name = $file->PathCorrection($_FILES['photo']['name']);

      // Определяем расширение файла
      $ext = strtolower($kernel->GetExtension($_FILES['photo']['name']));

      // Расширение разрешено
      if (in_array(strtoupper($ext), $available_extantions))
      {
         if (!empty($ext))
         {
            $ext = '.' . $ext;
         }

         $information_item_image = $uploaddir . 'information_items_' . date("U") . $ext;

         $information_item_small_image = $uploaddir . 'small_information_items_' . date("U") . $ext;

         // Путь к файлу-источнику большого изображения;
         $param_load_file['path_source_big_image'] = to_str($_FILES['photo']['tmp_name']);

         // Путь к файлу-источнику малого изображения;
         //$param['path_source_small_image'] = to_str($_FILES['information_item_image_small']['tmp_name']);

         //Оригинальное имя файла большого изображения
         $param_load_file['original_file_name_big_image'] = to_str($_FILES['photo']['name']);

         // Путь к создаваемому файлу большого изображения;
         $param_load_file['path_target_big_image'] = $information_item_image;

         // Путь к создаваемому файлу малого изображения;
         $param_load_file['path_target_small_image'] = $information_item_small_image;

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

         // Использовать большое изображение для создания малого (true - использовать (по умолчанию), false - не использовать)
         $param_load_file['use_big_image'] = true;

         // Значение максимальной ширины большого изображения
         $param_load_file['max_width_big_image'] = $information_system_info['information_systems_image_big_max_width'];

         // Значение максимальной высоты большого изображения
         $param_load_file['max_height_big_image'] = $information_system_info['information_systems_image_big_max_height'];

         // Значение максимальной ширины малого изображения;
         $param_load_file['max_width_small_image'] = $information_system_info['information_systems_image_small_max_width'];
         // Значение максимальной высоты малого изображения;
         $param_load_file['max_height_small_image'] = $information_system_info['information_systems_image_small_max_height'];
         $result = $kernel->AdminLoadFiles($param_load_file);

         if ($result['big_image'])
         {
            $information_item_image = basename($param_load_file['path_target_big_image']);
         }
         else
         {
            $information_item_image = '';
         }

         if ($result['small_image'])
         {
            $information_item_small_image = basename($param_load_file['path_target_small_image']);
         }
         else
         {
            $information_item_small_image = '';
         }

         $param_item = array();
         $param_item['information_items_id'] = Идентификатор информационного элемента;

         $param_item['information_items_image'] = $information_item_image;

         $param_item['information_items_small_image'] = $information_item_small_image;

         $insert_item_id = $GLOBALS['LA_InformationSystem']->InsertInformationItem($param_item);

      }
   }
}
#
Re: Добавление фото через API
HostCMS а если добавление делаем в типовой?


Вот кусок html


   <!--Отображение формы добавления комментария-->
            <form action="./" method="post" enctype="multipart/form-data">

Фото<br /><input type="file" name="advertisement_file" size="59" /><br/><br/>

....



В типовой гостевой




<?php

$kernel = & singleton('kernel');

$allow_ext = array (
'JPG',
'JPEG',
'PNG',
'GIF');


..............


$information_item_image = '';

if (isset ($_FILES['advertisement_file']['name']))
      {
         $ext = $kernel->GetExtension($_FILES['advertisement_file']['name']);

         // Если расширение файла разрешено
         if (in_array(mb_strtoupper($ext), $allow_ext))
         {

            $information_items_image = to_str($_FILES['advertisement_file']['tmp_name']);
        $param['information_items_small_image'] = $information_items_image;
         }
      }




$subj = htmlspecialchars(strip_tags(to_str($_POST['subject'])));
if(mb_strlen($subj) == 0)
{
$subj = '<Без темы>';
}



               // Вставляем запись
               $question_id = $InformationSystem->InsertInformationItems(0,   0,
               $InformationSystem_id, $group_id, $date, $subj, '',
               $item_status, $text, $information_items_image, 0, to_str($_SERVER['REMOTE_ADDR']), '', 1, '', '', '', '', $param);

.............

?>



Но не работает заливка, ошибок нет при добавлении отзыва
изучаю hostcms 6
#
Re: Добавление фото через API
Ок хорошо, я так понял AdminLoadFiles все равно нужно делать

Применяя ваш пример тогда вопрос как получить в типовой id обновляемого элемента

HostCMS писал(а):
   $param_item = array();
         $param_item['information_items_id'] = Идентификатор информационного элемента;
изучаю hostcms 6
#
Re: Добавление фото через API
С этим тоже вроде разобрался далее получаю:


move_uploaded_file(**************/upload/information_system_3/0/9/4/item_94/information_items_1301720347.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory в файле **************/modules/Kernel/Kernel.class.php (строка 4417)
Предупреждение: move_uploaded_file() [function.move-uploaded-file]: Unable to move '**************/mod-tmp/phpSrNTXw' to '**************/upload/information_system_3/0/9/4/item_94/information_items_1301720347.jpg' в файле **************/modules/Kernel/Kernel.class.php (строка 4417)
Файл не загружен!
изучаю hostcms 6
Авторизация