Пример #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;
            }
        }
    }
}
Пример #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') . '";');
}
Пример #3
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') . '";');
}
Пример #4
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') . '";');
    }
}