Перейти к содержанию
Dart990

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

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

Подскажите пожалуйста, какой есть рабочий модуль - облако тегов (не 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;
	}
}
?>

Поделиться сообщением


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

Заменил, теперь пишет - Notice: Array to string conversion in /home/***/***.com.ua/www/catalog/model/module/tagcloud.php on line 27.

Поделиться сообщением


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

все, конечно, просто, но не на столько же...

но лень...

Поделиться сообщением


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

:cry: , буду надеяться что лень когда то пройдет...   :-)

Поделиться сообщением


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

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

все работает

Поделиться сообщением


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

Скачивайте у меня 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 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.