Статистика для статей (новостей)

#
Статистика для статей (новостей)
Подскажите пожалуйста, каким образом можно считать общее количество просмотров элемента информационной системы (или статичного документа). Это нужно например для того, чтобы ранжировать статьи по популярности.
Модератор
#
Re: Статистика для статей (новостей)
необходимо создать дополнительное св-во и писать в него число просмотров (это для ИС), то же самое касается структуры.
На типовой динамической странице (или в макете для структуры) добавить счетчик, который будет увеличивать значение св-ва текущего документа (или инфоэлемента) на единицу.
API доступно в разделе документации.
#
Re: Статистика для статей (новостей)
Пожалуйста, уточните: что вы подразумеваете под "счетчиком"?
Если "счетчик" - это директива, которая при каждом запросе элемента просто-напросто увеличивает значение его свойства на 1, то это не очень хорошая идея.
Не ясно, как такая конструкция будет работать с кешированными страницами, как она будет учитывать поисковых ботов и перезагрузки одного и того же пользователя.

С другой стороны, изучение API класса   counter ясности не добавило...
Если можно для этой цели использовать класс counter, приведите, пожалуйста какой-нибудь пример
Модератор
#
Re: Статистика для статей (новостей)
Увеличивать на 1 придется, также придется где то хранить значение. Чтобы сортировать по нему, его хранить нужно в доп. св-ве. Можно хранить и в каком то другом месте и с какой то периодичностью переносить в доп. св-ва.
Модуль счетчика здесь не при чем.
#
Re: Статистика для статей (новостей)
Прошу прощения, но описание одного метода в API поставило меня в тупик.
Прошу уточнить:

GetPropertysInformationSystemItem( int $items_id, [int $information_system_id = 0] );

Возвращает
массив с данными о свойствах информационного элемента или false - в случае отсутствия дополнительных свойств у элементов данной информационной системы

А какой  массив возвращает ? По какому индексу потом орбящатся к нужному мне элементу массива?



Модератор
#
Re: Статистика для статей (новостей)
Попробуйте выполнить print_r() или var_dump() над результатом и посмотрите, что возвращается.
Модератор
#
Re: Статистика для статей (новостей)
Привожу фрагмент рабочее примера, вставленный код выделен жирным:


/* Метод определения идентификатора информационной группы и идентификатора информационного элемента по значению URI */
   $result = $GLOBALS['LA_InformationSystem']->GetInformationFromPath($InformationSystem_id);

   if($result != false)
   {
      /* Вывод списка */
      if($result['item'] == false)
      {
         /* Отображаем информационную систему */
         $GLOBALS['LA_InformationSystem']->ShowInformationSystem($InformationSystem_id, $result['group'], $xsl_list, $InformationResult['items_on_page'], $InformationResult['items_begin'], $external_propertys, $property);
      }
      else
      {
         /* Определяем идентификатор информационного элемента */
         $item_id = $GLOBALS['LA_InformationSystem']->GetIdInformationItem($result['item'], $result['group']);

         // Если показ элемента - увеличиваем число просмотров

         // Идентификатор свойства со значением числа просмотров
         $property_id = to_int($GLOBALS['LA']['CountField']);

         if ($property_id != 0)
         {
            $property_array = $GLOBALS['LA_InformationSystem']->GetPropertysInformationSystemItem($item_id, $InformationSystem_id);

            $last_value = 0;

            # Перебираем список свойств, чтобы узнать текущее значение
            foreach ($property_array as $key => $value)
            {
               if ($value['information_propertys_id'] == $property_id) // $property_id - ID доп св-ва
               {
                  $last_value = to_int($value['information_propertys_items_value']);
                  break;
               }
            }

            $type = 0; // Вставка свойства

            # УВЕЛИЧИВАЕМ ЧИСЛО ПРОСМОТРОВ
            $GLOBALS['LA_InformationSystem']->InsertInformationPropertysItems($type, 0, $property_id, $item_id, $last_value+1);
         }
         // конец увеличения числа просмотров


         if (to_bool($GLOBALS['LA']['ShowComments']))
         {
            $external_propertys['show_comments'] = '1';
         }
         else
         {
            $external_propertys['show_comments'] = '0';
         }

         /* Выводим элемент информационной системы */
         $GLOBALS['LA_InformationSystem']->ShowInformationSystemItem($item_id, $xsl_item, $external_propertys);
      }
   }
#
Re: Статистика для статей (новостей)
Спасибо большое.
Помогли
Модератор
#
Re: Статистика для статей (новостей)
пожалуйста
#
Re: Статистика для статей (новостей)
Поясните пожалуйста.
Если я создал дополнительное свойство для элемента раздела новости (тег prosm), то что я должен поставить на место $property_id ?

Где будет отображаться количество просмотров? Или как его вывести?
Авторизация