Что-то у меня ничего не получается. В форме центра администрирования "Метки", теги не появляются.
Вот полный код RSS импортера немного модифицированный, подскажите куда вставить импорт меток:
<?php
// Идентификатор информационной системы, в которую помещаются элементы
$infsys_id = Core_Type_Conversion::toInt($GLOBALS['LA']['informationsystemId']);
// Группа, в которую помещается новый элемент
$infgroup_id = Core_Type_Conversion::toInt($GLOBALS['LA']['informationGroupId']);
// Список источников
$RssSourceTextList = Core_Type_Conversion::toStr($GLOBALS['LA']['sourcesList']);
// Разделяем на список источников
$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'];
/* создаем теги из заголовка */
$str_tag = preg_replace('/[^a-zA-ZА-Яа-я\s]/u','',$title); // удаляем все символы кроме букв
$str_tag = mb_strtolower($str_tag, 'UTF8'); // переводим все буквы в строчные
$str_tag = str_replace(' ',', ',$str_tag); // разделяем теги запятыми
/* Описание элемента */
$desc = $result['items'][$i]['desc'];
$desc = preg_replace('/<[\/]?a[^>]*>/i', '', $desc); // удаляем все гиперссылки
$str = 'Постоянный адрес публикации: ';
$none = '';
$desc = str_replace($str, $none, $desc); // удаляем строку в переменной "str"
/* Текст элемента */
$host = parse_url($url, PHP_URL_HOST); // выделяем имя домена из url-адреса
$text = "<h1>$title</h1>" . $result['items'][$i]['desc'] . "<p style='color: #999;'>Источник: $host</p>" . "\n Метки: $str_tag";
$text = preg_replace('/<[\/]?a[^>]*>/i', '', $text); // удаляем все гиперссылки
$text = str_replace($str, $none, $text); // удаляем строку в переменной "str"
/* Дата */
$date = $DateClass->DateUnixToSQL (strtotime ($result['items'][$i]['pubdate']));
/* создаем SEO из заголовка */
$seo_title = $title; // заголовок
$seo_desc = $title; // описание
$seo_key = $str_tag; // ключевые слова из тегов
if (!empty($title))
{
// КОД ДЛЯ ЗАГРУЗКИ ИЗОБРАЖЕНИЙ
$information_item_small_image = '';
$information_item_image = '';
// Вставка элемента + SEO
$item_id = $InformationSystem->InsertInformationItems(0, 0, $infsys_id,
$infgroup_id, $date, $title, $desc, 1, $text, $information_item_image, 0,
$_SERVER['REMOTE_ADDR'], '', 1, $seo_title, $seo_desc, $seo_key, -1, array('information_items_small_image' =>
$information_item_small_image));
if (isset($result['items'][$i]['enclosure']['url']))
{
// Формируем путь к папке информационного элемента по идентификатору информационного элемента
$item_dir = $InformationSystem->GetInformationItemDir($item_id);
// Создаем папку для информационного элемента
$kernel->PathMkdir($item_dir);
$uploaddir = CMS_FOLDER . $item_dir;
$img = Core_Type_Conversion::toStr($result['items'][$i]['enclosure']['url']);
$temp_file = tempnam(TMP_DIR, "TMP_");
$fh = fopen($temp_file, "w");
$content_file = $kernel->GetUrl($img);
if (@fwrite($fh, $content_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);
}
fclose($fh);
}
$count_import_item++;
}
}
}
}
?>
<h1>Импорт информационных элементов</h1>
<p>Проимпортировано <?php echo $count_import_item?> элементов</p>