Новосибирск +7(983)

По всем вопросам :

Телеграм : @radgura

Точный рейтинг материалов k2 (2.6.9)

Заказать доработку
Joomla 3.x

Стоимость 500


@radgura.ru
Адриена Лежена
63089
Новосибирск
Адриена Лежена
+7(983)
3067856
Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.

Точный рейтинг материалов k2 2.6.9

Вы можете Заказать доработку 500руб. RUB

Цель данной модификации - сделать точный рейтинг материалов, по месяцам,датам и даже времени.

Стандартная функция подсчета кликов ведет только кол-во кликов за все время, но в одном из проектов нам понадобилась статистика просмотров в разрезе месяца.

Что нам понадобится:

1.Создаем таблицу #__k2_hits:

CREATE TABLE `#__k2_hits` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`k2_id` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
`insert_date` datetime COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

2.Добавляем функцию, которая сохранит данные просмотра. Редактируем файл:

/public_html/components/com_k2/models/item.php

Дорабатываем функцию hit:

function hit($id)
{$row = JTable::getInstance('K2Item', 'Table');
$row->hit($id);
$db = JFactory::getDBO();
$query = "insert into #__k2_hits(k2_id,insert_date,type) values(".$id.",'".date("Y-m-d H:i:s")."','items');";
$db->setQuery($query);
$db->query();
}

3.Добавляем функцию обнуления рейтинга:

/public_html/administrator/components/com_k2/models/item.php

Обновляем функцию resetHits на :

function resetHits()
{
$mainframe = JFactory::getApplication();
$id = JRequest::getInt('id');
$db = JFactory::getDBO();
$query = "UPDATE #__k2_items SET hits=0 WHERE id={$id}";
$db->setQuery($query);
$db->query();
$query = "delete from #__k2_hits where k2_id={$id};";
$db->setQuery($query);
$db->query();
if ($mainframe->isAdmin())
$url = 'index.php?option=com_k2&view=item&cid='.$id;
else
$url = 'index.php?option=com_k2&view=item&task=edit&cid='.$id.'&tmpl=component';
$mainframe->enqueueMessage(JText::_('K2_SUCCESSFULLY_RESET_ITEM_HITS'));
$mainframe->redirect($url);
}

4. Выводим статистику в административной части

 Самый простой способ - вывести построчно SQL запрос на одной из страниц:

$db = JFactory::getDbo();?>
<h1 id="stat_header">Самый популярный товар топ 20 </h1>
<table class="table table-striped" id="table_stat_long">
<tbody>
<tr id="table_header">
<td>Товар</td>
<td>Просмотры</td>
<td>% всего</td>
<td>Продаж</td>
</tr>
<?php
$db->setQuery('select k2h.k2_id,k2i.title,count(k2h.k2_id) as k2hits,count(k2h.k2_id)*100/((select count(*) from Yoo_k2_hits)) as total_proc,(select count(*) from #__k2store_orderitems where product_id=k2h.k2_id) as orders from #__k2_hits k2h,#__k2_items k2i where k2i.id=k2h.k2_id GROUP BY k2h.k2_id order by k2hits desc limit 20');
$res_item = $db->loadObjectList();
foreach ( $res_item as $row ) {
echo '<tr><td id="table_title">'.$row->title.'</td><td>'.$row->k2hits.'</td><td>'.$row->total_proc.'</td><td>'.$row->orders.'</td></tr>';
}?>
</tbody>
</table>

Комментарии (0)

Здесь ещё нет оставленных комментариев.

Оставьте свой комментарий

  1. Добавление комментария от гостя.
Вложения (0 / 3)
Share Your Location

Как с нами связаться

По всем вопросам пишите  

Телеграм: @radgura

OnLine заказ

Отправить сообщение

Нажимая на кнопку «Отправить сообщение», я соглашаюсь:
* с условиями публичной оферты
* обработку моих персональных данных


RAD компоненты

Please publish modules in offcanvas position.