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

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

Julius123 M
Julius123 M
Репутация: 20
Сообщения: 225
Зарегистрирован: 05.02.2017
С нами: 7 лет 1 месяц

Сообщение #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
Возраст: 45
Репутация: 10
Сообщения: 128
Зарегистрирован: 31.01.2016
С нами: 8 лет 1 месяц

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

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

pikasso M
pikasso M
Возраст: 45
Репутация: 10
Сообщения: 128
Зарегистрирован: 31.01.2016
С нами: 8 лет 1 месяц

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

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

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

wisma
wisma
Репутация: 1
Сообщения: 18
Зарегистрирован: 12.12.2017
С нами: 6 лет 3 месяца

Сообщение #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
Репутация: 146
Сообщения: 1854
Зарегистрирован: 03.12.2015
С нами: 8 лет 3 месяца
Skype

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

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

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

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

Julius123 M
Julius123 M
Репутация: 20
Сообщения: 225
Зарегистрирован: 05.02.2017
С нами: 7 лет 1 месяц

Сообщение #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
Репутация: 146
Сообщения: 1854
Зарегистрирован: 03.12.2015
С нами: 8 лет 3 месяца
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
Возраст: 45
Репутация: 10
Сообщения: 128
Зарегистрирован: 31.01.2016
С нами: 8 лет 1 месяц

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

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

Julius123 M
Julius123 M
Репутация: 20
Сообщения: 225
Зарегистрирован: 05.02.2017
С нами: 7 лет 1 месяц

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

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

pikasso M
pikasso M
Возраст: 45
Репутация: 10
Сообщения: 128
Зарегистрирован: 31.01.2016
С нами: 8 лет 1 месяц

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

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

korshunov
korshunov
Репутация: 146
Сообщения: 1854
Зарегистрирован: 03.12.2015
С нами: 8 лет 3 месяца
Skype

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

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

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

pikasso M
pikasso M
Возраст: 45
Репутация: 10
Сообщения: 128
Зарегистрирован: 31.01.2016
С нами: 8 лет 1 месяц

Сообщение #12 pikasso » 07.11.2018, 20:28

Надеюсь все же будет решение ...для более свежих версий...

Elanlar
Elanlar
Репутация: 9
Сообщения: 44
Зарегистрирован: 16.04.2018
С нами: 5 лет 11 месяцев

Сообщение #13 Elanlar » 12.11.2018, 22:20

в api/products.php выборку делаем так

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

                p.views as views,
кроме этого я ещё добавил и такой кусок

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

                case 'views':
                    $order = 'p.views ASC';
                    break;
                case 'views_desc':
                    $order = 'p.views DESC';
                    break;

работает как часы

pikasso M
pikasso M
Возраст: 45
Репутация: 10
Сообщения: 128
Зарегистрирован: 31.01.2016
С нами: 8 лет 1 месяц

Сообщение #14 pikasso » 13.11.2018, 16:48

Elanlar писал(а):в api/products.php выборку делаем так

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

                p.views as views,
кроме этого я ещё добавил и такой кусок

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

                case 'views':
                    $order = 'p.views ASC';
                    break;
                case 'views_desc':
                    $order = 'p.views DESC';
                    break;

работает как часы
Это как дополнение к верхней инструкции?

Elanlar
Elanlar
Репутация: 9
Сообщения: 44
Зарегистрирован: 16.04.2018
С нами: 5 лет 11 месяцев

Сообщение #15 Elanlar » 15.11.2018, 20:28

Да, верхняя инструкция для Симплы, но для OkayCMS надо немножко по другому.

pikasso M
pikasso M
Возраст: 45
Репутация: 10
Сообщения: 128
Зарегистрирован: 31.01.2016
С нами: 8 лет 1 месяц

Сообщение #16 pikasso » 15.11.2018, 20:55

Elanlar писал(а):Да, верхняя инструкция для Симплы, но для OkayCMS надо немножко по другому.
Есть подсказка?

korshunov
korshunov
Репутация: 146
Сообщения: 1854
Зарегистрирован: 03.12.2015
С нами: 8 лет 3 месяца
Skype

Сообщение #17 korshunov » 16.11.2018, 07:31

pikasso писал(а):Есть подсказка?

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

Elanlar
Elanlar
Репутация: 9
Сообщения: 44
Зарегистрирован: 16.04.2018
С нами: 5 лет 11 месяцев

Сообщение #18 Elanlar » 16.11.2018, 15:37

pikasso писал(а):Есть подсказка?
наверху все показано, а Я подсказал как это в OkayCMS-е должен быть. Какая ещё подсказка нужна?

MotoR4ik
MotoR4ik
Репутация: 4
Сообщения: 14
Зарегистрирован: 06.08.2019
С нами: 4 года 7 месяцев

Сообщение #19 MotoR4ik » 06.08.2019, 13:10

так ни у кого и нету готового решения?

Добавлено спустя 1 час 7 минут:
Вроде все сделал, но почему то не работает добавления новых просмотров

korshunov
korshunov
Репутация: 146
Сообщения: 1854
Зарегистрирован: 03.12.2015
С нами: 8 лет 3 месяца
Skype

Сообщение #20 korshunov » 06.08.2019, 15:47

MotoR4ik писал(а):Вроде все сделал, но почему то не работает добавления новых просмотров

Возможно, проверяете под админом, а в этом случае специально не увеличивается счетчик...


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

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


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

   

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

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

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