Количество просмотров товара

Правила раздела: faq.php?mode=okay

Julius123
Julius123
Репутация: 18
Сообщения: 173
Зарегистрирован: 05.02.2017
С нами: 1 год 6 месяцев

Сообщение #1 Julius123 » 18.04.2017, 16:28

api/Products.php

в функции get_products ищем запрос

Код: Выделить всё

$query = "SELECT
p.id,
p.url,
p.brand_id,
p.name,
p.annotation,
p.body,
p.position,
p.created as created,
p.visible,
p.featured,
p.meta_title,
p.meta_keywords,
p.meta_description,
b.name as brand,
b.url as brand_url
FROM __products p ......


добавляем в SELECT выбор еще одного поля p.views и того выходит

Код: Выделить всё

$query = "SELECT
p.id,
p.url,
p.brand_id,
p.name,
p.annotation,
p.body,
p.position,
p.created as created,
p.visible,
p.featured,
p.meta_title,
p.meta_keywords,
p.meta_description,
p.views,
b.name as brand,
b.url as brand_url
FROM __products p ......


в функции get_product тоже правим запрос

Код: Выделить всё

$query = $this->db->placehold("SELECT DISTINCT
p.id,
p.url,
p.brand_id,
p.name,
p.annotation,
p.body,
p.position,
p.created as created,
p.visible,
p.featured,
p.meta_title,
p.meta_keywords,
p.meta_description


На

Код: Выделить всё

$query = $this->db->placehold("SELECT DISTINCT
p.id,
p.url,
p.brand_id,
p.name,
p.annotation,
p.body,
p.position,
p.created as created,
p.visible,
p.featured,
p.meta_title,
p.meta_keywords,
p.meta_description,
p.views


также в этом классе добавляем функцию

Код: Выделить всё

* Функция вносит +1 к просмотру товара
/**
* @param $id
* @retval object
*/
public function update_views($id)
{
$this->db->query("UPDATE __products SET views=views+1 WHERE id=?", $id);
return true;
}


В phpmyadmin выполняем запрос к БД

Код: Выделить всё

ALTER TABLE `s_products` ADD `views` INT( 10 ) UNSIGNED NOT NULL DEFAULT '0' AFTER `featured`


правим view/ProductView.php

После

Код: Выделить всё

// Выбираем товар из базы
$product = $this->products->get_product((string)$product_url);
if(empty($product) || (!$product->visible && empty($_SESSION['admin'])))
return false;
}


добавляем

Код: Выделить всё

if($product->visible && empty($_SESSION['admin']))
$this->products->update_views($product->id);


Правки в шаблоне:

product.tpl и products.tpl

в удобном для Вас месте добавляем

Код: Выделить всё

<small>Просмотров: {$product->views}</small>

pikasso M
pikasso M
Возраст: 39
Репутация: 8
Сообщения: 94
Зарегистрирован: 31.01.2016
С нами: 2 года 6 месяцев

Сообщение #2 pikasso » 07.01.2018, 15:29

Как я понимаю это для Первой ветки Окай ?
так как во второй ветке я не нашел схожих кусков кода.

pikasso M
pikasso M
Возраст: 39
Репутация: 8
Сообщения: 94
Зарегистрирован: 31.01.2016
С нами: 2 года 6 месяцев

Сообщение #3 pikasso » 07.03.2018, 20:32

Ребята подскажите...Как я понимаю какая то не совместимость...3 раза делал не вышло.

Добавлено спустя 27 секунд:
не нашел нужных кусков кода

wisma
wisma
Репутация: 0
Сообщения: 14
Зарегистрирован: 12.12.2017
С нами: 8 месяцев 8 дней

Сообщение #4 wisma » 07.03.2018, 22:44

Julius123 писал(а):В phpmyadmin выполняем запрос к БД

КОД: ВЫДЕЛИТЬ ВСЁ

ALTER TABLE `s_products` ADD `views` INT( 10 ) UNSIGNED NOT NULL DEFAULT '0' AFTER `featured`
Ну как минимум запрос у вас не может пройти ) это от Симплы, но если порытся по файлам можно понять интуитивно куда добавить по инструкции..

korshunov
korshunov
Репутация: 71
Сообщения: 751
Зарегистрирован: 03.12.2015
С нами: 2 года 8 месяцев
Skype

Сообщение #5 korshunov » 08.03.2018, 06:25

По-моему, это совпадает один-к одному с разработкой для Simpla
http://forum.simplacms.ru/topic/1086-количество-просмотров-товаров/
аж от 2012 года.

Это не будет работать даже в версии 1.х.х, так как там код существенно другой. В частности, запросы в OkayCMS не такие.

Если хотите, чтоб это работало, надо не бездумно копировать, а перерабатывать для своей ситуации, хоть немного понимая смысл...

Julius123
Julius123
Репутация: 18
Сообщения: 173
Зарегистрирован: 05.02.2017
С нами: 1 год 6 месяцев

Сообщение #6 Julius123 » 09.03.2018, 10:56

korshunov писал(а):По-моему, это совпадает один-к одному с разработкой для Simpla
http://forum.simplacms.ru/topic/1086-количество-просмотров-товаров/
аж от 2012 года.

Это не будет работать даже в версии 1.х.х, так как там код существенно другой. В частности, запросы в OkayCMS не такие.

Если хотите, чтоб это работало, надо не бездумно копировать, а перерабатывать для своей ситуации, хоть немного понимая смысл...

Как раз код и был для первой версии, для второй версии нужно поменять запрос вместо s_products поменять на ok_products и все будет работать, проверено на последней версии! Скриншот: http://prntscr.com/iounuw

korshunov
korshunov
Репутация: 71
Сообщения: 751
Зарегистрирован: 03.12.2015
С нами: 2 года 8 месяцев
Skype

Сообщение #7 korshunov » 09.03.2018, 11:35

Julius123 писал(а):Как раз код и был для первой версии

Не знаю, что Вы имеете в виду "для первой версии", но для версии 1.2.4
1. в api/Products.php НЕТ запроса, который Вы пишете в самом начале,
2. список полей не такой,
3. в запросе должно быть $lang_sql->fields, в Вашей инструкции этим и не пахнет.

В версии 1.1.10 то же самое.
Не проверял полностью, но, по-моему, для прочих версий 1.х.х те же замечания справедливы...

pikasso M
pikasso M
Возраст: 39
Репутация: 8
Сообщения: 94
Зарегистрирован: 31.01.2016
С нами: 2 года 6 месяцев

Сообщение #8 pikasso » 23.03.2018, 12:26

В общем на этом все и заглохло.... печалька
а по скрину как то не логично...заходить в редактирование товара , что бы увидеть количество просмотров....

Julius123
Julius123
Репутация: 18
Сообщения: 173
Зарегистрирован: 05.02.2017
С нами: 1 год 6 месяцев

Сообщение #9 Julius123 » 23.03.2018, 12:28

pikasso писал(а):В общем на этом все и заглохло.... печалька
а по скрину как то не логично...заходить в редактирование товара , что бы увидеть количество просмотров....
Постараюсь в скором времени выложить актуальную инструкцию, на скриншоте вывод кол-во просмотров в админке для админа, чтобы админ видел в админке тоже, в карточке товара на сайте тоже отображается

pikasso M
pikasso M
Возраст: 39
Репутация: 8
Сообщения: 94
Зарегистрирован: 31.01.2016
С нами: 2 года 6 месяцев

Сообщение #10 pikasso » 25.03.2018, 07:02

Julius123 писал(а):
pikasso писал(а):В общем на этом все и заглохло.... печалька
а по скрину как то не логично...заходить в редактирование товара , что бы увидеть количество просмотров....
Постараюсь в скором времени выложить актуальную инструкцию, на скриншоте вывод кол-во просмотров в админке для админа, чтобы админ видел в админке тоже, в карточке товара на сайте тоже отображается
Было бы великолепно. )))

korshunov
korshunov
Репутация: 71
Сообщения: 751
Зарегистрирован: 03.12.2015
С нами: 2 года 8 месяцев
Skype

Сообщение #11 korshunov » 14.05.2018, 06:12

Julius123 писал(а):Постараюсь в скором времени выложить актуальную инструкцию...

Есть ли надежда на результат?


Название раздела: Полезные решения для OkayCMS
Правила раздела: faq.php?mode=okay

Быстрый ответ


Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
Код подтверждения

   

Вернуться в «Полезные решения для OkayCMS»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 1 гость