Дополнительные свойства информационной ситемы в RSS

#
Дополнительные свойства информационной ситемы в RSS
Вывожу Rss c использованием метода ShowInformationSystemRss. Полученный xml файл не содержит значения дополнительных свойств элементов информационной системы. В API не нашел информации о возможности этого.

Так возможно ли добавить вывод дополнительных свойств информационной системы в RSS?
http://site-plus.ru - разработка интернет сайтов
Модератор
#
Re: Дополнительные свойства информационной ситемы в RSS
GrinevRI,
стандартно нет, т.к. это уже не RSS получится. Какие именно св-ва Вы хотите выводить?
Можно построить свой XML с использованием соответствующих методов класса RssWrite.
#
Re: Дополнительные свойства информационной ситемы в RSS
Как выводить в RSS маленькое изображение, по умолчанию вставляется ссылка большой картинки.
Интеграция дизайна, доработка кода системы, техническое обслуживание сайтов на HostCMS
Модератор
#
Re: Дополнительные свойства информационной ситемы в RSS
3dkvadrat,
Написать свой экспорт на основе API соответствующего класса.
#
Re: Дополнительные свойства информационной ситемы в RSS
Типовая динамическая страница: RSS канал для доски объявлений (настройки)


<?php
$shop = & singleton('shop');

/* Код информационной системы */
$shop_id = to_int($GLOBALS['LA']['ShopID']);
$GLOBALS['shop_item_path'] = $shop->GetItemPath($shop_id);

/* Код выводимой группы */
$shop_groups_id = $GLOBALS['LA']['ShopGroupsID'];

/* Число выводимых элементов в ленте */
$items_on_page = to_int($GLOBALS['LA']['ItemCount']);

/* Позиция, с которой начинается вывод элементов */
$items_begin = to_int($GLOBALS['LA']['ItemBegin']);

$property=array();

/* Показывать в формате Yandex:full-text */
$property['yandex:full-text'] = to_bool($GLOBALS['LA']['Fulltext']);

/* Удалять теги из RSS */
$property['strip-tags'] = to_bool($GLOBALS['LA']['StripTags']);

/* Заголовок RSS-канала */
if (!empty($GLOBALS['LA']['RssTitle']))
{
   $property['title'] = to_str($GLOBALS['LA']['RssTitle']);
}

/* Описание RSS-канала */
if (!empty($GLOBALS['LA']['RssDescription']))
{
   $property['description'] = to_str($GLOBALS['LA']['RssDescription']);
}

/* URL RSS-канала */
if (!empty($GLOBALS['LA']['RssURL']))
{
   $property['link'] = to_str($GLOBALS['LA']['RssURL']);
}



/* Отображать изображение для информационного элемента в RSS */
//$property['show_image'] = to_bool($GLOBALS['LA']['ShowImage']);
$show_image = to_bool($GLOBALS['LA']['ShowImage']);

/* Изображение для RSS-канала (URL) */
if (!empty($GLOBALS['LA']['RssImage']))
{
   $property['image']['url'] = to_str($GLOBALS['LA']['RssImage']);
   $property['image']['title'] = to_str($GLOBALS['LA']['RssTitle']);
   $property['image']['link'] = to_str($GLOBALS['LA']['RssURL']);
}
    $param = array();
    $param['items_begin'] = $items_begin;
    $param['items_on_page'] = $items_on_page;
    $param['items_field_order'] = 'shop_items_catalog_date_time';    
    $param['xml_show_group_type']='all';
    
    $element = array () ;
    $element['type'] = 0;
    $element['name'] = 'shop_items_catalog_small_image';
    $element['prefix'] = "AND (";
    $element['if'] = "!=";
    $element['value'] = "''";
    $element['sufix']= ")";
    $param['select'][] = $element;
  
    $items = $shop->GetAllItems($shop_id,false,$param);
   
   $rssw = & singleton('RssWrite');
   $rssitems= array();   
   foreach ($items as &$item) {
      // добавляем
      $rssitem= array();
            
      $group_path = '';
      $group_path1 = '';
      //$mas_group_path = '';
      $group_id = $item['shop_groups_id'];
      $mas_group_path = array();

      $gr = $shop->GetGroup($group_id);
      while ($gr['shop_groups_parent_id']!=0) {
        $mas_group_path[] = $gr;
        $gr = $shop->GetGroup($gr['shop_groups_parent_id']);
      }
      if (isset($gr)) {
        $mas_group_path[] = $gr;
      }
            
      //$mas_group_path1 = $shop->GetShopGroupsToRoot($group_id, $shop_id);      
      if (is_array($mas_group_path) && count($mas_group_path) > 0)
      {
          $f = true;
         foreach ($mas_group_path as $key => $value)
         {
            if ($f)
            {
              $group_path1 = $value['shop_groups_name'] . (intval($key) != 0 ? ' &rarr; ' : '' ) . $group_path1;
              $f=false;
            }            
            //$value['shop_groups_parent_id']==0;
            $group_path = $value['shop_groups_path'] . '/' . $group_path;
         }
      }
     // Путь по именам содержится в переменной $group_path
      $rssitem['title'] =  '<span class="category">'.$group_path1.'</span><br /><span class="name">'.$rssw->str_for_rss($item['shop_items_catalog_name']).'</span>';
      $rssitem['link'] ="http://board.srs-vrn.ru/board/".$group_path.$item['shop_items_catalog_path'];
      
      $t = strip_tags($item['shop_items_catalog_text']);
      
      $t = substr($t,0,97);
      $rssitem['description'] = '<span class="description">'.$rssw->str_for_rss($t).'</span>';
      $rssitem['guid'] = $rssitem['link'];
      if ( $show_image && !empty($item['shop_items_catalog_small_image'])) {
        $rssitem['enclosure'][0]['url'] = '/upload/shop_'.$shop_id.'/item_catalog_'.$item['shop_items_catalog_item_id']."/".$item['shop_items_catalog_small_image'];
      // как узнать размер файла пока не разобрался
      $rssitem['enclosure'][0]['length']=1024;
      }      
      $rssitems[] = $rssitem;      
    } // foreach
    unset($items);
    $rss = $rssw->CreateRSS($property,$rssitems);
    echo $rss;
    exit();
?>
Модератор
#
Re: Дополнительные свойства информационной ситемы в RSS
Zaktus писал(а):
// как узнать размер файла пока не разобрался

Вы не поверите, php-функция filesize(), только не забудьте проверить существование файла, и функциям работы с файлам передавайте всегда полный путь, путь к системе содержится в константе CMS_FOLDER
#
Re: Дополнительные свойства информационной ситемы в RSS
Спасибо! Вы, делаете меня более эффективным
Авторизация