function tags_index_start() { global $mybb, $db, $tags, $theme, $templates, $lang, $collapsedimg, $collapsed; if ($mybb->settings['tags_enabled'] == 0 || $mybb->settings['tags_index'] == 0) { return; } $lang->load('tags'); $mybb->settings['tags_limit'] = (int) $mybb->settings['tags_limit']; $order_by = 'RAND()'; if ($db->type == 'pgsql' || $db->type == 'sqlite') { $order_by = 'RANDOM()'; } $query = DBTags::get("SUM(threads.views) as sumviews, tags.name", "tags.name != ''", array('orderBy' => $order_by, 'orderType' => '', 'limit' => "0, {$mybb->settings['tags_limit']}")); $tags = $comma = ''; while ($tag = $db->fetch_array($query)) { if (!$tag['name']) { continue; } $tag['name'] = htmlspecialchars_uni($tag['name']); $tag['tag_link'] = get_tag_link($tag['name']); $tag['size'] = tags_getsize($tag['sumviews']); eval('$tags .= "' . $templates->get('tags_box_tag_sized') . '";'); $comma = $lang->comma; } if ($tags != '') { eval('$tags = "' . $templates->get('tags_box') . '";'); } }
function tags_showthread() { global $mybb, $db, $theme, $lang, $templates, $thread, $tags, $collapsedimg, $collapsed; if ($mybb->settings['tags_enabled'] == 0 || tags_in_disforum($thread['fid'])) { return; } $lang->load('tags'); $subject = $thread['subject']; $tid = $thread['tid']; $thread['tags'] = array(); $query = DBTags::get("*", "threads.tid = '{$tid}'"); while ($tag = $db->fetch_array($query)) { if ($tag['name'] && !in_array($tag['name'], $thread['tags'])) { array_push($thread['tags'], $tag['name']); } } if ($db->num_rows($query) == 0) { $subject = tags_string2tag($subject); $tags = explode(',', $subject); $tags_insert = array(); foreach ($tags as $tag) { if ($tag && !in_array(array('tid' => $tid, 'name' => $db->escape_string($tag), 'hash' => md5($tag)), $tags_insert)) { array_push($tags_insert, array('tid' => $tid, 'name' => $db->escape_string($tag), 'hash' => md5($tag))); } } if (count($tags_insert) > 0) { $db->delete_query("tags", "tid={$tid}"); $db->insert_query_multiple("tags", $tags_insert); } $thread['tags'] = $tags; } $tags = ''; $comma = ''; $i = 0; foreach ($thread['tags'] as $tag) { if ($tag == '' || $i >= 25) { continue; } $tag = htmlspecialchars_uni($tag); $tag_link = get_tag_link($tag); eval('$tags .= "' . $templates->get('tags_box_tag') . '";'); $comma = $lang->comma; $i++; } $thread['tags_meta'] = htmlspecialchars_uni(implode(', ', $thread['tags'])); if ($tags != '') { eval('$tags = "' . $templates->get('tags_box') . '";'); } }
static function findByTid($tid) { global $db; $dbTags = new DBTags(); $query = $dbTags->get('*', 'tags.tid = ' . (int) $tid); return $db->fetch_array($query); }
$bad_tags = tags_getbads(true); $count = DBTags::countThreads("tags.hash IN ({$hash})"); $pages = $count / $mybb->settings['tags_per_page']; $pages = ceil($pages); if ($page > $pages || $page <= 0) { $page = 1; } if ($page) { $start = ($page - 1) * $mybb->settings['tags_per_page']; } else { $start = 0; $page = 1; } $multipage = multipage($count, $mybb->settings['tags_per_page'], $page, get_tag_link($name)); $bad_tags = tags_getbads(true); $query = DBTags::get("threads.tid, posts.message, posts.username, posts.uid, threads.subject, threads.views, threads.replies", "tags.hash IN ({$hash})", array('groupBy' => 'threads.tid', 'limit' => "{$start}, {$mybb->settings['tags_per_page']}")); $tags = ''; while ($tag = $db->fetch_array($query)) { if (!$tag['tid']) { continue; } if ($mybb->seo_support == true) { $highlight = "?highlight=" . urlencode($name); } else { $highlight = "&highlight=" . urlencode($name); } $tag['message'] = my_substr($tag['message'], 0, 500); $tag['message'] = $parser->parse_message($tag['message'], $parser_options); $tag['subject'] = htmlspecialchars_uni($parser->parse_badwords($tag['subject'])); $tag['threadlink'] = get_thread_link($tag['tid']); $tag['profilelink'] = build_profile_link($tag['username'], $tag['uid']);