Example #1
0
         vbseo_vars_pop();
         vbseo_get_options();
         vbseo_prepare_seo_replace();
         vbseo_get_forum_info();
         $postid = $vbseo_arr2 ? vbseo_get_last_post($vbseo_arr['thread_id']) : vbseo_get_new_post($vbseo_arr['thread_id']);
     }
     if ($postid) {
         $tmode = $_COOKIE[vbseo_vb_cprefix() . "threadedmode"];
         if ($tmode == 'threaded' || $tmode == 'hybrid') {
             $vbseo_found_fn = 'showthread.' . VBSEO_VB_EXT;
             $vbseo_found = true;
         } else {
             $found_object_ids['prepostthread_ids'] = array($postid);
             vbseo_get_post_thread_info($postid, true);
             vbseo_get_thread_info($found_object_ids['postthreads']);
             $vbseo_url_ = vbseo_thread_url_postid($postid);
             $ti = $vbseo_gcache['thread'][$vbseo_arr['thread_id']];
             if ($GAS_settings && preg_match('#\\b' . $ti['forumid'] . '\\b#', $GAS_settings['forums'])) {
                 $_SERVER['QUERY_STRING'] = 'conly=1';
             }
             vbseo_safe_redirect($vbseo_url_, array(VBSEO_THREADID_URI, 'goto'));
         }
     } else {
         $vbseo_found_fn = 'showthread.' . VBSEO_VB_EXT;
         $vbseo_found = true;
     }
 } else {
     if (VBSEO_REWRITE_THREADS && ($vbseo_arr = vbseo_check_url('VBSEO_URL_THREAD_GOTOPOST_PAGENUM', $vbseo_url_)) || ($vbseo_arr = vbseo_check_url('VBSEO_URL_THREAD_GOTOPOST', $vbseo_url_))) {
         vbseo_set_self('showthread.' . VBSEO_VB_EXT . '?' . VBSEO_POSTID_URI . '=' . $vbseo_arr['post_id'] . ($vbseo_arr['thread_page'] > 1 ? '&' . VBSEO_PAGENUM_URI . '=' . $vbseo_arr['thread_page'] : ''));
         $vbseo_found_fn = 'showthread.' . VBSEO_VB_EXT;
         $vbseo_found = true;
Example #2
0
function vbseo_complete_sec($sec, $dat_proc = '')
{
    global $vboptions, $forum, $vbulletin, $vbphrase, $postcache, $stylevar, $vbseo_gcache, $vbseo_linkbacks_no, $bbuserinfo;
    if (!VBSEO_ENABLED) {
        return;
    }
    if (defined('VBSEO_UNREG_EXPIRED')) {
        return $newtext;
    }
    if (VBSEO_IGNOREPAGES && preg_match('#(' . VBSEO_IGNOREPAGES . ')#i', VBSEO_REQURL)) {
        return;
    }
    if (VBSEO_REWRITE_THREADS_ADDTITLE && ($sec == 'newpost_preview' || $sec == 'postbit_display_complete')) {
        global $vbseo_previewmessage, $vbseo_cutbburl;
        if ($GLOBALS['post'] && $GLOBALS['post']['message']) {
            $ptext =& $GLOBALS['post']['message'];
        } else {
            $ptext =& $vbseo_previewmessage;
        }
        vbseo_reverse_formats();
        $matchfull = preg_quote('http://' . VBSEO_HTTP_HOST, '#');
        if (VBSEO_REWRITE_THREADS_ADDTITLE_POST) {
            $ptext = preg_replace('#(href=")(' . $matchfull . '[^"]*?' . VBSEO_FIND_P_FORMAT . '[^/"]*")#eis', 'vbseo_replace_urls_mini_post("$1","$2","$3")', $ptext);
            $ptext = preg_replace('#(href=")(' . $matchfull . '[^"]*?showpost\\.' . VBSEO_VB_EXT . '\\?[^"]*?p(?:ostid)?=(\\d+)[^/"]*")#eis', 'vbseo_replace_urls_mini_post("$1","$2","$3")', $ptext);
        }
        $ptext = preg_replace('#(href=")(' . $matchfull . '[^"]*?' . VBSEO_FIND_MT_FORMAT . '[^/"]*")#eis', 'vbseo_replace_urls_mini("$1","$2","$3","m")', $ptext);
        $ptext = preg_replace('#(href=")(' . $matchfull . '[^"]*?' . VBSEO_FIND_T_FORMAT . '[^/"]*")#eis', 'vbseo_replace_urls_mini("$1","$2","$3")', $ptext);
        $ptext = preg_replace('#(href=")(' . $matchfull . '[^"]*?(?:show|print)thread\\.' . VBSEO_VB_EXT . '\\?[^"]*?t(?:hreadid)?=(\\d+)[^/"]*")#eis', 'vbseo_replace_urls_mini("$1","$2","$3")', $ptext);
    }
    if (isset($vbulletin) && !$vbseo_cutbburl) {
        $vbseo_cutbburl = preg_replace('#/$#', '', $vbulletin->options['bburl']);
    }
    if ($sec == 'init_startup' && $vbseo_cutbburl) {
        vbseo_check_stripsids();
        vbseo_prepare_seo_replace();
        if (VBSEO_IN_PINGBACK && THIS_SCRIPT == 'showthread') {
            @header('X-Pingback: ' . $vbseo_cutbburl . '/vbseo-xmlrpc/');
        }
        if (THIS_SCRIPT != 'search') {
            vbseo_prepare_cat_anchors();
        }
        if (THIS_SCRIPT == 'newreply' || THIS_SCRIPT == 'editpost' || THIS_SCRIPT == 'newthread') {
            $vbseo_ref = $_SERVER['HTTP_REFERER'];
            $pre_repl = '';
            $q = $_POST['message'];
            if ($vbseo_ref && strstr(strtolower($vbseo_ref), VBSEO_HTTP_HOST)) {
                $pre_repl = preg_replace('#/[^/]*$#', '/', $vbseo_ref);
            }
            if ($pre_repl && $pre_repl != $vbseo_cutbburl . '/') {
                $rs = '#((?:<a[^>]*?href="|\\[url="|\\[url\\]|<img[^>]*?src="|\\[img="|\\[img\\]))';
                $_POST['message'] = preg_replace($rs . '(' . preg_quote($vbseo_cutbburl) . '/)?([^:"\\[\\]]*?\\.\\.[^:"\\[\\]]*?["\\[])#i', '$1' . $pre_repl . '$3', $_POST['message']);
                do {
                    $_pmsg = $_POST['message'];
                    $_POST['message'] = preg_replace('#(://[^\\"\\]]*?/)([^/\\"\\]]*/)\\.\\./#', '$1', $_POST['message']);
                } while ($_POST['message'] != $_pmsg);
            }
        }
    }
    $newpost_name = '';
    if ($sec == 'blog_fpdata_presave' || $sec == 'blog_textdata_start' || $sec == 'blog_data_start') {
        $newpost_name = 'blog';
    }
    if ($sec == 'newpost_process' || $sec == 'newpost_complete') {
        $newpost_name = 'newpost';
    }
    if ($sec == 'visitormessagedata_start') {
        $newpost_name = 'message';
    }
    $clean_redir = $newpost_name ? 1 : 0;
    if (!$newpost_name && $sec == 'postdata_presave') {
        $newpost_name = 'edit';
    }
    $may_addttl = $clean_redir && (!isset($_POST['vbseo_is_retrtitle']) || isset($_POST['vbseo_retrtitle']));
    $force_addttl = $newpost_name && (isset($_POST['vbseo_is_retrtitle']) && isset($_POST['vbseo_retrtitle']));
    $addttl = VBSEO_REWRITE_EXT_ADDTITLE && ($force_addttl || $may_addttl);
    global ${$newpost_name};
    if (isset(${$newpost_name})) {
        $pmsg_a =& ${$newpost_name};
        if (isset($pmsg_a['message'])) {
            $pmsg =& $pmsg_a['message'];
        }
    }
    if ($clean_redir) {
        vbseo_get_options();
        $redurl = $vboptions['bburl2'] . '/' . VBSEO_REDIRECT_URI . '?redirect=';
        $pmsg = preg_replace('#' . preg_quote($redurl, '#') . '([^"\\]\\[]*)#eis', 'urldecode(\'$1\')', $pmsg);
    }
    if ($addttl) {
        preg_match_all('#\\[url=?\\"?(.*?)\\"?\\](.+?)\\[\\/url\\]#is', $pmsg, $lmatch);
        for ($i = 0; $i < count($lmatch[0]); $i++) {
            $ul = trim($lmatch[1][$i]);
            $ulin = trim($lmatch[2][$i]);
            if ($ul && !@strstr($ulin, $ul)) {
                continue;
            }
            if (!@strstr($ulin, '://')) {
                $ulin = 'http://' . $ulin;
            }
            if (!$ul) {
                $ul = $ulin;
            }
            if (preg_match('#^http://#', $ulin) && (!VBSEO_REWRITE_EXT_ADDTITLE_BLACKLIST || !preg_match('#' . VBSEO_REWRITE_EXT_ADDTITLE_BLACKLIST . '#i', $ulin))) {
                vbseo_reverse_formats();
                $matchfull = preg_quote('http://' . VBSEO_HTTP_HOST, '#');
                $ismatch = false;
                if (VBSEO_REWRITE_THREADS_ADDTITLE_POST) {
                    $ismatch |= preg_match('#' . $matchfull . '[^"]*?/' . VBSEO_FIND_P_FORMAT . '#is', $ulin);
                }
                $ismatch |= preg_match('#' . $matchfull . '[^"]*?/' . VBSEO_FIND_MT_FORMAT . '#is', $ulin);
                $ismatch |= preg_match('#' . $matchfull . '[^"]*?/' . VBSEO_FIND_T_FORMAT . '#is', $ulin);
                $ulin_shot = str_replace(VBSEO_TOPREL_FULL, '', $ulin);
                if (($arr = vbseo_check_url('VBSEO_URL_FORUM_PAGENUM', $ulin_shot)) || ($arr = vbseo_check_url('VBSEO_URL_FORUM', $ulin_shot))) {
                    if (!isset($arr['forum_id']) && (isset($arr['forum_path']) || isset($arr['forum_title']))) {
                        $arr['forum_id'] = vbseo_reverse_forumtitle($arr);
                    }
                    vbseo_get_forum_info();
                    if (!vbseo_forum_is_public($vbseo_gcache['forum'][$arr['forum_id']])) {
                        $ismatch = true;
                    }
                }
                if (!$ismatch) {
                    $pret = vbseo_http_query_full($ulin);
                    $ptitle = vbseo_get_page_title($pret['content'], defined('VBSEO_MAX_TITLE_LENGTH') ? VBSEO_MAX_TITLE_LENGTH : 0);
                    $pcharset = vbseo_get_page_charset($pret['content'], $pret['headers']);
                    $ptitle = vbseo_convert_charset($ptitle, $pcharset);
                    if ($ptitle && $ptitle != $vboptions['bbtitle']) {
                        $pmsg = str_replace($lmatch[0][$i], '[url=' . $ulin . ']' . $ptitle . '[/url]', $pmsg);
                    }
                }
            }
        }
    }
    $trackback = VBSEO_EXT_TRACKBACK && ($sec == 'newpost_complete' || $sec == 'threadmanage_update');
    $pingback = VBSEO_EXT_PINGBACK && $sec == 'newpost_complete';
    if ($pingback || $trackback) {
        global $found_object_ids;
        if (!$vboptions['bburl2'] || !$vbseo_gcache['forum']) {
            vbseo_get_options();
            vbseo_prepare_seo_replace();
            vbseo_get_forum_info();
        }
        $r_post_id = $pmsg_a['postid'];
        if (!$r_post_id && $GLOBALS['threadinfo']) {
            $r_post_id = $GLOBALS['threadinfo']['firstpostid'];
        }
        unset($vbseo_gcache['post'][$r_post_id]);
        $found_object_ids['prepostthread_ids'] = array($r_post_id);
        vbseo_get_post_thread_info($r_post_id);
        $threadid = $vbseo_gcache['post'][$r_post_id]['threadid'];
        vbseo_get_thread_info($threadid);
        $forumid = $vbseo_gcache['thread'][$threadid]['forumid'];
        $vbseo_url_ = vbseo_thread_url_postid($r_post_id);
        $vbseo_url_t = vbseo_thread_url($threadid);
        if (!strstr($vbseo_url_, '://')) {
            $vbseo_url_ = $vboptions['bburl2'] . '/' . $vbseo_url_;
        }
        if (!strstr($vbseo_url_t, '://')) {
            $vbseo_url_t = $vboptions['bburl2'] . '/' . $vbseo_url_t;
        }
        if (THIS_SCRIPT == 'newthread') {
            $vbulletin->db->query_write("INSERT INTO " . vbseo_tbl_prefix('vbseo_serviceupdate') . "\n(s_threadid, s_updated)\nVALUES\n('{$threadid}', 0)\n");
        }
    }
    if ($sec == 'blog_fpdata_postsave') {
        global $blogman;
        if ($blogman && ($bid = $blogman->blog['blogid'])) {
            $vbulletin->db->query_write("INSERT INTO " . vbseo_tbl_prefix('vbseo_serviceupdate') . "\n(s_threadid, s_updated, s_type)\nVALUES\n('{$bid}', 0, 1)\n");
        }
    }
    if ($trackback && $_REQUEST['sendtrackbacks']) {
        $tracurls = explode(' ', $_REQUEST['sendtrackbacks']);
        $tdetails = vbseo_get_thread_details($r_post_id);
        $tdetails['pagetext'] = preg_replace('#\\[.+?\\]#', '', $tdetails['pagetext']);
        vbseo_extra_inc('linkback');
        foreach ($tracurls as $turl) {
            if (trim($turl)) {
                $turl = trim($turl);
                if (!preg_match('#^http://#', $turl)) {
                    continue;
                }
                if (vbseo_pingback_exists($turl, $threadid)) {
                    continue;
                }
                $snippet = vbseo_utf8_substr($tdetails['pagetext'], 0, VBSEO_SNIPPET_LENGTH);
                $res_success = vbseo_do_trackback($turl, $vbseo_url_t, $vbseo_gcache['thread'][$threadid]['title'], $vboptions['bbtitle'], $snippet . '...');
                vbseo_store_pingback($vbseo_url_, $turl, 1, $r_postid, 0, $threadid, 0, $_REQUEST['subject'], $snippet, 0, $res_success, 1, false);
            }
        }
    }
    if ($pingback && vbseo_forum_is_public($vbseo_gcache['forum'][$forumid])) {
        vbseo_extra_inc('linkback');
        preg_match_all('#\\[url=?\\"?(.*?)\\"?\\]#is', $pmsg, $lmatch);
        for ($i = 0; $i < count($lmatch[0]); $i++) {
            $ulin = $lmatch[1][$i];
            if (preg_match('#^http://#', $ulin) && !strstr($ulin, VBSEO_HTTP_HOST) && (!VBSEO_REWRITE_EXT_ADDTITLE_BLACKLIST || !preg_match('#' . VBSEO_REWRITE_EXT_ADDTITLE_BLACKLIST . '#i', $ulin))) {
                if (vbseo_pingback_exists($ulin, $threadid)) {
                    continue;
                }
                $res_success = vbseo_do_pingback($vbseo_url_, $ulin);
                if ($res_success >= 0) {
                    vbseo_store_pingback($vbseo_url_, $ulin, 0, $r_postid, 0, $threadid, 0, $_REQUEST['subject'], $snippet, 0, $res_success, 1);
                }
            }
        }
    }
    switch ($sec) {
        case 'blog_entry_start':
            vbseo_prepend_template('blog_show_entry', '".(($blog[message] = vbseo_process_content_area($blog[message])) ? "":"")."');
            vbseo_prepend_template('blog_comment', '".(($response[message] = vbseo_process_content_area($response[message])) ? "":"")."');
            break;
        case 'blog_entry_complete':
            if (VBSEO_BOOKMARK_BLOG && vbseo_tpl_exists('blog_show_entry')) {
                $vbseo_url_b = vbseo_http_s_url('http://' . $_SERVER['HTTP_HOST'] . $_SERVER['VBSEO_URI']);
                $book_t = urlencode($GLOBALS['blog']['title']);
                $bmlist = vbseo_get_bookmarks();
                $vbseo_post_bookmarks = '';
                foreach ($bmlist as $bm) {
                    $blink = str_replace('%url%', urlencode($vbseo_url_b), str_replace('%title%', $book_t, $bm[0]));
                    eval('$vbseo_post_bookmarks .= "' . fetch_template('vbseo_blog_bmarkentry') . '";');
                }
                $vbseo_post_bookmarks = str_replace('"', '\\"', $vbseo_post_bookmarks);
                $bsection_tpl = str_replace('<!--VBSEO_BOOKMARKS-->', $vbseo_post_bookmarks, fetch_template('vbseo_blog_bmarksection'));
                if (VBSEO_BOOKMARK_BLOG == 1) {
                    $snr = '#(\\"\\.\\(\\(\\$show\\[\'blograting\'\\]\\) \\? \\(\\".*?)(<[^>]*?id=\\\\"blog_title)#is';
                    $pm = vbseo_tpl_match('blog_show_entry', $snr);
                    $pm[1] = str_replace('id=\\"blograting\\" style=\\"float:$stylevar[right]\\">', 'id=\\"blograting\\" style=\\"text-align:center\\">', $pm[1]);
                    $bsection = str_replace('<!--BLOG_RATING-->', $pm[1], $bsection_tpl);
                    vbseo_modify_template('blog_show_entry', $snr, $bsection . '$2');
                } else {
                    vbseo_modify_template('blog_show_entry', '#("\\.\\(\\(\\$' . 'categorybits)#is', $bsection_tpl . '$1', false, '<!--VBSEO_BOOKMARKS-->');
                }
                vbseo_modify_template('blog_show_entry', '#(<div id=\\\\"blog_message\\\\" style=\\\\")(.*?</div>)#', "\$1min-height:60px;\$2\n<br style=\\\"clear:both\\\" />");
            }
            break;
        case 'global_start':
            if (!$vbulletin->userinfo['userid'] && VBSEO_CODE_CLEANUP_PREVIEW && THIS_SCRIPT == 'forumdisplay') {
                $vbulletin->options['threadpreview'] = 0;
                $vbseo_gcache['var']['vboptchanged'] = true;
            }
            if (!$vbulletin->userinfo['userid'] && VBSEO_FORUMJUMP_OFF && $vbulletin && (THIS_SCRIPT == 'forumdisplay' || THIS_SCRIPT == 'showthread')) {
                $vbulletin->options['useforumjump'] = 0;
                $vbseo_gcache['var']['vboptchanged'] = true;
            }
            if (VBSEO_CATEGORY_ANCHOR_LINKS) {
                vbseo_modify_template('forumhome_forumbit_level1_nopost', 'href=\\"forumdisplay', 'id=\\"".$forum[\'nametitle\']."\\" name=\\"".$forum[\'nametitle\']."\\" href=\\"forumdisplay');
            }
            if (VBSEO_IN_REFBACK && (THIS_SCRIPT == 'showthread' || THIS_SCRIPT == 'showpost')) {
                $vbseo_ref = $_SERVER['HTTP_REFERER'];
                if ($vbseo_ref && !strstr(strtolower($vbseo_ref), VBSEO_HTTP_HOST) && !strstr(strtolower($vbseo_ref), str_replace('www.', '', VBSEO_HTTP_HOST))) {
                    if (!defined('VBSEO_REFBACK_BLACKLIST') || !preg_match('#' . VBSEO_REFBACK_BLACKLIST . '#i', $vbseo_ref)) {
                        vbseo_extra_inc('linkback');
                        vbseo_ping_proc($vbseo_ref, VBSEO_TOPREL_FULL . VBSEO_REQURL, 2);
                    }
                }
            }
            break;
        case 'memberlist_bit':
            global $userinfo, $usercache;
            $usercache[$userinfo['userid']] = array('userid' => $userinfo['userid'], 'username' => $userinfo['username']);
            break;
        case 'ajax_start':
            if ($_POST['do'] == 'linkbackmod' && ($linkid = addslashes($_POST['id']))) {
                $ilink = $vbulletin->db->query_first("\nSELECT l.*, t.forumid\nFROM " . vbseo_tbl_prefix('vbseo_linkback') . " l\nLEFT JOIN " . vbseo_tbl_prefix('thread') . " t ON t.threadid = l.t_threadid\nWHERE t_id='{$linkid}'");
                $ismod = can_moderate($ilink['forumid'], 'vbseo_linkbacks') || $vbulletin->userinfo['permissions']['adminpermissions'] & $vbulletin->bf_ugp_adminpermissions['ismoderator'];
                if ($ismod) {
                    vbseo_extra_inc('linkback');
                    if ($_POST['action'] == 'mod') {
                        $vbulletin->db->query_write("\nUPDATE " . vbseo_tbl_prefix('vbseo_linkback') . "\nSET t_approve=IF(t_approve,0,1)\nWHERE t_id='{$linkid}'");
                        if (!$ilink['t_approve']) {
                            vbseo_send_notification_pingback($ilink['t_threadid'], $ilink['t_postid'], $ilink['t_src_url'], $ilink['t_title'], $ilink['t_text'], 1, 0);
                        }
                    }
                    if ($_POST['action'] == 'ban') {
                        $purl = parse_url($ilink['t_src_url']);
                        if ($purl['host']) {
                            $bdom = str_replace('www.', '', $purl['host']);
                            vbseo_linkback_bandomain($bdom, 1);
                            $vbulletin->db->query_write("\nUPDATE " . vbseo_tbl_prefix('vbseo_linkback') . "\nSET t_deleted = 1\nWHERE t_src_url LIKE 'http%" . addslashes($bdom) . "/%'");
                        }
                    }
                    if ($_POST['action'] == 'del') {
                        $vbulletin->db->query_write("\nUPDATE " . vbseo_tbl_prefix('vbseo_linkback') . "\nSET t_deleted = 1\nWHERE t_id = '{$linkid}'");
                    }
                    vbseo_linkback_approve($linkid);
                    header('Content-Type: text/plain;');
                    header('Connection: Close');
                    echo $ilink['t_approve'] ? '0' : '1';
                }
                exit;
            }
            if ($_POST['do'] == 'updatelinkback') {
                $vbulletin->input->clean_array_gpc('p', array('linkid' => TYPE_UINT, 'title' => TYPE_STR));
                $linkid = $vbulletin->GPC['linkid'];
                $ilink = $vbulletin->db->query_first("\nSELECT *\nFROM " . vbseo_tbl_prefix('vbseo_linkback') . " l\nWHERE t_id='" . addslashes($linkid) . "'");
                $ismod = can_moderate($ilink['forumid'], 'vbseo_linkbacks') || $vbulletin->userinfo['permissions']['adminpermissions'] & $vbulletin->bf_ugp_adminpermissions['ismoderator'];
                if ($ismod) {
                    $ltitle = convert_urlencoded_unicode($vbulletin->GPC['title']);
                    $vbulletin->db->query_write("\nUPDATE " . vbseo_tbl_prefix('vbseo_linkback') . " l\nSET t_title = '" . addslashes($ltitle) . "'\nWHERE t_id = '" . addslashes($linkid) . "'");
                }
                $xml = new vB_AJAX_XML_Builder($vbulletin, 'text/xml');
                $xml->add_tag('linkhtml', $ltitle);
                $xml->print_xml();
            }
            break;
        case 'forumadmin_update_save':
            global $vboptions, $forumcache;
            vbseo_get_options();
            vbseo_prepare_seo_replace();
            $vboptions['vbseo_opt'] = array();
            $forumcache2 = $forumcache;
            $forumcache = '';
            vbseo_get_forum_info(true);
            $forumcache = $forumcache2;
            vbseo_check_datastore(true);
            break;
        case 'private_insertpm_process':
            global $pmdm;
            if (is_object($pmdm) && strstr($pmdm->pmtext['message'], '[post]')) {
                vbseo_startup();
                $pmdm->pmtext['message'] = preg_replace('#\\[post\\](\\d+)\\[\\/post\\]#', '[url]' . $vboptions['bburl2'] . '/showthread.php?p=$1#post$1[/url]', $pmdm->pmtext['message']);
                $GLOBALS['VBSEO_REWRITE_TEXTURLS'] = 1;
                $pmdm->pmtext['message'] = make_crawlable($pmdm->pmtext['message']);
                unset($GLOBALS['VBSEO_REWRITE_TEXTURLS']);
            }
            break;
        case 'cache_templates':
            global $globaltemplates, $show, $bbuserinfo;
            if ($_REQUEST['ajax']) {
                if (THIS_SCRIPT == 'blog_post') {
                    $globaltemplates[] = 'blog_comment';
                }
                if (THIS_SCRIPT == 'group') {
                    $globaltemplates[] = 'socialgroups_message';
                }
                if (THIS_SCRIPT == 'album') {
                    $globaltemplates[] = 'picturecomment_message';
                }
                if (THIS_SCRIPT == 'visitormessage') {
                    $globaltemplates[] = 'memberinfo_visitormessage';
                }
            }
            if (THIS_SCRIPT == 'blog' && $_REQUEST['do'] == 'blog') {
                $globaltemplates[] = 'vbseo_blog_bmarkentry';
                $globaltemplates[] = 'vbseo_blog_bmarksection';
            }
            if (THIS_SCRIPT == 'moderation') {
                $globaltemplates[] = 'vbseo_linkbacks';
                $globaltemplates[] = 'vbseo_linkbackbit';
            }
            if (THIS_SCRIPT == 'showthread' && (VBSEO_IN_PINGBACK || VBSEO_IN_TRACKBACK || VBSEO_IN_REFBACK)) {
                $globaltemplates[] = 'vbseo_linkbacks';
                $globaltemplates[] = 'vbseo_linkbackbit';
                $globaltemplates[] = 'vbseo_linkbackmenu';
                $globaltemplates[] = 'vbseo_linkbackmenu_entry';
            }
            if (THIS_SCRIPT == 'misc' && $_REQUEST['do'] == 'pingtrackback') {
                vbseo_safe_redirect('misc.' . VBSEO_VB_EXT . '?do=linkbacks', array('do'));
            }
            if (THIS_SCRIPT == 'misc' && $_REQUEST['do'] == 'linkbacks') {
                $globaltemplates[] = 'vbseo_help_linkback';
            }
            break;
        case 'member_infractionbit':
            $GLOBALS['vbseo_gcache']['post'][$dat_proc['postid']] = $dat_proc;
            break;
        case 'parse_templates':
            vbseo_modify_template('socialgroups_grouplist_bit', '#.$#s', '$0".(($GLOBALS[\'vbseo_gcache\'][\'groups\'][$group[\'groupid\']]=$group)?\'\':\'\')."');
            vbseo_modify_template('memberinfo_socialgroupbit', '#.$#s', '$0".(($GLOBALS[\'vbseo_gcache\'][\'groups\'][$socialgroup[\'groupid\']]=$socialgroup)?\'\':\'\')."');
            vbseo_modify_template('blog_entry_profile', '#.$#s', '$0".(($GLOBALS[\'vbseo_gcache\'][\'blog\'][$this->blog[\'blogid\']]=$this->blog)?\'\':\'\')."');
            vbseo_modify_template('blog_entry_profile', '#.$#s', '$0".(($GLOBALS[\'vblog_categories\']=$this->categories)?\'\':\'\')."');
            vbseo_modify_template('album_picturebit', '#.$#s', '$0".(($GLOBALS[\'vbseo_gcache\'][\'pic\'][$picture[\'pictureid\']]=$picture)?\'\':\'\')."');
            vbseo_modify_template('albumbit', '#.$#s', '$0".(($GLOBALS[\'vbseo_gcache\'][\'album\'][$album[\'albumid\']]=$album)?\'\':\'\')."');
            vbseo_modify_template('memberinfo_albumbit', '#.$#s', '$0".(($GLOBALS[\'vbseo_gcache\'][\'album\'][$album[\'albumid\']]=$album)?\'\':\'\')."');
            vbseo_prepend_template('memberinfo_visitormessage', '".(($message[message] = vbseo_process_content_area($message[message])) ? "":"")."');
            vbseo_prepend_template('socialgroups_message', '".(($message[message] = vbseo_process_content_area($message[message])) ? "":"")."');
            vbseo_prepend_template('picturecomment_message', '".(($message[message] = vbseo_process_content_area($message[message])) ? "":"")."');
            vbseo_prepend_template('pt_issuenotebit_user', '".(($note[message] = vbseo_process_content_area($note[message])) ? "":"")."');
            vbseo_prepend_template('newpost_preview', '".(($previewmessage = vbseo_process_content_area($previewmessage)) ? "":"")."');
            if ((THIS_SCRIPT == 'blog' || THIS_SCRIPT == 'blog_post') && VBSEO_PERMALINK_BLOG > 0) {
                vbseo_modify_template('blog_comment', '#(blogipaddress.*?)(</div>)#s', '$1 <a href=\\"#comment$response[blogtextid]\\"><img src=\\"$stylevar[imagesfolder]/vbseo/anchor.png\\" border=\\"0\\" alt=\\"$vbphrase[vbseo_permalink]\\" class=\\"inlineimg\\" /></a> $2', 0);
                vbseo_modify_template('blog_comment', '#(OR \\$show\\[\\\'reportlink\\\'\\])#s', '$1 OR 1', 0);
            }
            if (THIS_SCRIPT == 'member' || THIS_SCRIPT == 'visitormessage') {
                $vmurl = $_GET['tab'] && $_GET['tab'] != 'visitor_messaging' ? 'member.php?u=' . $_GET['u'] : '';
                $vmurl .= '#vmessage$message[vmid]';
                if (VBSEO_PERMALINK_PROFILE == 2) {
                    vbseo_modify_template('memberinfo_visitormessage', '#\\$message\\[date\\]#s', '<a href=\\"' . $vmurl . '\\">$0</a>', 0);
                } else {
                    if (VBSEO_PERMALINK_PROFILE == 1) {
                        vbseo_modify_template('memberinfo_visitormessage', '#message\\[time\\].*?\\)\\)\\.\\"#s', '$0 - <a href=\\"' . $vmurl . '\\">$vbphrase[vbseo_permalink]</a>', 0);
                    }
                }
                vbseo_modify_template('MEMBERINFO', '#(vBulletin\\.register_control\\(\\\\"vB_TabCtrl\\\\", \\\\"profile_tabs\\\\", \\\\"\\$selected_tab\\\\")#s', "var vbseo_opentab=document.location.hash;\nvbseo_opentab = vbseo_opentab.substring(1,vbseo_opentab.length);\n" . '$1 ? \\"$selected_tab\\" : vbseo_opentab');
            }
            if (THIS_SCRIPT == 'album') {
                if (VBSEO_PERMALINK_ALBUM == 2) {
                    vbseo_modify_template('picturecomment_message', '#\\$message\\[date\\]#s', '<a href=\\"#picturecomment$message[commentid]\\">$0</a>', 0);
                } else {
                    if (VBSEO_PERMALINK_ALBUM == 1) {
                        vbseo_modify_template('picturecomment_message', '#message\\[time\\].*?\\)\\)\\.\\"#s', '$0 - <a href=\\"#picturecomment$message[commentid]\\">$vbphrase[vbseo_permalink]</a>', 0);
                    }
                }
            }
            if (THIS_SCRIPT == 'group') {
                $_plink = 'group.' . VBSEO_VB_EXT . '?groupid=' . $_REQUEST['groupid'] . '#gmessage$message[gmid]';
                if (VBSEO_PERMALINK_GROUPS == 2) {
                    vbseo_modify_template('socialgroups_message', '#\\$message\\[date\\]#s', '<a href=\\"' . $_plink . '\\">$0</a>', 0);
                } else {
                    if (VBSEO_PERMALINK_GROUPS == 1) {
                        vbseo_modify_template('socialgroups_message', '#message\\[time\\].*?\\)\\)\\.\\"#s', '$0 - <a href=\\"' . $_plink . '\\">$vbphrase[vbseo_permalink]</a>', 0);
                    }
                }
            }
            if (VBSEO_IN_PINGBACK || VBSEO_IN_TRACKBACK || VBSEO_IN_REFBACK) {
                if (can_moderate(0, 'vbseo_linkbacks')) {
                    vbseo_modify_template('USERCP_SHELL', '#(do=viewposts&amp;type=moderated.*?</tr>)#is', '$1
<tr>
<td class=\\"".($navclass[moderatedlinkbacks]?$navclass[moderatedlinkbacks]:"alt2")."\\"><a class=\\"smallfont\\" href=\\"moderation.php?$session[sessionurl]do=viewlinkbacks\\">$vbphrase[vbseo_moderated_linkbacks]</a></td>
</tr>');
                }
            }
            if (!$vbulletin->userinfo['userid']) {
                if (VBSEO_CODE_CLEANUP_MEMBER_DROPDOWN) {
                    if (THIS_SCRIPT == 'showthread') {
                        $tplpostbit = vbseo_get_postbit_tpl();
                        vbseo_modify_template($tplpostbit, '#<script[^>]+?>[^<]*?postmenu_\\$post.*?</script>#is', '');
                        vbseo_modify_template($tplpostbit, '#<div class=\\\\"vbmenu_popup.*?</div>#is', '');
                    }
                    if (THIS_SCRIPT == 'blog') {
                        $blog_tpls = array('blog_sidebar_user', 'blog_entry_with_userinfo', 'blog_entry_without_userinfo', 'blog_list_blogs_blog');
                        foreach ($blog_tpls as $_btpl) {
                            vbseo_modify_template($_btpl, '#<script[^>]+?>[^<]*?blogusermenu.*?</script>#is', '');
                            vbseo_modify_template($_btpl, '#<div class=\\\\"vbmenu_popup.*?</div>#is', '');
                        }
                    }
                }
                if (THIS_SCRIPT == 'index') {
                    if (VBSEO_CODE_CLEANUP_LASTPOST == 2) {
                        vbseo_modify_template('FORUMHOME', '#<td[^<]+?vbphrase\\[last_post\\]</td>#is', '');
                        vbseo_modify_template('forumhome_forumbit_level1_nopost', '#<td[^<]+?vbphrase\\[last_post\\].*?</td>#is', '');
                        vbseo_modify_template('FORUMDISPLAY', '#<td[^<]+?(<span[^<]+?)?(<a[^<]+?)?vbphrase\\[last_post\\].*?</td>#is', '');
                        vbseo_modify_template('forumhome_forumbit_level2_post', '#<td[^<]+?forum\\[lastpostinfo\\].*?</td>#is', '');
                        vbseo_modify_template('forumhome_forumbit_level1_post', '#<td[^<]+?forum\\[lastpostinfo\\].*?</td>#is', '');
                        vbseo_modify_template('threadbit', '#\\(\\(\\$show\\[\'threadmoved\'.*?/td>\\s*"\\)\\)\\.#is', '');
                    }
                    if (VBSEO_CODE_CLEANUP_LASTPOST == 1) {
                        vbseo_modify_template('threadbit', '#<a href=[^>]*?->[^>]*?->[^>]*?lastpostid.*?</a>#is', '');
                        vbseo_modify_template('forumhome_lastpostby', '#<a href=[^>]*?->[^>]*?->[^>]*?lastpostid.*?</a>#is', '');
                        $vbphrase['by_x'] = strip_tags($vbphrase['by_x']);
                    }
                    vbseo_modify_template('threadbit', '#<a href=\\\\"misc\\.php\\?do=whoposted.*?>(.*?)</a>#is', '$1');
                }
            }
            break;
        case 'moderation_start':
            if ($_REQUEST['do'] == 'viewlinkbacks') {
                global $navbar, $navclass, $HTML, $navbits, $headinclude, $header, $footer, $db, $show, $navclass, $notices, $pmbox, $notifications_total;
                if (!can_moderate(0, 'vbseo_linkbacks')) {
                    print_no_permission();
                }
                vbseo_startup();
                $vbseolinkbackbits = '';
                $perpage = 20;
                $pagenumber = $_GET['page'] ? $_GET['page'] : 1;
                $vbseodb = vbseo_get_db();
                $tp = $vbseodb->vbseodb_query_first("\nSELECT COUNT(*) as cnt\nFROM " . vbseo_tbl_prefix('vbseo_linkback') . "\nWHERE t_incoming=1 AND t_deleted=0 AND t_approve=0");
                $totalposts = $tp['cnt'];
                $vbseopings = $vbseodb->vbseodb_query($q = "\nSELECT t_id, t_time, t_src_url, t_dest_url, t_type, t_postid, t_postcount, t_threadid, t_page, t_title, t_text, t_approve, forumid\nFROM " . vbseo_tbl_prefix('vbseo_linkback') . "\nLEFT JOIN " . vbseo_tbl_prefix('thread') . " on threadid=t_threadid\nWHERE t_incoming=1 AND t_deleted=0 AND t_approve=0\nORDER BY t_time " . (preg_match('#^(asc|desc)$#i', VBSEO_DEFAULT_LINKBACKS_ORDER) ? VBSEO_DEFAULT_LINKBACKS_ORDER : "DESC") . " LIMIT " . ($pagenumber - 1) * $perpage . "," . $perpage);
                $pagenav = construct_page_nav($pagenumber, $perpage, $totalposts, "moderation.php?do=viewlinkbacks");
                while ($vbseoping = @$vbseodb->funcs['fetch_assoc']($vbseopings)) {
                    if (can_moderate($vbseoping['forumid'], 'vbseo_linkbacks')) {
                        $vbseoping['postno'] = $vbseoping['t_postcount'];
                        $vbseoping['ismod'] = 1;
                        $vbseoping['date'] = vbdate($vbulletin->options['dateformat'], $vbseoping['t_time'], true);
                        $vbseoping['time'] = vbdate($vbulletin->options['timeformat'], $vbseoping['t_time'], true);
                        $vbseoping['t_src_url'] = htmlentities($vbseoping['t_src_url']);
                        $vbseoping['t_dest_url'] = htmlentities($vbseoping['t_dest_url']);
                        $vbseoping['t_text_nohtml'] = htmlspecialchars(strip_tags($vbseoping['t_text']));
                        $vbseoping['t_title_html'] = htmlspecialchars($vbseoping['t_title']);
                        eval('$vbseolinkbackbits .= "' . fetch_template('vbseo_linkbackbit') . '";');
                    }
                }
                if ($vbseolinkbackbits) {
                    eval('$HTML = "' . fetch_template('vbseo_linkbacks') . '";');
                } else {
                    $HTML = $vbphrase['vbseo_no_linkbacks_found'];
                }
                unset($vbseolinkbackbits);
                $navbits[''] = $vbphrase['moderation'];
                $navbits = construct_navbits($navbits);
                construct_usercp_nav('moderatedlinkbacks');
                eval('$navbar = "' . fetch_template('navbar') . '";');
                eval('print_output("' . fetch_template('USERCP_SHELL') . '");');
            }
            break;
        case 'misc_start':
            if ($_REQUEST['do'] == 'linkbacks') {
                global $navbits, $headinclude, $header, $footer;
                $navbits = construct_navbits(array('faq.' . VBSEO_VB_EXT . $vbulletin->session->vars['sessionurl_q'] => $vbphrase['faq'], '' => $vbphrase['vbseo_linkbacks']));
                @extract($GLOBALS);
                @eval('$navbar = "' . fetch_template('navbar') . '";');
                @eval('print_output("' . fetch_template('vbseo_help_linkback') . '");');
            }
            break;
        case 'archive_forum_thread':
            if ($GLOBALS['pda'] == 'vbseo') {
                $GLOBALS['pda'] = false;
            }
            break;
        case 'archive_navigation':
            if (VBSEO_ARCHIVE_ORDER_DESC && !$GLOBALS['pda']) {
                $GLOBALS['pda'] = 'vbseo';
            }
            break;
        case 'forumrules':
            $pingrules = '<div>" . construct_phrase("$vbphrase[vbseo_trackback_is_x]", "misc.".VBSEO_VB_EXT."?do=linkbacks#trackbacks", "' . iif(VBSEO_EXT_TRACKBACK, $vbphrase['on'], $vbphrase['off']) . '") . "</div>
<div>" . construct_phrase("$vbphrase[vbseo_pingback_is_x]", "misc.".VBSEO_VB_EXT."?do=linkbacks#pingbacks", "' . iif(VBSEO_EXT_PINGBACK, $vbphrase['on'], $vbphrase['off']) . '") . "</div>
<div>" . construct_phrase("$vbphrase[vbseo_refback_is_x]", "misc.".VBSEO_VB_EXT."?do=linkbacks#refbacks", "' . iif(VBSEO_IN_REFBACK, $vbphrase['on'], $vbphrase['off']) . '") . "</div>';
            vbseo_modify_template('forumrules', '#(html_code_is_x.*?</div>)#s', '$1' . $pingrules, 0, '<!--LINKBACK_POSTRULES-->');
            break;
        case 'showthread_complete':
            global $onload;
            if (!$onload) {
                $onload = "if (is_ie || is_moz) { var cpost=document.location.hash;if(cpost){ if(cobj = fetch_object(cpost.substring(1,cpost.length)))cobj.scrollIntoView(true); }}";
            }
            if (VBSEO_IN_PINGBACK || VBSEO_IN_TRACKBACK || VBSEO_IN_REFBACK) {
                global $vbseo_bookmarks, $vbseo_linkback_menu, $vbseo_linkback_menu_list, $show, $vbseo_linkback_uri, $thread;
                $vbseo_url_t = urlencode($vboptions['bburl2'] . '/' . vbseo_thread_url($thread['threadid']));
                $book_t = urlencode($thread['title']);
                $is_public = vbseo_forum_is_public($GLOBALS['forum'], $GLOBALS['foruminfo'], false, true);
                if ($is_public && VBSEO_BOOKMARK_THREAD) {
                    $bmlist = vbseo_get_bookmarks();
                    $vbseo_bookmarks = '';
                    $bmno = 0;
                    foreach ($bmlist as $bm) {
                        $vbseo_bookmarks .= '<tr><td class="vbmenu_option"><img class="inlineimg" src="' . $bm[1] . '" alt="' . $bm[2] . '" /> <a href="' . str_replace('%url%', $vbseo_url_t, str_replace('%title%', $book_t, $bm[0])) . '" target="_blank">' . $bm[2] . '</a><a name="vbseodm_' . $bmno++ . '"></a></td></tr>';
                    }
                }
                eval('$vbseo_linkback_menu = "' . fetch_template('vbseo_linkbackmenu_entry') . '";');
                vbseo_modify_template('SHOWTHREAD', '#(<td[^>]*?threadtools)#i', '\\$vbseo_linkback_menu$1', 0, '<!--LINKBACK_MENU-->');
                eval('$vbseo_linkback_menu_list = "' . fetch_template('vbseo_linkbackmenu') . '";');
                if (!vbseo_tpl_search('SHOWTHREAD', '$vbseo_linkback_menu_list')) {
                    vbseo_modify_template('SHOWTHREAD', '#(</body>)#is', '\\$vbseo_linkback_menu_list' . '$1');
                }
                if ($_GET['nojs']) {
                    preg_match('#<table.*?>(.*?)</table>#is', $vbseo_linkback_menu, $vbseo_m);
                    $vbseo_m[1] = str_replace('vbmenu_option', 'alt1', $vbseo_m[1]);
                    $vbseo_m[1] = str_replace('<td', '<td colspan="2"', $vbseo_m[1]);
                    vbseo_modify_template('SHOWTHREAD', "#(sendtofriend\\.gif.*?sendtofriend\\.gif.*?</tr>)#is", "\$1" . addslashes($vbseo_m[1]));
                }
            }
            break;
        case 'showthread_post_start':
            global $vbseolinkbacks, $vbcollapse, $vbseo_linkback_uri, $thread, $db, $show, $found_object_ids;
            if (defined('VBSEO_PRIVATE_REDIRECT_POSTID')) {
                vbseo_get_options();
                if (!($mode_nonlinear = vbseo_is_threadedmode())) {
                    vbseo_get_forum_info();
                    $r_post_id = VBSEO_PRIVATE_REDIRECT_POSTID;
                    $found_object_ids['prepostthread_ids'] = array($r_post_id);
                    $parr = vbseo_get_post_thread_info($r_post_id, true);
                    $threadid = $parr[$r_post_id]['threadid'];
                    vbseo_get_thread_info($threadid);
                    $excpars = array('p', 'page');
                    $vbse_rurl = vbseo_thread_url_postid($r_post_id, isset($_GET['page']) ? $_GET['page'] : 1, $mode_nonlinear);
                    if ($vbse_rurl) {
                        vbseo_url_autoadjust($vbse_rurl, $excpars, false);
                    }
                }
            }
            if (VBSEO_IN_PINGBACK || VBSEO_IN_TRACKBACK || VBSEO_IN_REFBACK) {
                $vbseolinkbacks = '';
                vbseo_get_options();
                vbseo_get_forum_info();
                $vbseo_gcache['thread'][$thread['threadid']] = $thread;
                $vbseo_linkback_uri = vbseo_thread_url($thread['threadid']);
                if (!strstr($vbseo_linkback_uri, '://')) {
                    $vbseo_linkback_uri = preg_replace('#/$#', '', $vbulletin->options['bburl']) . '/' . $vbseo_linkback_uri;
                }
                $showactusers = $vboptions['showthreadusers'] == 1 || $vboptions['showthreadusers'] == 2 || ($vboptions['showthreadusers'] > 2 and $vbulletin->userinfo['userid']);
                if (!vbseo_tpl_search('SHOWTHREAD', '$vbseolinkbacks')) {
                    $search_for = $showactusers ? '".(($show[\'activeusers\']' : '$similarthreads';
                    if (!vbseo_tpl_search('SHOWTHREAD', $search_for)) {
                        $search_for = '<!-- currently active users -->';
                    }
                    vbseo_modify_template('SHOWTHREAD', $search_for, "\$vbseolinkbacks\n{$search_for}");
                }
                $vbseolinkbackbits = '';
                $vbseo_linkbacks_no = 0;
                $ismod = can_moderate($thread['forumid'], 'vbseo_linkbacks') || $vbulletin && $vbulletin->userinfo['permissions']['adminpermissions'] & $vbulletin->bf_ugp_adminpermissions['ismoderator'];
                if ($thread['vbseo_linkbacks_no'] || $ismod) {
                    $vbseodb = vbseo_get_db();
                    $vbseopings = $vbseodb->vbseodb_query("\nSELECT t_id, t_time, t_src_url, t_dest_url, t_type, t_postid, t_postcount, t_threadid, t_page, t_title, t_text, t_approve\nFROM " . vbseo_tbl_prefix('vbseo_linkback') . "\nWHERE t_incoming=1 AND t_deleted=0 AND t_wait=0\nAND " . ($ismod ? '' : 't_approve>0 AND ') . "t_threadid = '" . $thread['threadid'] . "' " . "ORDER BY t_time " . (preg_match('#^(asc|desc)$#i', VBSEO_DEFAULT_LINKBACKS_ORDER) ? VBSEO_DEFAULT_LINKBACKS_ORDER : "DESC"));
                    while ($vbseoping = @$vbseodb->funcs['fetch_assoc']($vbseopings)) {
                        $vbseoping['postno'] = $vbseoping['t_postcount'];
                        $vbseoping['ismod'] = $ismod;
                        $vbseoping['date'] = vbdate($vbulletin->options['dateformat'], $vbseoping['t_time'], true);
                        $vbseoping['time'] = vbdate($vbulletin->options['timeformat'], $vbseoping['t_time'], true);
                        $vbseoping['t_text_nohtml'] = htmlspecialchars(strip_tags($vbseoping['t_text']));
                        $vbseoping['t_title_html'] = htmlspecialchars($vbseoping['t_title']);
                        if ($vbseoping['t_postid']) {
                            $vbseo_gcache['postpings'][$vbseoping['t_postid']]++;
                        } else {
                            $vbseo_gcache['postcounts'][vbseo_thread_pagenum($vbseoping['t_page'] - 1, 0) + 1]++;
                        }
                        eval('$vbseolinkbackbits .= "' . fetch_template('vbseo_linkbackbit') . '";');
                        $vbseo_linkbacks_no++;
                    }
                    if ($vbseo_linkbacks_no) {
                        eval('$vbseolinkbacks = "' . fetch_template('vbseo_linkbacks') . '";');
                        if ($showactusers) {
                            $vbseolinkbacks = '<br />' . $vbseolinkbacks;
                        } else {
                            $vbseolinkbacks = $vbseolinkbacks . '<br />';
                        }
                    }
                    unset($vbseolinkbackbits);
                }
            }
            break;
        case 'postbit_display_complete':
            global $thread, $vbseo_lastmod;
            if (!isset($vbseo_lastmod) || $dat_proc['dateline'] > $vbseo_lastmod) {
                $vbseo_lastmod = $dat_proc['dateline'];
            }
            $dat_proc['preposts'] = $dat_proc['postcount'];
            $postcache[$dat_proc['postid']] = $dat_proc;
            $vbseo_gcache['thread'][$thread['threadid']] = $thread;
            $vbseo_postbit_pingback = VBSEO_POSTBIT_PINGBACK > 0 && THIS_SCRIPT != 'private' && THIS_SCRIPT != 'member';
            $vbseo_bookmark = VBSEO_BOOKMARK_POST;
            if ($vbseo_postbit_pingback || $vbseo_bookmark) {
                if (!$vboptions['bburl2']) {
                    vbseo_get_options();
                    vbseo_prepare_seo_replace();
                    vbseo_get_forum_info();
                }
                $GLOBALS['post']['linkbacksno'] = $vbseo_gcache['postpings'][$GLOBALS['post']['postid']] + $vbseo_gcache['postcounts'][$GLOBALS['post']['postcount']];
                $tplpostbit = vbseo_get_postbit_tpl();
                if (!defined('VBSEO_POSTBIT_PINGBACK_CHG_' . $tplpostbit) && vbseo_tpl_exists($tplpostbit)) {
                    define('VBSEO_POSTBIT_PINGBACK_CHG_' . $tplpostbit, 1);
                    $is_public = vbseo_forum_is_public($GLOBALS['forum'], $GLOBALS['foruminfo'], false, true);
                    if ($is_public && $vbseo_bookmark && THIS_SCRIPT == 'showthread' && ($bmlist = vbseo_get_bookmarks())) {
                        $vbseo_url_t = urlencode($vboptions['bburl2'] . '/' . vbseo_thread_url($thread['threadid'], $_GET['page']) . '#') . '$post[postid]';
                        $vbseo_url_t_iis = urlencode($vboptions['bburl2'] . '/' . vbseo_thread_url($thread['threadid'], $_GET['page']));
                        $book_t = urlencode($thread['title']);
                        $vbseo_post_bookmarks = '';
                        foreach ($bmlist as $bm) {
                            $vbseo_post_bookmarks .= '<a href=\\"' . str_replace('%url%', $vbseo_url_t, str_replace('%title%', $book_t, $bm[0])) . '\\" target=\\"_blank\\"><img src=\\"' . $bm[1] . '\\" alt=\\"' . $bm[3] . '\\" border=\\"0\\" /></a>';
                        }
                        $search_for = '<!--VBSEO_BOOKMARKS-->';
                        if (!vbseo_tpl_search($tplpostbit, $search_for)) {
                            $search_for = '".(($post[\'editlink\'])';
                        }
                        vbseo_modify_template($tplpostbit, $search_for, '<div style=\\"float:$stylevar[left]\\">' . $vbseo_post_bookmarks . "</div>\n" . $search_for);
                    }
                    if ($vbseo_postbit_pingback) {
                        $pingtpl = '".($post[\'linkbacksno\']?"<a href=\\"' . ($_POST['ajax'] || THIS_SCRIPT != 'showthread' ? 'showthread.' . VBSEO_VB_EXT . '?p=$post[postid]' : "") . '#linkbacks\\"><img class=\\"inlineimg\\" src=\\"images/vbseo/post_linkback.gif\\" alt=\\"".construct_phrase("$vbphrase[vbseo_no_links_to_this_post]",$post[linkbacksno])."\\" border=\\"0\\" /></a> ":"")."';
                        $pingtpl2 = '<a href=\\"' . ($_POST['ajax'] || THIS_SCRIPT != 'showthread' ? 'showthread.' . VBSEO_VB_EXT . '?p=$post[postid]' : '#post$post[postid]') . '\\" title=\\"".$vbphrase[\'vbseo_link_to_this_post\']."\\">".$vbphrase[\'vbseo_permalink\']."</a>';
                        if (VBSEO_POSTBIT_PINGBACK == 1) {
                            $pingtpl .= $pingtpl2;
                        }
                        if (vbseo_tpl_search($tplpostbit, '<!--PERMALINK_INFO-->')) {
                            vbseo_modify_template($tplpostbit, '<!--PERMALINK_INFO-->', $pingtpl);
                        } else {
                            if (VBSEO_POSTBIT_PINGBACK == 1) {
                                vbseo_modify_template($tplpostbit, '#(\\$show\\[\'messageicon\'\\] OR \\$post\\[\'title\'\\])(.*?)(<div.*?</div>)#s', '$1 OR 1$2<table cellspacing=\\"0\\" cellpadding=\\"0\\" width=\\"100%\\" border=\\"0\\">
<tr><td>$3</td>
<td><div class=\\"smallfont\\" style=\\"float:right\\">' . $pingtpl . '</div></td>
</tr></table>');
                            } else {
                                vbseo_modify_template($tplpostbit, '#("\\.\\(\\(\\$show\\[\'postcount\'\\])#s', $pingtpl . '$1');
                            }
                            if (VBSEO_POSTBIT_PINGBACK == 3) {
                                vbseo_modify_template($tplpostbit, '#("\\.\\(\\(\\$show\\[\'postcount\'\\].*?</a>)#s', '$1 (<b>' . $pingtpl2 . '</b>)');
                            }
                        }
                    }
                }
            }
            break;
        case 'forumhome_complete':
            global $vbseo_onload;
            if (!$onload) {
                $vbseo_onload = " onload=\"if (is_ie || is_moz) { var cpost=document.location.hash;if(cpost){ if(cobj = fetch_object(cpost.substring(1,cpost.length)))cobj.scrollIntoView(true); }}\"";
                vbseo_modify_template('FORUMHOME', '<body>', '<body$vbseo_onload>');
            }
            if (!is_array($GLOBALS['birthdays'])) {
                preg_match_all('#<a href="[^"]*?member\\.php\\?u=(\\d+)".*?>(.+?)<#', $GLOBALS['birthdays'], $birthm);
                foreach ($birthm[1] as $k => $v) {
                    $GLOBALS['usercache'][$v] = array('userid' => $v, 'username' => $birthm[2][$k]);
                }
            }
            break;
        case 'threadmanage_update':
            global $threadinfo;
            if ($threadinfo['title'] != $_REQUEST['title']) {
                $vbseodb = vbseo_get_db();
                $vbseodb->vbseodb_query("UPDATE " . vbseo_tbl_prefix('post') . "\nSET title = '" . $vbseodb->vbseodb_escape_string('re: ' . $_REQUEST['title']) . "'\nWHERE threadid = " . intval($threadinfo['threadid']) . " AND\ntitle = '" . $vbseodb->vbseodb_escape_string('re: ' . $threadinfo['title']) . "'");
            }
            break;
        case 'editpost_edit_complete':
        case 'newreply_form_complete':
        case 'newthread_form_complete':
        case 'threadmanage_complete':
            global $db, $disablesmiliesoption, $threadmanagement, $posticons;
            if (VBSEO_REWRITE_EXT_ADDTITLE) {
                $disablesmiliesoption = '<div><label for="qr_retrtitle"><input type="checkbox" name="vbseo_retrtitle" value="1" id="qr_retrtitle" ' . ($_POST['vbseo_retrtitle'] || !isset($_POST['vbseo_is_retrtitle']) ? ' checked' : '') . '/>' . $vbphrase['vbseo_auto_retrieve_titles'] . '</label>
<input type="hidden" name="vbseo_is_retrtitle" value="1" /></div>' . $disablesmiliesoption;
            }
            if (VBSEO_EXT_TRACKBACK && in_array($sec, array('newthread_form_complete', 'threadmanage_complete', 'newreply_form_complete')) && (!$GLOBALS['threadinfo']['threadid'] || $GLOBALS['threadinfo']['open'] == 1)) {
                $vbseodb = vbseo_get_db();
                $vbseopings = $vbseodb->vbseodb_query("\nSELECT t_time, t_dest_url, t_approve\nFROM " . vbseo_tbl_prefix('vbseo_linkback') . "\nWHERE t_incoming=0 AND t_type=1 AND t_threadid = '" . (isset($GLOBALS['threadinfo']) ? $GLOBALS['threadinfo']['threadid'] : $thread['threadid']) . "'\nORDER BY t_time DESC");
                $plist = '';
                while ($vbseoping = @$vbseodb->funcs['fetch_assoc']($vbseopings)) {
                    $plist .= '<li><strong>' . (strlen($vbseoping['t_dest_url']) > 50 ? substr($vbseoping['t_dest_url'], 0, 50) . '...' : $vbseoping['t_dest_url']) . '</strong></li>';
                }
                if ($plist) {
                    $plist = "<div>" . $vbphrase[vbseo_already_pinged] . ":<ul type=\"disc\">{$plist}</ul></div>";
                }
                $tracklegend = '
<fieldset class="fieldset">
<legend>' . $vbphrase['vbseo_trackback'] . '</legend>
<div style="padding:' . $stylevar['formspacer'] . 'px">
' . $vbphrase['vbseo_send_trackbacks_to'] . ':
<div><label for="trackbackto"><input type="text" class="bginput" size="50" name="sendtrackbacks" value="' . $_REQUEST['sendtrackbacks'] . '" id="trackbackto" tabindex="1" /></label> </div>
' . $plist . '
</div>
</fieldset>
';
                if (in_array($sec, array('threadmanage_complete', 'newreply_form_complete', 'newthread_form_complete'))) {
                    $posticons = $tracklegend . $posticons;
                }
            }
            break;
    }
    if (VBSEO_GOOGLE_AD_SEC) {
        $sps = $usps = array();
        switch ($sec) {
            case 'forumdisplay_complete':
                $sps[] =& $GLOBALS['threadbits'];
                break;
            case 'forumbit_display':
                $sps[] =& $GLOBALS['forum']['title'];
                break;
            case 'forumhome_complete':
                $sps[] =& $GLOBALS['forumbits'];
                break;
            case 'postbit_display_complete':
                $GLOBALS['post']['title_original'] = $GLOBALS['post']['title'];
                $GLOBALS['post']['message_original'] = $GLOBALS['post']['message'];
                $sps[] =& $GLOBALS['post']['message'];
                $sps[] =& $GLOBALS['post']['title'];
                $usps[] =& $GLOBALS['post']['signature'];
                $usps[] =& $GLOBALS['post']['musername'];
                break;
        }
        for ($i = 0; $i < count($sps); $i++) {
            if ($sps[$i]) {
                $sps[$i] = vbseo_google_ad_section($sps[$i]);
            }
        }
        for ($i = 0; $i < count($usps); $i++) {
            if ($usps[$i]) {
                $usps[$i] = vbseo_google_ad_section($usps[$i], true);
            }
        }
    }
}
Example #3
0
 function vbseo_replace_urls($preurl, $url, $mid_attribs = '', $posturl = '', $intag = '', $closetag = '')
 {
     global $vboptions, $vbseo_notop_url, $g_replace_cache, $vbseo_gcache, $vbseo_crules, $tempusagecache, $vbulletin, $bbuserinfo;
     $preurl = str_replace('\\"', '"', $preurl);
     $posturl = str_replace('\\"', '"', $posturl);
     $intag = str_replace('\\"', '"', $intag);
     $closetag = str_replace('\\"', '"', $closetag);
     $par_str = '';
     if ($preurl[strlen($preurl) - 1] != $posturl[0] && $posturl && !$GLOBALS['VBSEO_REWRITE_TEXTURLS'] && !$GLOBALS['VBSEO_REWRITE_PRINTTHREAD'] && !$GLOBALS['vbseo_proc_xml']) {
         return $preurl . $url . $posturl . $intag . $closetag;
     }
     if (isset($g_replace_cache[$url])) {
         return $preurl . $g_replace_cache[$url] . $posturl . $intag . $closetag;
     }
     if ($url[0] == '#') {
         return $preurl . (VBSEO_BASEDEPTH && defined('VBSEO_PREPROCESSED') ? VBSEO_REQURL_FULL : '') . $url . $posturl . $intag . $closetag;
     }
     if (VBSEO_REWRITE_THREADS_ADDTITLE && $url[0] == '!') {
         preg_match('#^\\!([mp])?(\\d+)#', $url, $um);
         $url = preg_replace('#^\\![mp]?\\d+\\!#', '', $url);
         $tid = $um[1] == 'p' ? $vbseo_gcache['post'][$um[2]]['threadid'] : $um[2];
         $tinfo = $vbseo_gcache['thread'][$tid];
         $ttitle = $tinfo['title'];
         $is_public = vbseo_forum_is_public($vbseo_gcache['forum'][$tinfo['forumid']]);
         if ($um[1] != 'p' && !strstr($url, 'showthread.' . VBSEO_VB_EXT)) {
             if ($um[1] == 'm') {
                 $rurl = vbseo_thread_url($tid, '#m#', VBSEO_URL_THREAD_PAGENUM);
                 if (!preg_match('#' . str_replace('#m#', '\\d+', preg_quote($rurl, '#')) . '#', $rurl)) {
                     $ttitle = '';
                 }
             } else {
                 $rurl = vbseo_thread_url($tid);
                 if (!$rurl || !strstr($url, $rurl)) {
                     $ttitle = '';
                 }
             }
         }
         if ($ttitle && $intag != $ttitle && ($is_public || $tinfo['forumid'] == $GLOBALS['forumid'])) {
             if (VBSEO_REWRITE_THREADS_ADDTITLE == 1) {
                 $preurl = preg_replace('#(<a\\s)#is', '\\1title="' . htmlspecialchars($ttitle) . '" ', $preurl);
             } else {
                 if (VBSEO_REWRITE_THREADS_ADDTITLE == 2) {
                     $intag = $intag . " ({$ttitle})";
                 } else {
                     if (VBSEO_REWRITE_THREADS_ADDTITLE == 3 && preg_match('#^http:#', $intag)) {
                         $intag = $ttitle;
                     }
                 }
             }
         }
     }
     $rn_q = $preurl[strlen($preurl) - 1];
     if ($rn_q != "'") {
         $rn_q = '"';
     }
     $relnofollow = 'rel=' . $rn_q . 'nofollow' . $rn_q;
     if (strstr($preurl, 'rel="novbseo"') || strstr($preurl, 'rel=\'novbseo\'')) {
         return preg_replace('#rel=[\'"]novbseo[\'"]#', '', $preurl) . $url . $posturl . $intag . $closetag;
     }
     $cproto = 0;
     if (substr($url, 0, 7) == 'mailto:' || substr($url, 0, 11) == 'javascript:' || ($cproto = 1) && strstr($url, '://') && !strstr($url, VBSEO_HTTP_HOST) && !strstr($url, $vboptions['bburl2'])) {
         preg_match('#(?:www\\.)?(.+)$#', VBSEO_HTTP_HOST, $hmatch);
         $vbseo_ext_url = !preg_match('#^[^/]*://(www\\.)?' . preg_quote($hmatch[1], '#') . '#', $url);
         if ($cproto && $vbseo_ext_url) {
             if (VBSEO_NOFOLLOW_EXTERNAL && (!VBSEO_DOMAINS_WHITELIST || !preg_match('#' . VBSEO_DOMAINS_WHITELIST . '#i', $url)) || !VBSEO_NOFOLLOW_EXTERNAL && (VBSEO_DOMAINS_BLACKLIST && preg_match('#' . VBSEO_DOMAINS_BLACKLIST . '#i', $url))) {
                 if (!strstr($preurl . $mid_attribs . $posturl, $relnofollow)) {
                     $preurl = preg_replace('#(<a\\s)#is', '\\1' . $relnofollow . ' ', $preurl);
                 }
             }
             vbseo_urchin_out($preurl, $url, $posturl, substr($intag, 0, 5) == 'Visit' ? 'onmouseup' : '');
         }
         if (VBSEO_REDIRECT_PRIV_EXTERNAL && (strstr($url, 'http://') || strstr($url, 'https://')) && in_array(THIS_SCRIPT, array('showthread', 'printthread', 'showpost', 'forumdisplay', 'newreply')) && strstr($preurl, '<a')) {
             $is_public = vbseo_forum_is_public($GLOBALS['forum'], $GLOBALS['foruminfo']);
             if (strstr($preurl, 'href') && !$is_public && $vbseo_ext_url) {
                 $url = $vboptions['bburl2'] . '/' . VBSEO_REDIRECT_URI . '?redirect=' . urlencode(vbseo_unhtmlentities($url));
             }
         }
         return $preurl . $url . $posturl . $intag . $closetag;
     }
     $url = preg_replace('#([^:]/)/+#', '$1', $url);
     $url_place = $url_append = '';
     if (strpos($url, '?') !== false) {
         list($url_script, $url_append) = explode('?', $url, 2);
     } else {
         $url_script = $url;
     }
     if ($url_append && $url_append[0] == '?') {
         $url_append = substr($url_append, 1);
     }
     if (THIS_SCRIPT == 'archive') {
         if ($url_script == '../index.php/') {
             $url_script = $vboptions['relbburl'] . VBSEO_ARCHIVE_ROOT;
         }
     }
     $url_script = preg_replace('#^(' . $vboptions['bburl2'] . '/?)?archive/(index\\.' . VBSEO_VB_EXT . '/?)?#', '${1}' . substr(VBSEO_ARCHIVE_ROOT, 1), $url_script);
     if (strpos($url_script, '#') !== false) {
         list($url_script, $url_place) = explode('#', $url_script, 2);
     } else {
         if (strpos($url_append, '#') !== false) {
             list($url_parameters, $url_place) = explode('#', $url_append, 2);
         } else {
             $url_parameters = $url_append;
         }
     }
     preg_match('#^(.*?)([^/]*)$#', $url_script, $um);
     $base_script = $um[2];
     $dir_script = $um[1];
     $is_vbdir = !$dir_script && (!VBSEO_BASEDEPTH || defined('VBSEO_AJAX') || defined('VBSEO_BASEHREF_INDIR') || defined('VBSEO_PREPROCESSED')) || strcasecmp($dir_script, VBSEO_TOPREL) == 0 || strcasecmp($dir_script, VBSEO_TOPREL_FULL) == 0 || strcasecmp($dir_script, $vboptions['bburl2'] . '/') == 0 || strcasecmp(str_replace('www.', '', $dir_script), VBSEO_TOPREL_FULL) == 0;
     $topurl = $is_vbdir ? $vboptions['relbburl'] . '/' : $vboptions['bburl2'] . '/';
     $is_vburl = strstr($url_script, $vboptions['bburl2']);
     $pars = explode('&', str_replace('&amp;', '&', $url_parameters));
     $apars = $spars = array();
     for ($i2 = 0; $i2 < count($pars); $i2++) {
         $v = '';
         if (strpos($pars[$i2], '=') !== false) {
             list($k, $v) = explode('=', $pars[$i2], 2);
         } else {
             $k = $pars[$i2];
         }
         if ($k) {
             $dec_v = urldecode($v);
             if (strstr($dec_v, 'http:') && strstr($dec_v, $vboptions['bburl2'])) {
                 $dec_v = vbseo_replace_urls('', $dec_v);
                 $v = urlencode($dec_v);
             }
             $apars[$k] = $v;
             $spars[] = array($k, $v);
         }
     }
     if (THIS_SCRIPT == 'online' && strstr($posturl, 'alt')) {
         $posturl = preg_replace('#(alt=")([^"]*)#se', "vbseo_replace_urls('\$1', '\$2')", $posturl);
     }
     if (VBSEO_IMAGES_DIM && strstr($preurl, '<img')) {
         $dexp = explode('/', $dir_script);
         $base_script2 = count($dexp) > 1 ? $dexp[count($dexp) - 2] . '/' . $base_script : '';
         $base_script3 = count($dexp) > 2 ? $dexp[count($dexp) - 3] . '/' . $base_script2 : '';
         $base_script4 = count($dexp) > 3 ? $dexp[count($dexp) - 4] . '/' . $base_script3 : '';
         if ((($imd = $GLOBALS['vbseo_images_dim'][$base_script]) || ($imd = $GLOBALS['vbseo_images_dim'][$base_script2]) || ($imd = $GLOBALS['vbseo_images_dim'][$base_script3]) || ($imd = $GLOBALS['vbseo_images_dim'][$base_script4])) && ($iw = $imd[0]) && ($ih = $imd[1]) && !strstr($posturl, 'width=')) {
             $preurl = preg_replace('#(<img\\s)#is', '\\1width="' . $iw . '" height="' . $ih . '" ', $preurl);
             return $preurl . $url . $posturl . $intag . $closetag;
         }
     }
     global $session, $vbulletin, $VBSEO_REWRITE_TEXTURLS;
     if (!isset($session) && isset($vbulletin->session)) {
         $session = $vbulletin->session->vars;
     }
     $vbseo_session_append = '';
     if (isset($apars['s'])) {
         $strip_sids = isset($session) && in_array($apars['s'], $session) && (!defined('VBSEO_STRIP_SIDS') || VBSEO_STRIP_SIDS) || isset($VBSEO_REWRITE_TEXTURLS);
         if (VBSEO_STRIPSID_GUESTS && !$bbuserinfo['userid']) {
             $strip_sids = true;
         }
         if (!$strip_sids) {
             $vbseo_session_append = 's=' . $apars['s'];
         }
         unset($apars['s']);
         $url_parameters = preg_replace('#^s=[\\da-z]+(&amp;|&)*#', '', $url_parameters);
         $url_parameters = preg_replace('#(&amp;|&)s=[\\da-z]+#', '', $url_parameters);
         if (count($spars) == 1 && $spars[0][0] == 's') {
             $spars = array();
         }
     }
     $clear_all_par = false;
     if (THIS_SCRIPT == 'archive') {
         if (VBSEO_REWRITE_ARCHIVE_URLS && !$_COOKIE[vbseo_vb_cprefix() . 'pda']) {
             if (preg_match('#\\bt-(\\d+)\\.html#', $base_script, $tmatch) || preg_match('#\\bt-(\\d+)\\.html#', $url_parameters, $tmatch)) {
                 $url_script = $topurl . (VBSEO_REWRITE_THREADS ? vbseo_thread_url($tmatch[1], 1) : 'showthread.' . VBSEO_VB_EXT . '?' . VBSEO_THREADID_URI . '=' . $tmatch[1]);
                 $clear_all_par = true;
             }
             if (!VBSEO_VB35X && preg_match('#^f-(\\d+)-p-1\\.html$#', $base_script, $tmatch)) {
                 $url_script = str_replace('-p-1.html', '.html', $url_script);
                 $clear_all_par = true;
             }
         }
     }
     if (!$clear_all_par && defined('VBSEO_ARCHIVE_ROOT') && VBSEO_ARCHIVE_ROOT) {
         if (preg_match('#index.' . VBSEO_VB_EXT . '\\?((t|f)-(\\d+)(-p-\\d+)?\\.html)#', $url, $tmatch)) {
             $url_script = $vboptions['relbburl'] . VBSEO_ARCHIVE_ROOT . $tmatch[1];
             $clear_all_par = true;
         }
     }
     if (!$clear_all_par) {
         if (count($apars) == 1 && preg_match('#^[ft]-#', $url_parameters)) {
             $par_str = $url_append;
             $topurl = '';
             $clear_all_par = true;
         }
     }
     $nofollow = $follow = $noproc = false;
     if (isset($apars['threadid'])) {
         $apars[VBSEO_THREADID_URI] = $apars['threadid'];
     }
     if (!$clear_all_par && $is_vbdir) {
         if ($base_script == 'index.' . VBSEO_VB_EXT && !$url_parameters && VBSEO_HP_FORCEINDEXROOT) {
             $url_script = (isset($VBSEO_REWRITE_TEXTURLS) || THIS_SCRIPT == 'sendmessage2' ? '' : $topurl) . VBSEO_HOMEPAGE;
         } else {
             switch ($base_script) {
                 case 'forumdisplay.' . VBSEO_VB_EXT:
                     if (VBSEO_REWRITE_FORUM) {
                         if (($fid = $apars[VBSEO_FORUMID_URI]) || ($fid = $apars[VBSEO_FORUMID_URI2])) {
                             $url_script = vbseo_forum_url($fid, isset($apars[VBSEO_PAGENUM_URI]) ? $apars[VBSEO_PAGENUM_URI] : 0);
                         } else {
                             $noproc = true;
                         }
                         $def_so = $vbseo_gcache['forum'][$fid]['defaultsortorder'] ? $vbseo_gcache['forum'][$fid]['defaultsortorder'] : VBSEO_DEFAULT_FORUMDISPLAY_ORDER;
                         $def_sf = $vbseo_gcache['forum'][$fid]['defaultsortfield'] ? $vbseo_gcache['forum'][$fid]['defaultsortfield'] : VBSEO_DEFAULT_FORUMDISPLAY_SORT;
                         if ((!isset($apars[VBSEO_SORT_URI]) || $apars[VBSEO_SORT_URI] == $def_sf) && (!isset($apars[VBSEO_SORTORDER_URI]) || $apars[VBSEO_SORTORDER_URI] == $def_so) && !isset($apars[VBSEO_ACTION_URI])) {
                             unset($apars[VBSEO_SORTORDER_URI]);
                             unset($apars[VBSEO_ACTION_URI]);
                             unset($apars[VBSEO_SORT_URI]);
                         }
                         if ($vbseo_gcache['forum'][$fid]['link']) {
                             preg_match('#(([^\\.]+\\.)?[^\\.]+)$#', VBSEO_HTTP_HOST, $hmatch);
                             if (!preg_match('#^[^/]*://[^/]*' . preg_quote($hmatch[1], '#') . '#', $url_script)) {
                                 vbseo_urchin_out($preurl, $url_script, $posturl);
                             }
                             $noproc = true;
                             $url_parameters = '';
                         }
                         if (isset($apars['daysprune']) && $GLOBALS['forumcache'][$fid]['daysprune'] == $apars['daysprune'] && $bbuserinfo['daysprune'] == $apars['daysprune']) {
                             unset($apars['daysprune']);
                         }
                         unset($apars['pp']);
                         unset($apars[VBSEO_FORUMID_URI]);
                         unset($apars[VBSEO_FORUMID_URI2]);
                         unset($apars[VBSEO_PAGENUM_URI]);
                     }
                     break;
                 case 'announcement.' . VBSEO_VB_EXT:
                     if (VBSEO_REWRITE_ANNOUNCEMENT) {
                         if (($fid = $apars[VBSEO_FORUMID_URI]) || ($fid = $apars[VBSEO_FORUMID_URI2])) {
                             $url_script = vbseo_announcement_url($fid, isset($apars['a']) ? $apars['a'] : $apars['announcementid']);
                             $clear_all_par = true;
                         }
                     }
                     break;
                 case 'showthread.' . VBSEO_VB_EXT:
                     if (VBSEO_REWRITE_THREADS) {
                         $tinfo = $vbseo_gcache['thread'][$apars[VBSEO_THREADID_URI]];
                         if ($tinfo['forumid']) {
                             $is_public = vbseo_forum_is_public($vbseo_gcache['forum'][$tinfo['forumid']], '', true);
                             if (!$is_public) {
                                 if (!($apars['goto'] == 'newpost' && $GLOBALS['VBSEO_REWRITE_TEXTURLS'])) {
                                     break;
                                 }
                             }
                         }
                         if (isset($apars['goto']) && $apars['goto'] == 'newpost' && ((defined('VBSEO_REWRITE_EXTERNAL') || !$bbuserinfo['userid']) && VBSEO_DIRECTLINKS_THREADS)) {
                             $posturl = preg_replace('#(title=)".*?"#i', '', $posturl);
                             unset($apars['goto']);
                         }
                         $newurl = '';
                         if (isset($apars[VBSEO_POSTID_URI]) && ($r_post_id = $apars[VBSEO_POSTID_URI]) || isset($apars['postid']) && ($r_post_id = $apars['postid'])) {
                             if ($apars['do'] || $apars[VBSEO_THREADID_URI]) {
                                 break;
                             }
                             if ($newurl = vbseo_thread_url_postid($r_post_id, isset($apars[VBSEO_PAGENUM_URI]) ? $apars[VBSEO_PAGENUM_URI] : 1)) {
                                 $tinfo = $vbseo_gcache['thread'][$vbseo_gcache['post'][$r_post_id]['threadid']];
                                 if ($tinfo['forumid']) {
                                     $is_public = vbseo_forum_is_public($vbseo_gcache['forum'][$tinfo['forumid']], '', true);
                                     if (!$is_public) {
                                         $newurl = '';
                                     }
                                 }
                                 if ($url_place) {
                                     $newurl = preg_replace('|#.*|', '', $newurl);
                                 }
                             }
                         } else {
                             if (isset($apars['goto'])) {
                                 if ($apars['goto'] == 'newpost') {
                                     $newurl = vbseo_thread_url($apars[VBSEO_THREADID_URI], '', VBSEO_URL_THREAD_NEWPOST);
                                 } else {
                                     if ($apars['goto'] == 'lastpost') {
                                         $newurl = vbseo_thread_url($apars[VBSEO_THREADID_URI], '', VBSEO_URL_THREAD_LASTPOST);
                                     } else {
                                         if ($apars['goto'] == 'nextnewest') {
                                             if (VBSEO_URL_THREAD_NEXT_DIRECT) {
                                                 $nthread = vbseo_get_next_thread($apars[VBSEO_THREADID_URI], false);
                                                 $follow = true;
                                                 if ($nthread['threadid']) {
                                                     $url_script = vbseo_thread_url($nthread['threadid']);
                                                     $intag = function_exists('fetch_censored_text') ? fetch_censored_text($nthread['title']) : '';
                                                     $clear_all_par = true;
                                                 } else {
                                                     return '-';
                                                 }
                                             } else {
                                                 $newurl = vbseo_thread_url($apars[VBSEO_THREADID_URI], '', VBSEO_URL_THREAD_NEXT);
                                             }
                                         } else {
                                             if ($apars['goto'] == 'nextoldest') {
                                                 if (VBSEO_URL_THREAD_PREV_DIRECT) {
                                                     $follow = true;
                                                     $nthread = vbseo_get_next_thread($apars[VBSEO_THREADID_URI], true);
                                                     if ($nthread['threadid']) {
                                                         $url_script = vbseo_thread_url($nthread['threadid']);
                                                         $intag = function_exists('fetch_censored_text') ? fetch_censored_text($nthread['title']) : '';
                                                         $clear_all_par = true;
                                                     } else {
                                                         return '-';
                                                     }
                                                 } else {
                                                     $newurl = vbseo_thread_url($apars[VBSEO_THREADID_URI], '', VBSEO_URL_THREAD_PREV);
                                                 }
                                             }
                                         }
                                     }
                                 }
                             } else {
                                 if (VBSEO_ENABLE_GARS && isset($apars[VBSEO_PAGENUM_URI_GARS])) {
                                     $newurl = vbseo_thread_url($apars[VBSEO_THREADID_URI], $apars[VBSEO_PAGENUM_URI_GARS], VBSEO_URL_THREAD_GARS_PAGENUM);
                                 } else {
                                     if (!isset($apars['goto'])) {
                                         $newurl = vbseo_thread_url($apars[VBSEO_THREADID_URI], isset($apars[VBSEO_PAGENUM_URI]) ? $apars[VBSEO_PAGENUM_URI] : 0);
                                     }
                                 }
                             }
                         }
                         if ($newurl) {
                             $url_script = $newurl;
                             unset($apars[VBSEO_POSTID_URI]);
                             unset($apars['postid']);
                             unset($apars[VBSEO_THREADID_URI]);
                             unset($apars[VBSEO_PAGENUM_URI]);
                             if (VBSEO_ENABLE_GARS) {
                                 unset($apars[VBSEO_PAGENUM_URI_GARS]);
                             }
                             unset($apars['threadid']);
                             unset($apars['pp']);
                             unset($apars['goto']);
                         }
                     }
                     break;
                 case 'printthread.' . VBSEO_VB_EXT:
                     if (VBSEO_REWRITE_PRINTTHREAD) {
                         $url_script = vbseo_thread_url($apars[VBSEO_THREADID_URI], $apars[VBSEO_PAGENUM_URI], $apars[VBSEO_PAGENUM_URI] + 0 > 1 ? VBSEO_URL_THREAD_PRINT_PAGENUM : VBSEO_URL_THREAD_PRINT);
                         unset($apars[VBSEO_THREADID_URI]);
                         unset($apars[VBSEO_PAGENUM_URI]);
                         if ($apars['pp'] == $vboptions['maxposts']) {
                             unset($apars['pp']);
                         }
                         if (VBSEO_NOFOLLOW_PRINTTHREAD) {
                             $nofollow = true;
                         }
                     }
                     break;
                 case 'showpost.' . VBSEO_VB_EXT:
                     $url_script2 = '';
                     if (VBSEO_POSTBIT_PINGBACK == 2 && $apars['postcount']) {
                         global $vbphrase;
                         $url_script2 = vbseo_thread_url_postid($apars[VBSEO_POSTID_URI], 1, false, $apars['postcount']);
                         $posturl = str_replace('>', ' title="' . $vbphrase['vbseo_permalink'] . '">', $posturl);
                         if ($url_script) {
                             $posturl = str_replace('target="new"', '', $posturl);
                             $clear_all_par = true;
                         }
                     }
                     if (VBSEO_REWRITE_SHOWPOST && $apars[VBSEO_POSTID_URI]) {
                         if (!$url_script2) {
                             $url_script2 = vbseo_post_url($apars[VBSEO_POSTID_URI], $apars['postcount']);
                         }
                         $clear_all_par = true;
                     }
                     if ($url_script2) {
                         $url_script = $url_script2;
                     }
                     if (VBSEO_NOFOLLOW_SHOWPOST == 2) {
                         global $threadinfo;
                         if ($threadinfo['replycount'] == $apars['postcount'] - 1 && $apars['postcount'] % $vboptions['maxposts'] == 1) {
                             $nofollow = true;
                         } else {
                             $follow = true;
                         }
                     } else {
                         if (VBSEO_NOFOLLOW_SHOWPOST == 1) {
                             $nofollow = true;
                         } else {
                             if (VBSEO_NOFOLLOW_SHOWPOST == 0) {
                                 $follow = true;
                             }
                         }
                     }
                     break;
                 case 'poll.' . VBSEO_VB_EXT:
                     if (VBSEO_REWRITE_POLLS) {
                         if ($apars[VBSEO_ACTION_URI] == 'showresults') {
                             $url_script = vbseo_poll_url($apars[VBSEO_POLLID_URI]);
                             $clear_all_par = true;
                         }
                     }
                     break;
                 case 'album.' . VBSEO_VB_EXT:
                     if (VBSEO_REWRITE_MEMBERS && !isset($apars['do'])) {
                         if (isset($apars['pictureid'])) {
                             $newurl = vbseo_album_url($apars['page'] > 1 ? 'VBSEO_URL_MEMBER_PICTURE_PAGE' : 'VBSEO_URL_MEMBER_PICTURE', $apars);
                         } else {
                             if (isset($apars['albumid']) && count($apars) == 1) {
                                 $newurl = vbseo_album_url('VBSEO_URL_MEMBER_ALBUM', $apars);
                             } else {
                                 if (isset($apars['u']) && count($apars) == 1) {
                                     $newurl = vbseo_album_url('VBSEO_URL_MEMBER_ALBUMS', $apars);
                                 }
                             }
                         }
                         if ($newurl) {
                             $url_script = $newurl;
                             unset($apars['pictureid']);
                             unset($apars['albumid']);
                             unset($apars['u']);
                             unset($apars['page']);
                         }
                     }
                     break;
                 case 'picture.' . VBSEO_VB_EXT:
                     if (VBSEO_REWRITE_MEMBERS && !isset($apars['do'])) {
                         if (isset($apars['albumid']) && isset($apars['pictureid'])) {
                             $newurl = vbseo_album_url('VBSEO_URL_MEMBER_PICTURE_IMG', $apars);
                         } else {
                             if (isset($apars['groupid']) && isset($apars['pictureid'])) {
                                 $newurl = vbseo_group_url(VBSEO_URL_GROUPS_PICTURE_IMG, $apars);
                             }
                         }
                         if ($newurl) {
                             $url_script = $newurl;
                             $clear_all_par = true;
                         }
                     }
                     break;
                 case 'member.' . VBSEO_VB_EXT:
                     if (VBSEO_REWRITE_MEMBERS) {
                         if (!isset($apars['u']) && isset($apars['userid'])) {
                             $apars['u'] = $apars['userid'];
                         }
                         if (isset($apars['find']) && $apars['find'] == 'lastposter') {
                             if ($apars[VBSEO_FORUMID_URI]) {
                                 $url_script = vbseo_member_url(0, $vbseo_gcache['forum'][$apars[VBSEO_FORUMID_URI]]['lastposter'] ? $vbseo_gcache['forum'][$apars[VBSEO_FORUMID_URI]]['lastposter'] : $intag);
                             } else {
                                 $url_script = vbseo_member_url(0, $vbseo_gcache['thread'][$apars[VBSEO_THREADID_URI]]['lastposter'] ? $vbseo_gcache['thread'][$apars[VBSEO_THREADID_URI]]['lastposter'] : $intag);
                             }
                             $clear_all_par = true;
                         } else {
                             if (isset($apars['username'])) {
                                 $url_script = vbseo_member_url(0, $apars['username']);
                                 $clear_all_par = true;
                             } else {
                                 if ($apars['tab'] == 'visitor_messaging' && $apars['page'] > 1) {
                                     $url_place = '';
                                     $url_script = vbseo_member_url($apars['u'], '', 'VBSEO_URL_MEMBER_MSGPAGE', array('%page%' => $apars['page']));
                                     $clear_all_par = true;
                                 } else {
                                     if ($apars['tab'] == 'friends' && $apars['page'] > 1) {
                                         $url_script = vbseo_member_url($apars['u'], '', 'VBSEO_URL_MEMBER_FRIENDSPAGE', array('%page%' => $apars['page']));
                                         $clear_all_par = true;
                                     } else {
                                         if (isset($apars['u']) && !isset($apars['do']) && !isset($apars['simple']) && !isset($apars['dozoints']) && !isset($apars['sort']) && !isset($apars['showignored'])) {
                                             $url_script = vbseo_member_url($apars['u']);
                                             if (isset($apars['nozoints']) || isset($apars['page']) || isset($apars['showall']) || isset($apars['explain'])) {
                                                 unset($apars['u']);
                                             } else {
                                                 $clear_all_par = true;
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     }
                     if ($tempusagecache['SHOWTHREAD']) {
                         if (VBSEO_NOFOLLOW_MEMBER_POSTBIT) {
                             $nofollow = true;
                         } else {
                             $follow = true;
                         }
                     } else {
                         if ($tempusagecache['FORUMHOME'] || $tempusagecache['FORUMDISPLAY']) {
                             if (VBSEO_NOFOLLOW_MEMBER_FORUMHOME) {
                                 $nofollow = true;
                             } else {
                                 $follow = true;
                             }
                         }
                     }
                     break;
                 case 'converse.' . VBSEO_VB_EXT:
                     if (VBSEO_REWRITE_MEMBERS) {
                         $url_script = vbseo_member_url($apars['u'], '', $apars['page'] ? 'VBSEO_URL_MEMBER_CONVPAGE' : 'VBSEO_URL_MEMBER_CONV', array(), $apars);
                         if ($url_script) {
                             unset($apars['u']);
                             unset($apars['u2']);
                             unset($apars['page']);
                         }
                     }
                     break;
                 case 'image.' . VBSEO_VB_EXT:
                     if (VBSEO_REWRITE_AVATAR) {
                         if (isset($apars[VBSEO_USERID_URI]) && (!isset($apars['type']) || $apars['type'] != 'profile')) {
                             $url_script = vbseo_member_url($apars[VBSEO_USERID_URI], '', 'VBSEO_URL_AVATAR');
                             unset($apars[VBSEO_USERID_URI]);
                         }
                     }
                     break;
                 case 'memberlist.' . VBSEO_VB_EXT:
                     if (VBSEO_REWRITE_MEMBER_LIST) {
                         if (isset($apars['ltr']) || !isset($apars[VBSEO_ACTION_URI]) || $apars[VBSEO_ACTION_URI] == 'getall') {
                             $url_script = vbseo_memberlist_url(isset($apars['ltr']) ? $apars['ltr'] : '', isset($apars[VBSEO_PAGENUM_URI]) ? $apars[VBSEO_PAGENUM_URI] : '');
                             $apars2 = $apars;
                             $unsetpar = array('ltr', 'pp', VBSEO_SORT_URI, VBSEO_SORTORDER_URI, VBSEO_ACTION_URI, VBSEO_PAGENUM_URI);
                             foreach ($unsetpar as $i => $up) {
                                 unset($apars2[$up]);
                             }
                             if ((!isset($apars[VBSEO_SORT_URI]) || $apars[VBSEO_SORT_URI] == VBSEO_DEFAULT_MEMBERLIST_SORT) && (!isset($apars[VBSEO_SORTORDER_URI]) || stristr($apars[VBSEO_SORTORDER_URI], VBSEO_DEFAULT_MEMBERLIST_ORDER)) && count($apars2) == 0) {
                                 $clear_all_par = true;
                             } else {
                                 unset($apars['ltr']);
                                 unset($apars[VBSEO_ACTION_URI]);
                                 unset($apars[VBSEO_PAGENUM_URI]);
                             }
                         }
                     }
                     break;
                 case 'attachment.' . VBSEO_VB_EXT:
                     if ($apars['attachmentid']) {
                         if (VBSEO_REWRITE_ATTACHMENTS_ALT && $apars['thumb'] && ($newalt = vbseo_attachment_url($apars['attachmentid'], VBSEO_URL_ATTACHMENT_ALT))) {
                             $posturl = preg_replace('#(alt=)"[^"]*#is', '$1"' . htmlspecialchars($newalt), $posturl);
                         }
                         if (VBSEO_REWRITE_ATTACHMENTS && ($newurl = vbseo_attachment_url($apars['attachmentid'], '', $apars['d'], $apars['thumb']))) {
                             $url_script = $newurl;
                             unset($apars['attachmentid']);
                             unset($apars['stc']);
                             unset($apars['d']);
                             unset($apars['thumb']);
                         }
                     }
                     break;
                 case 'blog_attachment.' . VBSEO_VB_EXT:
                     if (VBSEO_REWRITE_BLOGS_ATT && ($newurl = vbseo_blog_url(VBSEO_URL_BLOG_ATT, $apars))) {
                         $url_script = $newurl;
                         unset($apars['attachmentid']);
                         unset($apars['stc']);
                         unset($apars['d']);
                         unset($apars['thumb']);
                     }
                     break;
                 case 'tags.' . VBSEO_VB_EXT:
                     if (VBSEO_REWRITE_TAGS) {
                         if ($apars['tag']) {
                             $newurl = vbseo_tags_url($apars['page'] ? VBSEO_URL_TAGS_ENTRYPAGE : VBSEO_URL_TAGS_ENTRY, $apars);
                         } else {
                             if (count($apars) == 0) {
                                 $newurl = vbseo_tags_url(VBSEO_URL_TAGS_HOME);
                             }
                         }
                         if ($newurl) {
                             $url_script = $newurl;
                             unset($apars['tag']);
                             unset($apars['page']);
                         }
                     }
                     break;
                 case 'blog_external.' . VBSEO_VB_EXT:
                     if (VBSEO_REWRITE_BLOGS_FEED) {
                         if ($apars['bloguserid']) {
                             $newurl = vbseo_blog_url(VBSEO_URL_BLOG_FEEDUSER, $apars);
                         } else {
                             $newurl = vbseo_blog_url(VBSEO_URL_BLOG_FEED);
                         }
                         if ($newurl) {
                             $url_script = $newurl;
                             $clear_all_par = true;
                         }
                     }
                     break;
                 case 'blog.' . VBSEO_VB_EXT:
                     if (VBSEO_REWRITE_BLOGS) {
                         if (count($apars) == 0) {
                             $newurl = vbseo_blog_url(VBSEO_URL_BLOG_HOME, $apars);
                         } else {
                             if ($apars['u']) {
                                 if (count($apars) == 1 || count($apars) == 2 && $apars['blogtype'] == 'recent') {
                                     $newurl = vbseo_blog_url(VBSEO_URL_BLOG_USER, $apars);
                                 } else {
                                     if ($apars['page'] && (count($apars) == 2 || count($apars) == 3 && $apars['blogtype'] == 'recent')) {
                                         $newurl = vbseo_blog_url(VBSEO_URL_BLOG_USER_PAGE, $apars);
                                     } else {
                                         if ($apars[VBSEO_BLOG_CATID_URI]) {
                                             if (VBSEO_REWRITE_BLOGS_CAT) {
                                                 $newurl = vbseo_blog_url($apars['page'] ? VBSEO_URL_BLOG_CAT_PAGE : VBSEO_URL_BLOG_CAT, $apars);
                                             }
                                         } else {
                                             if (VBSEO_REWRITE_BLOGS_LIST) {
                                                 if ($apars['d'] && !$apars['page']) {
                                                     $newurl = vbseo_blog_url(VBSEO_URL_BLOG_UDAY, $apars);
                                                 } else {
                                                     if ($apars['m'] && !$apars['page']) {
                                                         $newurl = vbseo_blog_url(VBSEO_URL_BLOG_UMONTH, $apars);
                                                     }
                                                 }
                                             }
                                         }
                                     }
                                 }
                             } else {
                                 if (($apars['b'] || $apars['blogid']) && (count($apars) == 1 || $apars['goto'] == 'newpost')) {
                                     if (VBSEO_REWRITE_BLOGS_ENT) {
                                         $newurl = vbseo_blog_url(VBSEO_URL_BLOG_ENTRY, $apars);
                                     }
                                 } else {
                                     if ($apars['b'] && $apars['goto']) {
                                         if (VBSEO_REWRITE_BLOGS_ENT) {
                                             $newurl = vbseo_blog_url($apars['goto'] == 'next' ? VBSEO_URL_BLOG_NEXT : VBSEO_URL_BLOG_PREV, $apars);
                                         }
                                     } else {
                                         if ($apars['bt'] && strstr($url, 'blog.') && count($apars) == 1) {
                                             if (VBSEO_REWRITE_BLOGS_ENT) {
                                                 $newurl = vbseo_blog_url(VBSEO_URL_BLOG_ENTRY_REDIR, $apars);
                                             }
                                         } else {
                                             if (VBSEO_REWRITE_BLOGS_LIST && $apars['do'] == 'bloglist') {
                                                 if (count($apars) == 1 || $apars['page']) {
                                                     $newurl = vbseo_blog_url($apars['page'] ? VBSEO_URL_BLOG_BLIST_PAGE : VBSEO_URL_BLOG_BLIST, $apars);
                                                 } else {
                                                     if ($apars['blogtype'] == 'best') {
                                                         $newurl = vbseo_blog_url($apars['page'] ? VBSEO_URL_BLOG_BEST_BLOGS_PAGE : VBSEO_URL_BLOG_BEST_BLOGS, $apars);
                                                     }
                                                 }
                                             } else {
                                                 if (VBSEO_REWRITE_BLOGS_LIST && $apars['do'] == 'comments') {
                                                     if (count($apars) == 1) {
                                                         $newurl = vbseo_blog_url(VBSEO_URL_BLOG_CLIST);
                                                     } else {
                                                         if ($apars['page']) {
                                                             $newurl = vbseo_blog_url(VBSEO_URL_BLOG_CLIST_PAGE, $apars);
                                                         }
                                                     }
                                                 } else {
                                                     if (VBSEO_REWRITE_BLOGS_LIST && $apars['do'] == 'list') {
                                                         if (!$apars['blogtype'] && !$apars['y'] || in_array($apars['blogtype'], array('recent', 'latest'))) {
                                                             $newurl = vbseo_blog_url($apars['page'] ? VBSEO_URL_BLOG_LIST_PAGE : VBSEO_URL_BLOG_LIST, $apars);
                                                         } else {
                                                             if ($apars['blogtype'] == 'best') {
                                                                 $newurl = vbseo_blog_url($apars['page'] ? VBSEO_URL_BLOG_BEST_ENT_PAGE : VBSEO_URL_BLOG_BEST_ENT, $apars);
                                                             } else {
                                                                 if ($apars['d']) {
                                                                     $newurl = vbseo_blog_url($apars['page'] ? VBSEO_URL_BLOG_DAY_PAGE : VBSEO_URL_BLOG_DAY, $apars);
                                                                 } else {
                                                                     if ($apars['m']) {
                                                                         $newurl = vbseo_blog_url($apars['page'] ? VBSEO_URL_BLOG_MONTH_PAGE : VBSEO_URL_BLOG_MONTH, $apars);
                                                                     }
                                                                 }
                                                             }
                                                         }
                                                     }
                                                 }
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     }
                     if ($newurl) {
                         $url_script = $newurl;
                         $clear_all_par = true;
                     } else {
                         $noproc = true;
                     }
                     break;
                 case 'group.' . VBSEO_VB_EXT:
                     if (VBSEO_REWRITE_GROUPS) {
                         if ($apars['pp'] == $vboptions['vm_perpage']) {
                             unset($apars['pp']);
                         }
                         if ($apars['gmid'] && !isset($apars['do'])) {
                             $apars['page'] = vbseo_grp_pagenum($apars['groupid'], $apars['gmid']);
                             $url_place = 'gmessage' . $apars['gmid'];
                             unset($apars['gmid']);
                         }
                         if ($apars['do'] == 'grouplist' && $apars['sort'] == 'lastpost') {
                             unset($apars['sort']);
                         }
                         if (count($apars) == 0 || $apars['do'] == 'grouplist' && count($apars) == 1) {
                             $newurl = vbseo_group_url(VBSEO_URL_GROUPS_HOME, $apars);
                         } else {
                             if ($apars['do'] == 'grouplist' && $apars['page']) {
                                 $newurl = vbseo_group_url(VBSEO_URL_GROUPS_HOME_PAGE, $apars);
                             } else {
                                 if ($apars['do'] == 'viewmembers') {
                                     $newurl = vbseo_group_url($apars['page'] > 1 ? VBSEO_URL_GROUPS_MEMBERS_PAGE : VBSEO_URL_GROUPS_MEMBERS, $apars);
                                 } else {
                                     if ($apars['do'] == 'grouppictures') {
                                         $newurl = vbseo_group_url($apars['page'] > 1 ? VBSEO_URL_GROUPS_PIC_PAGE : VBSEO_URL_GROUPS_PIC, $apars);
                                     } else {
                                         if ($apars['do'] == 'picture') {
                                             $newurl = vbseo_group_url($apars['page'] > 1 ? VBSEO_URL_GROUPS_PICTURE_PAGE : VBSEO_URL_GROUPS_PICTURE, $apars);
                                         } else {
                                             if ($apars['groupid'] && (count($apars) == 1 || $apars['do'] == 'view' || $apars['page'] && $apars['page'] < 2)) {
                                                 $newurl = vbseo_group_url(VBSEO_URL_GROUPS, $apars);
                                             } else {
                                                 if ($apars['groupid'] && count($apars) == 2 && $apars['page']) {
                                                     $newurl = vbseo_group_url(VBSEO_URL_GROUPS_PAGE, $apars);
                                                 }
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                         if ($newurl) {
                             $url_script = $newurl;
                             $clear_all_par = true;
                         } else {
                             $noproc = true;
                         }
                     }
                     break;
                 default:
                     $noproc = true;
                     if (isset($apars['do']) && $apars['do'] == 'getdaily') {
                         $follow = true;
                     }
                     break;
             }
         }
     } else {
         $noproc = true;
     }
     if ($noproc) {
         if ($newurl = vbseo_apply_crr(($is_vbdir ? $base_script : $url_script) . ($url_parameters ? '?' . $url_parameters : ''), $nofollow)) {
             $url_script = $newurl;
             $clear_all_par = true;
             if ($is_vbdir) {
                 $noproc = false;
             }
         }
     }
     if ($noproc && !$is_vbdir && (!VBSEO_INFORUMDIR || $url[0] == '/' || !(VBSEO_BASEDEPTH && defined('VBSEO_PREPROCESSED'))) || (isset($VBSEO_REWRITE_TEXTURLS) || THIS_SCRIPT == 'sendmessage') || !defined('VBSEO_PREPROCESSED') && !$is_vburl && !VBSEO_BASEDEPTH && THIS_SCRIPT != 'index') {
         $topurl = '';
     }
     $amp_sign = isset($VBSEO_REWRITE_TEXTURLS) && !defined('VBSEO_REWRITE_EXTERNAL') ? '&' : '&amp;';
     if (!$clear_all_par) {
         if ($url_parameters && $url_parameters[0] == '=' || !strstr($url_parameters, '=')) {
             $par_str .= $url_parameters;
         } else {
             if (count($spars) == 1 && (!strstr($url_parameters, '=') || $url_parameters[0] == '=')) {
                 $par_str .= $spars[0][0];
             } else {
                 for ($i = 0; $i < count($spars); $i++) {
                     $k = $spars[$i][0];
                     $v = $spars[$i][1];
                     if (isset($apars[$k])) {
                         $par_str .= ($par_str ? $amp_sign : '') . $k . '=' . $v;
                     }
                 }
             }
         }
     } else {
         unset($apars);
     }
     if ($vbseo_session_append) {
         $par_str .= ($par_str ? $amp_sign : '') . $vbseo_session_append;
     }
     if ($url_script[0] != '/' && !strstr(substr($url_script, 3, 5), ':')) {
         $url_script = ($preurl ? $topurl : $vboptions['bburl2'] . '/') . $url_script;
     }
     $newurl = $url_script . ($par_str ? '?' . $par_str : '') . ($url_place ? '#' . $url_place : '');
     if ($follow) {
         $posturl = str_replace($relnofollow, '', $posturl);
         $preurl = str_replace($relnofollow, '', $preurl);
     } else {
         if ($nofollow || isset($apars['sort']) && VBSEO_NOFOLLOW_SORT || $apars && VBSEO_NOFOLLOW_DYNA) {
             if (!strstr($preurl . $mid_attribs . $posturl, ' rel=')) {
                 $preurl = preg_replace('#(<a\\s)#is', '\\1' . $relnofollow . ' ', $preurl);
             }
         } else {
             $g_replace_cache[$url] = $newurl;
         }
     }
     if ($GLOBALS['VBSEO_REWRITE_TEXTURLS'] && strstr($newurl, 'http://') && strstr($preurl, 'http://')) {
         $preurl = '';
     }
     if ($url == $intag) {
         $intag = $newurl;
     }
     return $preurl . $newurl . $posturl . $intag . $closetag;
 }