Перейти к содержанию
Официальный форум поддержки Simpla

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


Рекомендуемые сообщения

  • 1 месяц спустя...
  • Ответов 52
  • Дата создания
  • Последний ответ

Лучшие авторы в теме

Лучшие авторы в теме

>> поле emeil в комментариях
я выкладывал бесплатное решение, пользуйтесь поиском ;)

Ссылка на сообщение
Поделиться на другие сайты

))) все абсолютно также или есть какието ньюансы с БД? какие файлы редактировать? api/Products.php и view/ProductView.php уже не подойдут

Ссылка на сообщение
Поделиться на другие сайты

api/blog.php view/blogview.php не? вы бы хоть заглянули в структуру симплы перед тем как задавать такие вопросы ))

Ссылка на сообщение
Поделиться на другие сайты

после загрузки запроса чего то вылезла такая ошибка
http://joxi.ru/XadNUdg5CbDzWMYQz-c
Warning: Unknown column 'DISTINCTp.id' in 'field list' [sELECT DISTINCTp.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 FROM s_products AS p LEFT JOIN s_brands b ON p.brand_id = b.id WHERE p.url = 'NWJ-148902' GROUP BY p.id LIMIT 1] in /home/a3534044/public_html/api/Database.php on line 105

Warning: Cannot modify header information - headers already sent by (output started at /home/a3534044/public_html/api/Database.php:105) in /home/a3534044/public_html/index.php on line 40



и пропали все url у товаров


что может быть ?

Ссылка на сообщение
Поделиться на другие сайты
  • 2 недели спустя...

Dj_Amulet, Вы наверное, в Хроме залогинены как админ, вот поэтому и не плюсует, там это в условиях прописано, мол админа в просмотрах не считать! У меня все работает.

Ссылка на сообщение
Поделиться на другие сайты
  • 9 месяцев спустя...

Делал по аналогии с блогом статей, но выдает ошибку

 

Fatal error: Call to a member function update_views() on a non-object in /..http/view/BlogView.php

:(

когда захожу под админм, ошибки нет, но подсчета нет :)

Ссылка на сообщение
Поделиться на другие сайты
  • 2 года спустя...

после загрузки запроса чего то вылезла такая ошибка

http://joxi.ru/XadNUdg5CbDzWMYQz-c

Warning: Unknown column 'DISTINCTp.id' in 'field list' [sELECT DISTINCTp.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 FROM s_products AS p LEFT JOIN s_brands b ON p.brand_id = b.id WHERE p.url = 'NWJ-148902' GROUP BY p.id LIMIT 1] in /home/a3534044/public_html/api/Database.php on line 105

 

Warning: Cannot modify header information - headers already sent by (output started at /home/a3534044/public_html/api/Database.php:105) in /home/a3534044/public_html/index.php on line 40

 

 

 

и пропали все url у товаров

 

 

что может быть ?

Запрос к базе зделай!

Ссылка на сообщение
Поделиться на другие сайты

Gass509, обращайте внимание на даты. Довольно простой вопрос, на который Вы отвечаете, задан более ТРЕХ лет назад. Думаете, он еще актуален и автору вопроса пригодится Ваш ответ?

Ссылка на сообщение
Поделиться на другие сайты
  • 2 месяца спустя...

Если не хотите считать количесво просмотров одного человека при каждом обновлении страницы, а только повторный просмотр по истечении определеного времени, можно записать в cookies уже просмотренные товары. Знаю что дублируется кукис browsed_products, но использовать не получилось из за разницы в expire time.

 

в view\ProductView.php после:

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

Добавить

if(!empty($_COOKIE['products_viewed'])){
	$products_viewed = explode(',', $_COOKIE['products_viewed']);
	$product_viewed = in_array($product->id, $products_viewed);
	}
// Добавим текущий товар
$products_viewed[] = $product->id;
$cookie_val = implode(',', $products_viewed);
setcookie("products_viewed", $cookie_val, time() + (3600 * 6), "/");
			
if($product->visible && empty($_SESSION['admin']) && !$product_viewed)
$this->products->update_views($product->id);

В итоге повторный просмотр засчитается только через 6 часов отсутствия на сайте.

Ссылка на сообщение
Поделиться на другие сайты

В итоге, если посетитель зайдет впервые и просмотрит 20 товаров, то просмотр будет зафиксирован только для первого, а остальные просмотры учтены не будут.

Ссылка на сообщение
Поделиться на другие сайты

В итоге, если посетитель зайдет впервые и просмотрит 20 товаров, то просмотр будет зафиксирован только для первого, а остальные просмотры учтены не будут.

пересмотри код, все нормально считается.

Ссылка на сообщение
Поделиться на другие сайты

Да, в этом случае считается правильно.

 

Если перезагрузить несколько раз страницу с товаров ID=45087, то в $_COOKIE['products_viewed']  записывается

"45087,45087,45087,45087,45087".  Это нерационально и к тому же при активном просмотре сайта может быстро исчерпаться лимит на куки.

 

Если пользователь откроет товар1, затем через 4 часа - товар2, затем еще через 4 часа - товар1,  то счетчик на товаре1 сработает лишь в первый раз. Так и планировалось?

Ссылка на сообщение
Поделиться на другие сайты

Да, в этом случае считается правильно.

 

Если перезагрузить несколько раз страницу с товаров ID=45087, то в $_COOKIE['products_viewed']  записывается

"45087,45087,45087,45087,45087".  Это нерационально и к тому же при активном просмотре сайта может быстро исчерпаться лимит на куки.

 

Если пользователь откроет товар1, затем через 4 часа - товар2, затем еще через 4 часа - товар1,  то счетчик на товаре1 сработает лишь в первый раз. Так и планировалось?

 

вот  код который повторно не добавляет товар в куки

 

в view\ProductView.php после:

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

 

if(!empty($_COOKIE['products_viewed'])){
	$products_viewed = explode(',', $_COOKIE['products_viewed']);
	$product_viewed = in_array($product->id, $products_viewed);
}
// Добавим текущий товар
if(!$product_viewed)
{
 $products_viewed[] = $product->id;
 $cookie_val = implode(',', $products_viewed);
 setcookie("products_viewed", $cookie_val, time() + (3600 * 6), "/");
 if($product->visible && empty($_SESSION['admin']) && !$product_viewed)
 $this->products->update_views($product->id);
}
Ссылка на сообщение
Поделиться на другие сайты
  • 5 месяцев спустя...

Пробовал сделать по аналогии чтобы считать количество купленных товаров но ничего не получилось, либо не добавляет +1 либо сыпятся ошибки, чтобы поле buy в таблице s_products увеличивал на 1 пи заказе товара.

Подскажите как правильно реализовать? Хочу выводить на странице с товаром сколько человек уже купило этот товар

Изменено пользователем Julius123
Ссылка на сообщение
Поделиться на другие сайты
  • 8 месяцев спустя...

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...