Exemplo n.º 1
0
function tags_validate(&$datahandler)
{
    global $mybb, $db, $thread, $lang;
    if ($mybb->settings['tags_enabled'] == 0 || tags_in_disforum($datahandler->fid) || $mybb->settings['tags_groups'] != -1 && !is_member($mybb->settings['tags_groups'])) {
        return;
    }
    $lang->load('tags');
    $mybb->settings['tags_max_thread'] = (int) $mybb->settings['tags_max_thread'];
    if ($mybb->get_input('tags') != '' && ($datahandler->action == 'thread' || is_array($thread) && $datahandler->data['pid'] == $thread['firstpost'])) {
        $tags_value = $mybb->get_input('tags');
        $tags_value = tags_string2tag($tags_value);
        $tags = explode(',', $tags_value);
        if (count($tags) > $mybb->settings['tags_max_thread'] && $mybb->settings['tags_max_thread'] > 0) {
            $lang->many_tags = $lang->sprintf($lang->many_tags, $mybb->settings['tags_max_thread']);
            $datahandler->set_error($lang->many_tags);
            return;
        }
        foreach ($tags as $tag) {
            if (my_strlen($tag) > 0 && my_strlen($tag) < $mybb->settings['tags_minchars']) {
                $datahandler->set_error($lang->tags_too_short);
                return;
            } elseif (my_strlen($tag) > $mybb->settings['tags_maxchars'] && $mybb->settings['tags_maxchars'] > 0) {
                $datahandler->set_error($lang->tags_too_long);
                return;
            }
        }
    }
}
Exemplo n.º 2
0
function tags_editpost_end()
{
    global $mybb, $db, $lang, $templates, $thread, $post, $tags, $tags_value;
    if ($mybb->settings['tags_enabled'] == 0 || tags_in_disforum($thread['fid']) || $mybb->settings['tags_groups'] != -1 && !is_member($mybb->settings['tags_groups'])) {
        return;
    }
    $lang->load('tags');
    if ($thread['firstpost'] != $mybb->get_input('pid', 1)) {
        return;
    }
    $tags_value = $mybb->get_input('tags');
    if (!$tags_value) {
        $bad_tags = tags_getbads(true, false);
        $query = $db->simple_select('tags', '*', "tid='{$thread['tid']}'{$bad_tags}");
        $thread['tags'] = array();
        while ($tag = $db->fetch_array($query)) {
            if (!in_array($tag['name'], $thread['tags']) && $tag['name'] != '') {
                array_push($thread['tags'], $tag['name']);
            }
        }
        $tags_value = implode(',', $thread['tags']);
    }
    $tags_value = htmlspecialchars_uni(tags_string2tag($tags_value));
    eval('$tags = "' . $templates->get('tags_input') . '";');
}
Exemplo n.º 3
0
function tags_getbads($and = true, $prefix = true)
{
    global $mybb;
    $b = $mybb->settings['tags_bad'];
    $b = str_replace(array("\r\n", "\n", "\r"), ',', $b);
    $b = tags_string2tag($b);
    $tags = explode(',', $b);
    $tags_hash = array();
    foreach ($tags as $tag) {
        if ($tag == '') {
            continue;
        }
        if ($tag && !in_array("'" . md5($tag) . "'", $tags_hash)) {
            array_push($tags_hash, "'" . md5($tag) . "'");
        }
    }
    $r = '';
    if ($and) {
        $r .= ' AND ';
    }
    if ($prefix) {
        $r .= 'tags.';
    }
    $r .= 'hash NOT IN (' . implode(', ', $tags_hash) . ')';
    if (count($tags_hash)) {
        return $r;
    } else {
        return '';
    }
}
Exemplo n.º 4
0
function tags_newthread_start()
{
    global $mybb, $db, $templates, $tags, $tags_value, $lang, $fid;
    if ($mybb->settings['tags_enabled'] == 0 || tags_in_disforum($fid) || $mybb->settings['tags_groups'] != -1 && !is_member($mybb->settings['tags_groups'])) {
        return;
    }
    $lang->load('tags');
    $tags_value = $mybb->get_input('tags');
    $tags_value = htmlspecialchars_uni(tags_string2tag($tags_value));
    eval('$tags = "' . $templates->get('tags_input') . '";');
}
Exemplo n.º 5
0
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') . '";');
    }
}
Exemplo n.º 6
0
  </url>
EOT;
    }
    header('Content-type: text/xml');
    echo <<<EOT
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
{$sitemaps}
</urlset>
EOT;
    exit;
}
$page = $mybb->get_input('page', 1);
$name = $mybb->get_input('name');
$name = $parser->parse_badwords($name);
$name = tags_string2tag($name);
$name = htmlspecialchars_uni($name);
$url_name = urlencode(str_replace(',', '-', $name));
$names = explode(',', $name);
$hash = array();
foreach ($names as $n) {
    array_push($hash, "'" . md5($n) . "'");
}
$hash = implode(', ', $hash);
$mybb->settings['tags_per_page'] = (int) $mybb->settings['tags_per_page'];
if ($mybb->settings['tags_per_page'] <= 0 || $mybb->settings['tags_per_page'] >= 100) {
    $mybb->settings['tags_per_page'] = 10;
}
add_breadcrumb($lang->tags, get_tag_link());
$tag_link = get_tag_link();
if ($name && $mybb->settings['tags_seo'] && $mybb->settings['tags_forceseo'] && tags_current_url() != $mybb->settings['bburl'] . '/' . get_tag_link($url_name) && tags_current_url() != $mybb->settings['bburl'] . '/' . get_tag_link($url_name) . "?page={$page}") {