RSS граббер

Модератор
#
Re: RSS граббер
phantik,
а у Вас в структуре сайта случаем импорт RSS не активен под узлом новости?
#
Re: RSS граббер
у меня в структуре импорт находится не в разделе новости, а на одном уровне ("/import-rss/" и "/news/"
#
Re: RSS граббер
phantik, в данном случае неважно их взаимное расположение. Если узел активен, то вполне вероятно, что к нему происходит случайное обращение, что провоцирует импорт новостей.
#
Re: RSS граббер
в структуре недоработанная динамическая страница находится, которая выдает ошибки и не производит импорт. финальный файл код я выложил, при ручном запуске он производит импорт, иногда по крону срабатывает
Модератор
#
Re: RSS граббер
phantik,
./cron/ закрыт через .htaccess?
Добавляйте в файл импорта отладку, которую он будет писать в некий файл со временем вызова и контролируйте, когда у Вас файл вызывается. Посмотрите логи крона, в них Вы должны увидеть реальное время вызова.
#
Re: RSS граббер
Всем привет. У меня пару вопросиков. Я как понял чтобы проапдейтится до последней версии нужно скачать версию 5.0. А где ее скачать? Или покупать нужно? И еще интересует граббер, он уже встроен?
Модератор
#
Re: RSS граббер
swordfish,
Если с 4.1, то апдейт ведется до последней версии пятерки, сейчас это 5.4.1.
Скачать бесплатную можно на странице "Халявы", если у Вас коммерческая редакция - напишите запрос в поддержку.
#
Re: RSS граббер
Почему в коде импорта не импортируются картинки?
Директории создаются, а картинки туда не копируются и, соответственно, не помещаются в инфоэлемент.
Что сделать?

<?php

// Идентификатор информационной системы, в которую помещаются элементы
$infsys_id = to_int($GLOBALS['LA']['InformationSystemID']);

// Группа, в которую помещается новый элемент
$infgroup_id = to_int($GLOBALS['LA']['InformationGroupID']);

// Список источников
$RssSourceTextList = to_str($GLOBALS['LA']['RssSourceTextList']);

// Разделяем на список источников
$array_RssSourceTextList = explode("\n", $RssSourceTextList);

$rss = new RssRead();

$InformationSystem = & singleton('InformationSystem');

$DateClass = new DateClass();

$kernel = & singleton('kernel');

$count_import_item = 0;

$infsys_row = $InformationSystem->GetInformationSystem($infsys_id);

// Получаем список тэгов
foreach ($array_RssSourceTextList as $url)
{
   $result = $rss->ReadRSS($url);

   /* Цикл по полученным элементам */
   for ($i = 0; $i < count($result['items']) - 1; $i++)
   {
      $count_result = $InformationSystem->GetExternalInformationSystemItem(array(
      'information_items_name' => $result['items'][$i]['title'],
      'information_systems_id' => $infsys_id));

      /* Если не найдено элементов с таким же именем */
      if (mysql_num_rows($count_result) == 0)
      {
         /* Формируем полный путь к источнику материала */
         $link = $result['items'][$i]['link'];

         /* Заголовок */
         $title = $result['items'][$i]['title'];

         /* Описание элемента */
         $desc = $result['items'][$i]['desc'];

         /* Тест элемента */
         $text = $result['items'][$i]['desc'] . "<p>Источник: <a href=\"{$url}\">$url</a>";

         /* Дата */
         $date = $DateClass->DateUnixToSQL (strtotime ($result['items'][$i]['pubdate']));

         if (!empty($title))
         {
            // КОД ДЛЯ ЗАГРУЗКИ ИЗОБРАЖЕНИЙ
            $information_item_small_image = '';
            $information_item_image = '';
            
            // Вставка элемента
            $item_id = $InformationSystem->InsertInformationItems(0, 0, $infsys_id,
            $infgroup_id, $date, $title, $desc, 1, $text, $information_item_image, 0,
            $_SERVER['REMOTE_ADDR'], '', 1, '', '', '', -1, array('information_items_small_image' =>
            $information_item_small_image));
            
$InformationSystem->InsertInformationPropertysItems(0, 0, 309, $item_id, $link);

            if (isset($result['items'][$i]['enclosure']['url']))
            {
               // Формируем путь к папке информационного элемента по идентификатору информационного элемента
               $item_dir = $InformationSystem->GetInformationItemDir($item_id);
               
               // Создаем папку для информационного элемента
               $kernel->PathMkdir($item_dir);
            
               $uploaddir = CMS_FOLDER . $item_dir;
               
               $img = to_str($result['items'][$i]['enclosure']['url']);

               $temp_file = tempnam(TMP_DIR, "TMP_");

               if (@copy($img, $temp_file))
               {
                  chmod($temp_file, CHMOD_FILE);

                  $param_img = array();

                  /* ---------------------------------- */
                  // Определяем расширение файла
                  $exp = strtolower($kernel->GetExtension($img));

                  $name = 'information_items_' . time() . $count_import_item . '.' . $exp;

                  //CMS_FOLDER . $InformationSystem->GetInformationItemDir()

                  //$information_item_image = CMS_FOLDER . UPLOADDIR . $name;
                  //$information_item_small_image = CMS_FOLDER . UPLOADDIR . 'small_' . $name;
                  
                  $information_item_image = $uploaddir . $name;
                  $information_item_small_image = $uploaddir . 'small_' . $name;

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

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

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

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

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

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

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

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

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

                  // Значение максимальной ширины малого   изображения;
                  $param['max_width_small_image'] = $infsys_row['information_systems_image_small_max_width'];

                  // Значение максимальной высоты малого   изображения;
                  $param['max_height_small_image'] = $infsys_row['information_systems_image_small_max_height'];

                  // Путь к файлу с "водяным знаком"
                  $param['watermark_file_path'] = '';
                  
                  $result_img = $kernel->AdminLoadFiles($param);

                  if ($result_img['big_image'])
                  {
                     $information_item_image = basename($param['path_target_big_image']);
                  }

                  if ($result_img['small_image'])
                  {
                     $information_item_small_image = basename($param['path_target_small_image']);
                  }
                  
                  $param_item = array ();

                  $param_item['information_items_id'] = $item_id;
                  $param_item['information_items_image'] = $information_item_image;
                  $param_item['information_items_small_image'] = $information_item_small_image;
               
                  // Обновляем информацио о информационном элементе после создания изображений
                  $item_id = $InformationSystem->InsertInformationItem($param_item);
                  
                  @unlink($temp_file);
               }
            }

            $count_import_item++;
         }
      }
   }
}
?>
<h1>Импорт информационных элементов</h1>
<p>Проимпортировано <?php echo $count_import_item?> элементов</p>
Интеграция дизайна, доработка кода системы, техническое обслуживание сайтов на HostCMS
Авторизация