Показ схожих информационных элементов на основе меток

#
Re: Показ схожих информационных элементов на основе меток
Помогите советом как правильно хоть сделать, а то проект стоит. Не могу не чего сделать. А скоро новый год не охота оставлять на следующий год проект.
Skype:ferdinant1988 ICQ:311960596 E-mail: ferdinant@i.ua
Модератор
#
Re: Показ схожих информационных элементов на основе меток
ferdinant, все достаточно просто. В коде типовой динамической страницы, отображающей статьи, после вызова метода показа элемента (статьи)

// Выводим элемент информационной системы
$GLOBALS['LA_InformationSystem']->ShowInformationSystemItem($item_id, $xsl_item, $external_propertys, $property);

добавляете код, приведенный в первом сообщении темы


/* $item_id содержит идентификатор информационного элемента, для которого необходимо получить схожие
*/

$oTag = & singleton('Tag');
  
// Получаем массив тегов информационного элемента
$mas_tags  = $oTag->GetTagRelation(array('information_items_id' => $item_id));
  
if (is_array($mas_tags) && count($mas_tags) > 0)
{
   $property = array();

   foreach($mas_tags as $key => $tag_row)
   {
      $property['tags'][] = $tag_row['tag_id'];
   }

   $property['Order'] = 'DESC';
   $property['OrderField'] ='information_items_date';
      
   // Исключаем из списка схожих материалов текущий элемент
   $element['type'] = 0;
   $element['name'] = 'information_items_table.information_items_id';
   $element['prefix'] = ' AND ';
   $element['if'] = '!=';
   $element['value'] = $item_id;
   $element['sufix']=" ";
   $property['select'][] = $element;

   $external_propertys = array();

   $GLOBALS['LA_InformationSystem']->ShowInformationSystem($InformationSystem_id, false, 'СписокСхожихСтатей', 10, 0, $external_propertys, $property);
}


Создаете XSL-шаблон, отвечающий за отображение списка схожих статей. В данном примере он называется "СписокСхожихСтатей". Его можно сделать, скопировав стандартный XSL-шаблон "СписокЭлементовИнфосистемы" и немного доработать его, чтобы получить необходимый вид отображения схожих статей.
#
Re: Показ схожих информационных элементов на основе меток
Я это прекрасно понял. Постараюсь более подробно объяснить.
По вашему примеру идет такой вывод:
--------------------------------
Статья.xsl
--------------------------------
полная статья
время
комментарии
.....
--------------------------------
--------------------------------
СписокСхожихСтатей.xsl
--------------------------------
Список Схожих Статей
--------------------------------

Мне нужно:
--------------------------------
Статья.xsl
--------------------------------
полная статья
Список Схожих Статей
время
комментарии
.....
--------------------------------

Варианты решения?
Skype:ferdinant1988 ICQ:311960596 E-mail: ferdinant@i.ua
#
Re: Показ схожих информационных элементов на основе меток
Уважаемые модераторы/верстальщики/программисты/специалисты по коду!
Куплю готовый (протестированный и рабочий) код для вывода в конце каждой статьи списка из 3-5 похожих статей (название статьи, миниатюра от статьи, первый абзац-описание статьи)

в этой ветке много чего написано, но я не прогер и код для меня как китайская грамота ((

куплю готовый (проверенный на работоспособность код) за 10$ (300 р).
пост оплата - вы присылает код, я ставлю его на сайт, проверяю. если все ок - перевожу деньги. Для связи ЛС или hplight@mail(точка)ru
#
Re: Показ схожих информационных элементов на основе меток
это описали для ИС, а для магазина как будет, кому-то может пригодится!
#
Re: Показ схожих информационных элементов на основе меток
Код рабочий и испытанный, спасибо, но не могли бы вы подсказать как реализовать данный функционал так чтобы данные элементы выводились не в одном узле т.е не в одной ИС, а например чтобы можно было выводить элементы с определенными метками  в другой ИС у которых совпадают метки, например в элементах ИС Статья вывести сопутствующие элементы из ИС Новости у которых метки совпадают, у Элемент (метка) ИС1 выводится так же Элемент (метка) ИС2 т.е  у двух разных элементов двух разных ИС метки одинаковые
Комплексная разработка веб-сайтов любого уровня сложности , делаю сайты на HOSTCMS
Модератор
#
Re: Показ схожих информационных элементов на основе меток
brave писал(а):
это описали для ИС, а для магазина как будет, кому-то может пригодится!


Код для магазина:

$oTag = & singleton('Tag');
$item_id = $GLOBALS['shop_item_path']['item'];
// Получаем массив тегов информационного элемента
$mas_tags  = $oTag->GetTagRelation(array('shop_items_catalog_item_id' => $item_id));

if (is_array($mas_tags) && count($mas_tags) > 0)
{
$param = array();
foreach($mas_tags as $key => $tag_row)
{
$param['tags'][] = $tag_row['tag_id'];
}
$param['current_group_id'] = false;
$param['items_order'] = 'DESC';
$param['items_field_order'] ='shop_items_catalog_date_time';
// Исключаем из списка схожих материалов текущий элемент
$element['type'] = 0;
$element['name'] = 'shop_items_catalog_item_id';
$element['prefix'] = ' AND ';
$element['if'] = '!=';
$element['value'] = $item_id;
$element['sufix']=" ";
$param['select'][] = $element;
$external_propertys = array();
$shop->ShowShop($current_shop_id, 'МагазинКаталогТоваровНаГлавнойСпецПред', $param, $external_propertys);
}
Вы только что начали читать предложение, чтение которого вы уже заканчиваете.
Модератор
#
Re: Показ схожих информационных элементов на основе меток
Tycoon,

В ShowInformationSystem() вместо переменной с id текущей ИС используйте явное указание id другой ИС.
Вы только что начали читать предложение, чтение которого вы уже заканчиваете.
#
Re: Показ схожих информационных элементов на основе меток
Вставляю код для магазина в ТДС Интернет-магазин. Ошибка следующая:
Ошибка выполнения запроса! - Column 'shop_items_catalog_item_id' in where clause is ambiguous
Предупреждение: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource в файле /***/httpdocs/modules/shop/shop.class.php (строка 23623)
Ошибка выполнения запроса! - Column 'shop_items_catalog_item_id' in where clause is ambiguous
http://www.aiventa.ru
#
Re: Показ схожих информационных элементов на основе меток
Добрый день, добавил ТДС инфо системы код:
    // Выводим элемент информационной системы
      $InformationSystem->ShowInformationSystemItem($item_id, $xsl_item, $external_propertys, $property);
   }
}

/* $item_id содержит идентификатор информационного элемента, для которого необходимо получить схожие */

$oTag = & singleton('Tag');
    
// Получаем массив тегов информационного элемента
$mas_tags  = $oTag->GetTagRelation(array('information_items_id' => $item_id));
    
if (is_array($mas_tags) && count($mas_tags) > 0)
{
    $property = array();

    foreach($mas_tags as $key => $tag_row)
    {
       $property['tags'][] = $tag_row['tag_id'];
    }

    $property['Order'] = 'DESC';
    $property['OrderField'] ='information_items_date';
      
    // Исключаем из списка схожих материалов текущий элемент
    $element['type'] = 0;
    $element['name'] = 'information_items_table.information_items_id';
    $element['prefix'] = ' AND ';
    $element['if'] = '!=';
    $element['value'] = $item_id;
    $element['sufix']=" ";
    $property['select'][] = $element;

    $external_propertys = array();

    $InformationSystem->ShowInformationSystem($InformationSystem_id, false, 'СхожиеСтатьи', 10, 0, $external_propertys, $property);
}


XSL-шаблон
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:output xmlns="http://www.w3.org/TR/xhtml1/strict" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" encoding="utf-8" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml"/>
   
   <!-- СписокЭлементовИнфосистемы -->
   
   <xsl:template match="/">
      <div style="clear: both"></div>
      
      <div style="margin:10px 20px 10px;"><hr /><xsl:apply-templates select="/document"/></div>
   </xsl:template>
   
   <xsl:template match="/document">
      
      <!-- Получаем ID родительской группы и записываем в переменную $parent_group_id -->
      <xsl:variable name="parent_group_id" select="blocks/parent_group_id"/>
      
      <!-- Если в находимся корне - выводим название информационной системы -->
      <xsl:if test="blocks/parent_group_id = 0">
         <h1>
            Похожие статьи
         </h1>
         
         <!-- Описание выводится при отсутствии фильтрации по тэгам -->
         <xsl:if test="count(blocks/selected_tags/tag) = 0 and blocks/items/current_page = 0">
            <xsl:value-of disable-output-escaping="yes" select="blocks/description"/>
         </xsl:if>
      </xsl:if>
      
      
      
      <!-- Обработка выбранных тэгов -->
      <xsl:if test="count(blocks/selected_tags/tag) = 1">
      <h2>Метка &#8212; <strong><xsl:value-of select="blocks/selected_tags/tag/tag_name" disable-output-escaping="yes" /></strong>.</h2>
         <p><xsl:value-of select="blocks/selected_tags/tag/tag_description" disable-output-escaping="yes" /></p>
      </xsl:if>
      
      <!-- Отображение подгрупп данной группы, только если подгруппы есть и не идет фильтра по меткам -->
      <xsl:if test="count(blocks/selected_tags/tag) = 0 and count(.//group[@parent_id=$parent_group_id]) &gt; 0">
         <ul>
            <xsl:apply-templates select=".//group[@parent_id=$parent_group_id]" mode="groups"/>
         </ul>
      </xsl:if>
      
      <!-- Отображение записи информационной системы -->
      
      <xsl:apply-templates select="blocks/items/item[item_status=1]"/>
      
      <div style="clear: both"></div>
      
   </xsl:template>
   
   
   
   
   <!-- Шаблон вывода информационного элемента -->
   <xsl:template match="blocks/items/item">
      
      <div>
         
         <!-- Дата время -->
         <span style="font-size:12px;">
            <xsl:value-of disable-output-escaping="yes" select="item_date"/>
         </span>&#xA0;
         
         <!-- Название -->
         
         <a href="{item_path}">
            <xsl:value-of disable-output-escaping="yes" select="item_name"/>
         </a>
         
         <div style="clear: both;"></div>
      </div>
   </xsl:template>
</xsl:stylesheet>


на сайте при "ВыводЕдиницыИнформационнойСистемы" все отлично показывает схожие новости по тегам, но при "СписокЭлементовИнфосистемы" после всех элементов выдает ошибку "Замечание: Undefined variable: item_id в файле /home/u21719/dmitryshishkin.com/www/hostcmsfiles/lib/lib_1/lib_1.php (строка 184)"

ссылка http://u21719.netangels.ru/info/news/

В чем может быть проблема, что править в ТДС, т.к. ссылается на нее
www.morozovpimnev.ru - создание, поддержка и продвижение сайтов | Наш канал https://asmp.su/channel
Авторизация