[Help] Облако Тегов для вБюллетеня

Тема в разделе "vBulletin", создана пользователем alexgolovin, 2 апр 2009.

Статус темы:
Закрыта.
  1. alexgolovin

    alexgolovin Создатель

    Регистр.:
    16 мар 2009
    Сообщения:
    26
    Симпатии:
    4
    друзья подскажите нормально работающее облако тегов для воблы, которая будет работать на 3.6.х а то пробовал ставить от 3.7.х не хочет :(
    Выдает Вы знаете - всё правильно поставил, но не пашет :(
    Ошибка базы данных в vBulletin 3.6.4:

    Invalid SQL:
    SELECT
    tagid,tagtext
    FROM bor_tag;

    Ошибка MySQL : Table 'u31377.bor_tag' doesn't exist
    Номер ошибки : 1146
    Дата : Thursday, April 2nd 2009 @ 10:59:40 PM
    Скрипт : Перейти по ссылке моего форума
    Реферрер :
    IP адрес : 83.239.236.4
    Имя пользователя : admin
    Имя класса : vb_database
     
  2. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.175
    Симпатии:
    2.195
    К сожалению, не видел самого мода, но...

    скорее всего там был инсталятор или типо того... xml SQL-запросы вроде не делает.

    Так вот, видимо ты не выполнил запрос из инструкции или не выполнил install.php.

    У тебя бонально нет таблицы bor_tag
     
    alexgolovin нравится это.
  3. scream9

    scream9 Постоялец

    Регистр.:
    11 авг 2008
    Сообщения:
    137
    Симпатии:
    74
    alexgolovin
    mysql => create database u31377.bor_tag
     
    alexgolovin нравится это.
  4. z3rg

    z3rg

    Регистр.:
    2 фев 2007
    Сообщения:
    731
    Симпатии:
    336
    Я вобще делал себе вывод облако меток, там почти стандартными средствами можно сделать, могу выложить если нужно.
     
  5. NYU

    NYU Постоялец

    Регистр.:
    11 авг 2008
    Сообщения:
    149
    Симпатии:
    34
    вылаживай , интерестно посмотреть...)) жаль сразу не выложил(.
     
  6. z3rg

    z3rg

    Регистр.:
    2 фев 2007
    Сообщения:
    731
    Симпатии:
    336
    вот я делал так

    создаешь модуль

    Код:
    require_once(DIR . '/includes/functions_tag.php');
    
    $tags = fetch_tagcloud1('usage');
    в шаблон у меня в FORUMHOME вставляешь $tags в нужное место

    и создаешт файл в папке includes - functions_tag.php
    с этим кодом, это бралось из search.php, там чтото изменял еще но непомню уже, вобщем какая в попу разница если есть уже измененный.
    Код:
    <?php
    
    function fetch_tagcloud1($type = 'usage')
    {
    	global $vbulletin, $stylevar, $vbphrase, $show, $template_hook;
    
    	if ($vbulletin->options['tagcloud_usergroup'] > 0 AND !isset($vbulletin->usergroupcache[$vbulletin->options['tagcloud_usergroup']]))
    	{
    		// handle a usergroup being deleted: default to live permission checking
    		$vbulletin->options['tagcloud_usergroup'] = -1;
    	}
    
    	$cacheable = ($vbulletin->options['tagcloud_usergroup'] != -1);
    
    	if (!$cacheable)
    	{
    		$cloud = null;
    	}
    	else
    	{
    		switch ($type)
    		{
    			case 'search':
    				$cloud = $vbulletin->searchcloud;
    				break;
    
    			case 'usage':
    			default:
    				$cloud = $vbulletin->tagcloud;
    				break;
    		}
    	}
    
    	if (!is_array($cloud) OR $cloud['dateline'] < (TIMENOW - (60 * $vbulletin->options['tagcloud_cachetime'])))
    	{
    		if ($type == 'search')
    		{
    			$tags_result = $vbulletin->db->query_read_slave("
    				SELECT tagsearch.tagid, tag.tagtext, COUNT(*) AS searchcount
    				FROM " . TABLE_PREFIX . "tagsearch AS tagsearch
    				INNER JOIN " . TABLE_PREFIX . "tag AS tag ON (tagsearch.tagid = tag.tagid)
    				" . ($vbulletin->options['tagcloud_searchhistory'] ?
    					"WHERE tagsearch.dateline > " . (TIMENOW - (60 * 60 * 24 * $vbulletin->options['tagcloud_searchhistory'])) :
    					'') . "
    				GROUP BY tagsearch.tagid, tag.tagtext
    				ORDER BY searchcount DESC
    				LIMIT " . $vbulletin->options['tagcloud_tags']
    			);
    		}
    		else
    		{
    			if (!$vbulletin->options['tagcloud_usergroup'])
    			{
    				$perm_limit = false;
    			}
    			else
    			{
    				$forums = array();
    				$perm_limit = true;
    
    				foreach ($vbulletin->forumcache AS $forumid => $forum)
    				{
    					// -1 for live permission checking
    					$perm_array = ($vbulletin->options['tagcloud_usergroup'] == -1
    						? $vbulletin->userinfo['forumpermissions']["$forumid"]
    						: $forum['permissions'][$vbulletin->options['tagcloud_usergroup']]
    					);
    
    					if ($perm_array & $vbulletin->bf_ugp_forumpermissions['canview']
    						AND $perm_array & $vbulletin->bf_ugp_forumpermissions['canviewthreads']
    						AND $perm_array & $vbulletin->bf_ugp_forumpermissions['canviewothers']
    					)
    					{
    						$forums[] = intval($forumid);
    					}
    
    				}
    			}
    
    			if (!$perm_limit OR $forums)
    			{
    				$tags_result = $vbulletin->db->query_read_slave("
    					SELECT tagthread.tagid, tag.tagtext, COUNT(*) AS searchcount
    					FROM " . TABLE_PREFIX . "tagthread AS tagthread
    					INNER JOIN " . TABLE_PREFIX . "tag AS tag ON (tagthread.tagid = tag.tagid)
    					INNER JOIN " . TABLE_PREFIX . "thread AS thread ON (tagthread.threadid = thread.threadid)
    					WHERE thread.open <> 10
    						AND thread.visible = 1
    					" . ($perm_limit ? "AND thread.forumid IN (" . implode(',', $forums) . ")" : '') . "
    					" . ($vbulletin->options['tagcloud_usagehistory'] ?
    						"AND tagthread.dateline > " . (TIMENOW - (60 * 60 * 24 * $vbulletin->options['tagcloud_usagehistory'])) :
    						'') . "
    					GROUP BY tagthread.tagid, tag.tagtext
    					ORDER BY searchcount DESC
    					LIMIT " . $vbulletin->options['tagcloud_tags']
    				);
    			}
    		}
    
    		$total = 0;
    		$count = 0;
    
    		if (!empty($tags_result))
    		{
    			$count = $vbulletin->db->num_rows($tags_result);
    
    			while ($currenttag = $vbulletin->db->fetch_array($tags_result))
    			{
    				$tags["$currenttag[tagtext]"] = $currenttag;
    				$total += $currenttag['searchcount'];
    			}
    			$vbulletin->db->free_result($tags_result);
    		}
    
    		$final_tags = array();
    
    		if ($count > 0)
    		{
    			// calculate the standard deviation
    			$mean = $total / $count;
    
    			$summation = 0;
    			foreach ($tags AS $tagtext => $tagvalue)
    			{
    				$summation += pow(($tagvalue['searchcount'] - $mean), 2);
    			}
    
    			$sd = sqrt($summation / $count);
    
    			uksort($tags, 'strnatcasecmp');
    
    			if ($sd)
    			{
    				$sdtags = array();
    				$lowestsds = 0;
    				$highestsds = 0;
    
    				// find the max and min standard deviations
    				foreach ($tags AS $tagtext => $currenttag)
    				{
    					$tags["$tagtext"]['deviation'] = $currenttag['searchcount'] - $mean;
    					$tags["$tagtext"]['sds'] = $tags["$tagtext"]['deviation'] / $sd;
    					$sdtags[] = $tags["$tagtext"];
    
    					if ($tags["$tagtext"]['sds'] < $lowestsds)
    					{
    						$lowestsds = $tags["$tagtext"]['sds'];
    					}
    
    					if ($tags["$tagtext"]['sds'] > $highestsds)
    					{
    						$highestsds = $tags["$tagtext"]['sds'];
    					}
    				}
    
    				$levels = $vbulletin->options['tagcloud_levels'];
    
    				foreach ($sdtags AS $thistag)
    				{
    					// normalize the std devs to 0 - 1, then map back to 1 - #levls
    					$thistag['level'] = round((($thistag['sds'] - $lowestsds) / ($highestsds - $lowestsds)) * ($levels - 1)) + 1;
    					$thistag['tagtext_url'] = urlencode(unhtmlspecialchars($thistag['tagtext']));
    
    					$final_tags[] = $thistag;
    				}
    			}
    			else
    			{
    				foreach ($tags AS $tagtext => $tagarr)
    				{
    					$final_tags[] = array(
    						'tagid' => $tagarr['tagid'],
    						'tagtext' => $tagtext,
    						'tagtext_url' => urlencode(unhtmlspecialchars($tagtext)),
    						'level' => round($vbulletin->options['tagcloud_levels'] / 2)
    					);
    				}
    			}
    		}
    
    		$cloud = array(
    			'tags' => $final_tags,
    			'count' => sizeof($final_tags),
    			'dateline' => TIMENOW
    		);
    
    		if ($cacheable)
    		{
    			if ($type == 'search')
    			{
    				$vbulletin->searchcloud = $cloud;
    				build_datastore('searchcloud', serialize($cloud), 1);
    			}
    			else
    			{
    				$vbulletin->tagcloud = $cloud;
    				build_datastore('tagcloud', serialize($cloud), 1);
    			}
    		}
    	}
    
    	if (empty($cloud['tags']))
    	{
    		return '';
    	}
    
    	$cloud['links'] = '';
    
    	foreach ($cloud['tags'] AS $thistag)
    	{
    		($hook = vBulletinHook::fetch_hook('tag_cloud_bit')) ? eval($hook) : false;
    
    		eval('$cloud[\'links\'] .= "' . fetch_template('tag_cloud_link') . '";');
    	}
    
    	$cloud['count'] = vb_number_format($cloud['count']);
    
    	if ($type == 'search')
    	{
    		eval('$cloud_html .= "' . fetch_template('tag_cloud_box_search') . '";');
    	}
    	else
    	{
    		eval('$cloud_html .= "' . fetch_template('tag_cloud_box') . '";');
    	}
    
    	return $cloud[links];
    }
    ?>
    
     
  7. Дмитрий Кесаев

    Дмитрий Кесаев aka Zlobniy Babko

    Заблокирован
    Регистр.:
    10 май 2007
    Сообщения:
    1.332
    Симпатии:
    1.266
    У меня хак стандартный стоит...
    Теги выводятся и отлично все работает
    Все работает как на 3.7.х, так и на 3.8.2
    http://vbsupport.org/forum/search.php?searchid=1884097
    В край набирите с поискек "ОБЛАКО МЕТОК" и выдаст кучу линков на хаки... как на обычные, так и на 3D

    Для тех кто в танке и юзать поиск не могёт)))

    3d облако тегов:
    [​IMG]
    http://vbsupport.org/forum/showthread.php?t=26617&highlight=%D0%BE%D0%B1%D0%BB%D0%B0%D0%BA%D0%BE+%D1%82%D0%B5%D0%B3%D0%BE%D0%B2

    Обычный хак облака тегов
    [​IMG]
    http://vbsupport.org/forum/showthread.php?t=24636&highlight=%D0%BE%D0%B1%D0%BB%D0%B0%D0%BA%D0%BE+%D1%82%D0%B5%D0%B3%D0%BE%D0%B2

    Хак "Облако случайных тегов из БД" - RandomTags
    http://vbsupport.org/forum/showthread.php?t=23682&highlight=%D0%BE%D0%B1%D0%BB%D0%B0%D0%BA%D0%BE+%D1%82%D0%B5%D0%B3%D0%BE%D0%B2

    Облако тегов [Tag Cloud]
    [​IMG]
    http://vbsupport.org/forum/showthread.php?t=21657&highlight=%D0%BE%D0%B1%D0%BB%D0%B0%D0%BA%D0%BE+%D1%82%D0%B5%D0%B3%D0%BE%D0%B2
     
Статус темы:
Закрыта.