Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Облако тегов (Tag сloud) для 1.5.6.4


Dart990

Recommended Posts

Подскажите пожалуйста, какой есть рабочий модуль - облако тегов (не 3D, без Flash), для openacrt 1.5.6.4. Перепробовал разные, ни один нормально не работает, все устаревшие, то ошибки выдают, то каких то полей в базе им не хватает.

Надіслати
Поділитися на інших сайтах


так исправляй ошибки и/или добавляй столбцы.

неужели так сложно? :-)

Если б я знал как :cry: ,

Установил самый популярный на данном форуме - Модуль Облако тегов (TagCloud) для OpenCart 1.5.x 2.0

Выдает ошибку которая ниже, нужно только столбец добавить? плиз хелп, как это сделать ?

Fatal error: Uncaught exception 'ErrorException' with message 'Error: Table '***_db.product_tag' doesn't exist<br />Error No: 1146<br />SELECT DISTINCT tag FROM product_tag pt join product_to_category p2c on p2c.product_id = pt.product_id WHERE p2c.category_id = 59 and language_id=2 order by rand() LIMIT 1' in /home/***/***.com.ua/www/system/database/mysqli.php:41 Stack trace: #0 /home/***/***.com.ua/www/vqmod/vqcache/vq2-system_library_db.php(20): DBMySQLi->query('SELECT DISTINCT...') #1 /home/***/***.com.ua/www/catalog/model/module/tagcloud.php(19): DB->query('SELECT DISTINCT...') #2 /home/***/***.com.ua/www/catalog/controller/module/tagcloud.php(40): ModelModuleTagCloud->getRandomTags('1', 9, 25, NULL) #3 /home/***/***.com.ua/www/vqmod/vqcache/vq2-system_engine_controller.php(43): ControllerModuleTagCloud->index(Array) #4 /home/***/***.com.ua/www/catalog/controller/common/column_left.php(72): Controller->getChild('module/tagcloud', Array) #5 /home/***/***.com in /home/***/***.com.ua/www/system/database/mysqli.php on line 41
Надіслати
Поділитися на інших сайтах


надо запрос в модели переписать.

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

Надіслати
Поділитися на інших сайтах

надо запрос в модели переписать.

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

Что то ещё более сложное чем просто столбец добавить  :o , как же это можно сделать ?)

Надіслати
Поділитися на інших сайтах


catalog/model/module/tagcloud.php
 
Везде где product_tag изменить на product_description?

<?php
//-----------------------------------------------------
// based on TagCloud Created by villagedefrance                   
//-----------------------------------------------------

class ModelModuleTagCloud extends Model {

	public function getRandomTags($limit = 5, $min_font_size = 9, $max_font_size = 25, $font_weight) {
		$product_id	= array();
		$names			= array();
		$totals			= array();
		$tags			= array();
		$tagcloud		= false;
		
		if (isset($this->request->get['path'])) {
			$path = explode('_', $this->request->get['path']);
			
			$category_id = end($path);
			$tagNameQuery = $this->db->query("SELECT DISTINCT tag FROM " . DB_PREFIX . "product_tag pt join " . DB_PREFIX . "product_to_category p2c on p2c.product_id = pt.product_id  WHERE p2c.category_id = " .$category_id. " and language_id=" . (int)$this->config->get('config_language_id') . " order by rand() LIMIT " . (int)$limit);

		}
		else
			$tagNameQuery = $this->db->query("SELECT DISTINCT tag FROM " . DB_PREFIX . "product_tag WHERE language_id=" . (int)$this->config->get('config_language_id') . " order by rand() LIMIT " . (int)$limit);
		
		if (count($tagNameQuery->rows) > 0) {
			foreach ($tagNameQuery->rows as $row) {
				$tagCountQuery = $this->db->query("SELECT * FROM " . DB_PREFIX . "product_tag WHERE product_id = '" . $product_id . "' AND language_id = '" . (int)$this->config->get('config_language_id') . "'");
				$names[]	= $row['tag'];
				$totals[]	= $tagCountQuery->num_rows;
			}

			$tags = array_combine($names, $totals);

			$tagcloud = $this->generateTagCloud($tags, true, $min_font_size, $max_font_size, $font_weight);
		}
		
		return $tagcloud;
	}

	private function generateTagCloud($tags, $resize = true, $min_font_size = 9, $max_font_size = 25, $font_weight) {

		if ($resize == true) {
			arsort($tags);

			$max_qty = max(array_values($tags));
			$min_qty = min(array_values($tags));

			$spread = $max_qty - $min_qty;

			if ($spread == 0) {
				$spread = 1;
			}

			$step = ((int)$max_font_size - (int)$min_font_size) / ($spread);

			$cloud = array();

			foreach ($tags as $key => $value) {
				$size=rand((int)$min_font_size,(int)$max_font_size);

				$pieces = explode(",",$key);
				shuffle($pieces);
				$key = $pieces[0];
			
				$cloud[] = '<a href="' . $this->url->link('product/search', 'filter_tag=' . $key) . '" style="text-decoration:none;font-size:' . $size . 'px;font-weight:' . $font_weight . ';" title="">' . $key . '</a> ';
			}
			
		} else {
		
			foreach ($tags as $key => $value) {

				$pieces = explode(",",$key);
				shuffle($pieces);
				$key = $pieces[0];

				$cloud[] = '<a href="' . $this->url->link('product/search', 'filter_tag=' . $key) . '" style="text-decoration:none;" title="">' . $key . '</a> ';
			}
		}

		$tagcloud = '';

		shuffle($cloud);

		for ($x = 0; $x < count($cloud); $x++) {
			$tagcloud .= $cloud[$x];
		}

		return $tagcloud;
	}
}
?>
Надіслати
Поділитися на інших сайтах


Скачивайте у меня tag_cloud_v2.0 (opencart_1.5.4.1).zip

все работает

Скачал эту версию, облако появилось, но в шапке сайта пишет - Notice: Array to string conversion in /home/***/***.com.ua/www/catalog/model/module/tagcloud.php on line 27, и если нажимать на теги то показывает что ничего не найдено.

 

Проверил на двух разных сайтах с opencart 1.5.6.4, тоже самое.

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.