vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 3.5 Add-ons (https://vborg.vbsupport.ru/forumdisplay.php?f=113)
-   -   vRewrite - SEOed URLs for vBulletin (https://vborg.vbsupport.ru/showthread.php?t=104484)

GamerJunk.net 01-06-2006 02:06 AM

Yea we posted right after another

but now I am getting this error...

Parse error: parse error, unexpected $ in /home/gsnforce/public_html/forum/includes/functions.php(4314) : eval()'d code on line 30 on the header of my forums...

and then also my showthraed is fudged...I get

Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/gsnforce/public_html/forum/showthread.php(1911) : eval()'d code on line 325

GamerJunk.net 01-06-2006 02:10 AM

Ok I Fixed the showthread problem....but what about that link at the top of my forums??

www.gsnforce.com/forum

LincolnForums 01-06-2006 02:10 AM

wondering if this will work with such hacks as the vB Goolge/Yahoo site map

Immortal 01-06-2006 02:11 AM

Thanks, eXaulz. That's weird - I figured that was the problem but my dev board has all the spaces. Let me re-export the product and reupload to see if that solves all the issues.

RasMasta - Let me see if the issue still exist after I reupload the ZIP. :)

Quote:

Originally Posted by LincolnForums
wondering if this will work with such hacks as the vB Goolge/Yahoo site map

It will work persay. But the URLs won't be rewritten unless the author of the hack has specifically fixed it. I'll try and release an addon for one of the generators that uses vRewrite - once it goes stable.

GamerJunk.net 01-06-2006 02:12 AM

Also it isn;t working on my forum....it's not rewriting the threads....do I need to run an update or something on thread titles?

eXaulz 01-06-2006 02:13 AM

Hmmm. Let me check the plugin code real quick, RasMasta.

Not sure if this will work, I just changed the syntax. Besides, I'm not getting those errors on here - so I'm just guessing.

Go to AdminCP -> Plugin System > Plugin Manager >> Click on the vRewrite plugin found under Hook Location : global_complete. Replace the PHP code (found in the big Text Area) with the following: (yes, it works fine)

PHP Code:

if($vbulletin->options['vRewrite_on'])
{
#------------------------------
# Replace Forums
#------------------------------
$found preg_match_all('#<a href="forumdisplay\.php\?f=([0-9]+)"#i'$output$matches);

if(
$found)
{
    
// Build an array of ID's
    
$ids = array();

    for(
$i 0$i $found$i++)
    {
        if(
is_numeric($matches[1][$i]))
            
$ids[] = $matches[1][$i];
    }
    
$ids implode(','$ids);

    
// Go through each
    
$res $vbulletin->db->query_read("SELECT forumid, title FROM " TABLE_PREFIX "forum WHERE forumid IN($ids)");

    while(
$f $vbulletin->db->fetch_array($res))
    {
        
$title urlize($f['title']);
        
$fid $f['forumid'];

        
$output str_replace("<a href=\"forumdisplay.php?f="$fid ."\"""<a href=\"f-"$title ."-"$fid .".html\""$output);
    }


}

#------------------------------
# Replace User
#------------------------------
$found preg_match_all('#<a href="member\.php\?u=([0-9]+)"#i'$output$matches);

if(
$found)
{
    
// Build an array of ID's
    
$ids = array();

    for(
$i 0$i $found$i++)
    {
        if(
is_numeric($matches[1][$i]))
            
$ids[] = $matches[1][$i];
    }
    
$ids implode(','$ids);

    
// Go through each
    
$res $vbulletin->db->query_read("SELECT userid, username FROM " TABLE_PREFIX "user WHERE userid IN($ids)");

    while(
$u $vbulletin->db->fetch_array($res))
    {
        
$username urlize($u['username']);
        
$uid $u['userid'];

        
$output str_replace("<a href=\"member.php?u=$uid\"""<a href=\"u-$username-$uid.html\""$output);
    }


}

#------------------------------
# Replace showthread.php?goto=newpost
#------------------------------
$found preg_match_all('#<a href="showthread\.php\?goto=newpost&amp;t=([0-9]+)"#i'$output$matches);

if(
$found)
{
    
// Build an array of ID's
    
$ids = array();

    for(
$i 0$i $found$i++)
    {
        if(
is_numeric($matches[1][$i]))
            
$ids[] = $matches[1][$i];
    }
    
$ids implode(','$ids);

    
// Go through each
    
$res $vbulletin->db->query_read("SELECT threadid, title, forumid FROM " TABLE_PREFIX "thread WHERE threadid IN($ids)");

    while(
$n $vbulletin->db->fetch_array($res))
    {
        
$title urlize($n['title']);
        
$tid $n['threadid'];
        
$fid $n['forumid'];


        
$output str_replace("<a href=\"showthread.php?goto=newpost&amp;t=$tid\"""<a href=\"$title-$tid-newpost.html\""$output);
    }


}

#------------------------------
# Replace Last Post User (Forum)
#------------------------------
$found preg_match_all('#<a href="member\.php\?find=lastposter&amp;f=([0-9]+)"#i'$output$matches);

if(
$found)
{
    
// Build an array of ID's
    
$ids = array();

    for(
$i 0$i $found$i++)
    {
        if(
is_numeric($matches[1][$i]))
            
$ids[] = $matches[1][$i];
    }
    
$ids implode(','$ids);

    
// Go through each
    
$res $vbulletin->db->query_read("SELECT lastposter, forumid FROM " TABLE_PREFIX "forum WHERE forumid IN($ids)");

    while(
$f $vbulletin->db->fetch_array($res))
    {
        
$lp $f['lastposter'];

        
$lpidinfo $vbulletin->db->query_first("SELECT userid, username FROM " TABLE_PREFIX "user WHERE username='$lp'");
        
$lp urlize($lpidinfo['username']);
        
$lpid $lpidinfo['userid'];
        
$fid $f['forumid'];

        

        
$output str_replace("<a href=\"member.php?find=lastposter&amp;f=$fid\"""<a href=\"u-$lp-$lpid.html\""$output);
    }


}

#------------------------------
# Replace Last Post User (Thread)
#------------------------------
$found preg_match_all('#<a href="member\.php\?find=lastposter&amp;t=([0-9]+)"#i'$output$matches);

if(
$found)
{
    
// Build an array of ID's
    
$ids = array();

    for(
$i 0$i $found$i++)
    {
        if(
is_numeric($matches[1][$i]))
            
$ids[] = $matches[1][$i];
    }
    
$ids implode(','$ids);

    
// Go through each
    
$res $vbulletin->db->query_read("SELECT lastposter, threadid FROM " TABLE_PREFIX "thread WHERE threadid IN($ids)");

    while(
$f $vbulletin->db->fetch_array($res))
    {
        
$lp $f['lastposter'];

        
$lpidinfo $vbulletin->db->query_first("SELECT userid, username FROM " TABLE_PREFIX "user WHERE username='$lp'");
        
$lp urlize($lpidinfo['username']);
        
$lpid $lpidinfo['userid'];
        
$tid $f['threadid'];

        

        
$output str_replace("<a href=\"member.php?find=lastposter&amp;t=$tid\"""<a href=\"u-$lp-$lpid.html\""$output);
    }


}
#-----------------------------------
# DO NOT REMOVE OTHERWISE YOU 
# WILL BE SENT A DMCA FOR COPYRIGHT 
# INFRINGEMENT YOU MAY NOT USE THIS 
# PLUGIN WITHOUT THIS LINE OF CODE
# IF YOU WISE TO REMOVE THIS AND
# ADD IT TO YOUR STYLE, FEEL FREE
# AS LONG AS THE COPYRIGHT REMAINS
#-----------------------------------

$output .= '<div align="center" class="smallfont">SEOed URLs completed by <a href="http://www.techhelpforum.com">Tech Help Forum</a>.</div>';

#------------------------------
# SHOWTHREAD
#------------------------------
$found preg_match_all('#<a href="showthread\.php\?t=([0-9]+)"#i'$output$matches);

if(
$found)
{
    
// Build an array of ID's
    
$ids = array();

    for(
$i 0$i $found$i++)
    {
        if(
is_numeric($matches[1][$i]))
            
$ids[] = $matches[1][$i];
    }
    
$ids implode(','$ids);

    
// Go through each
    
$res $vbulletin->db->query_read("SELECT threadid, forumid, title FROM " TABLE_PREFIX "thread WHERE threadid IN($ids)");

    while(
$t $vbulletin->db->fetch_array($res))
    {
        
$title urlize($t['title']);
        
$tid $t['threadid'];
        
$fid $t['forumid'];
        
$foruminfo $vbulletin->db->query_first("SELECT title FROM " TABLE_PREFIX "forum WHERE forumid='$fid'");
        
$fname urlize($foruminfo['title']);

        
$output str_replace("<a href=\"showthread.php?t=$tid\"""<a href=\"$fname/t-$title-$tid.html\""$output);
    }


}

#------------------------------
# SHOWTHREAD and page
#------------------------------
$found preg_match_all('#<a href="showthread\.php\?t=([0-9]+)&amp;page=([0-9]+)"#i'$output$matches);

if(
$found)
{
    
// Build an array of ID's
    
$ids = array();

    
// Keep track of page nums that go with tid's
    
$temp = array();

    for(
$i 0$i $found$i++)
    {
        
// $temp[<threadid>] = <page>
        
$temp$matches[1][$i] ] = $matches[2][$i];

        if(
is_numeric($matches[1][$i]))
            
$ids[] = $matches[1][$i];
    }
    
$ids implode(','$ids);

    
// Go through each
    
$res $vbulletin->db->query_read("SELECT threadid, forumid, title FROM " TABLE_PREFIX "thread WHERE threadid IN($ids)");

    while(
$t $vbulletin->db->fetch_array($res))
    {
        
$title urlize($t['title']);
        
$tid $t['threadid'];
        
$fid $t['forumid'];
        
$foruminfo $vbulletin->db->query_first("SELECT title FROM " TABLE_PREFIX "forum WHERE forumid='$fid'");
        
$fname urlize($foruminfo['title']);
        
$page $temp[$tid];
        

        
$output str_replace("<a href=\"showthread.php?t=$tid&amp;page=$page\"""<a href=\"$fname/t-$title-$tid-page-$page.html\""$output);


    }


}

#------------------------------
# showpost
#------------------------------
$found preg_match_all('#<a href="showpost\.php\?p=([0-9]+)&amp;postcount=([0-9]+)"#i'$output$matches);

if(
$found)
{
    
// Build an array of ID's
    
$ids = array();

    for(
$i 0$i $found$i++)
    {
        
$temp$matches[1][$i] ] = $matches[2][$i];
        if(
is_numeric($matches[1][$i]))
            
$ids[] = $matches[1][$i];
    }
    
$ids implode(','$ids);


    
// Go through each
    
$res $vbulletin->db->query_read("SELECT postid, title FROM " TABLE_PREFIX "post WHERE postid IN($ids)");

    while(
$p $vbulletin->db->fetch_array($res))
    {
        
$pid $p['postid'];
        
$postcount $temp[$pid];
        
$output str_replace("<a href=\"showpost.php?p=$pid&amp;postcount=$postcount\"""<a href=\"p-$pid.html\""$output);    }


}
#------------------------------
# Print SHOWTHREAD
#------------------------------
$found preg_match_all('#<a href="printthread\.php\?t=([0-9]+)"#i'$output$matches);

if(
$found)
{
    
// Build an array of ID's
    
$ids = array();

    for(
$i 0$i $found$i++)
    {
        if(
is_numeric($matches[1][$i]))
            
$ids[] = $matches[1][$i];
    }
    
$ids implode(','$ids);

    
// Go through each
    
$res $vbulletin->db->query_read("SELECT threadid, title FROM " TABLE_PREFIX "thread WHERE threadid IN($ids)");

    while(
$t $vbulletin->db->fetch_array($res))
    {
        
$title urlize($t['title']);
        
$tid $t['threadid'];

        
$output str_replace("<a href=\"printthread.php?t="$tid ."\"""<a href=\"print-"$title ."-"$tid .".html\""$output);
    }


}

#------------------------------
# Email SHOWTHREAD
#------------------------------
$found preg_match_all('#<a href="sendmessage\.php\?do=sendtofriend&amp;t=([0-9]+)"#i'$output$matches);

if(
$found)
{
    
// Build an array of ID's
    
$ids = array();

    for(
$i 0$i $found$i++)
    {
        if(
is_numeric($matches[1][$i]))
            
$ids[] = $matches[1][$i];
    }
    
$ids implode(','$ids);

    
// Go through each
    
$res $vbulletin->db->query_read("SELECT threadid, title FROM " TABLE_PREFIX "thread WHERE threadid IN($ids)");

    while(
$t $vbulletin->db->fetch_array($res))
    {
        
$title urlize($t['title']);
        
$tid $t['threadid'];

        
$output str_replace("<a href=\"sendmessage.php?do=sendtofriend&amp;t=$tid\"""<a href=\"sendtofriend-$title-$tid.html\""$output);
    }


}

#------------------------------
# New Thread
#------------------------------
$found preg_match_all('#<a href="newthread\.php\?do=newthread&amp;f=([0-9]+)"#i'$output$matches);

if(
$found)
{
    
// Build an array of ID's
    
$ids = array();

    for(
$i 0$i $found$i++)
    {
        if(
is_numeric($matches[1][$i]))
            
$ids[] = $matches[1][$i];
    }
    
$ids implode(','$ids);

    
// Go through each
    
$res $vbulletin->db->query_read("SELECT forumid, title FROM " TABLE_PREFIX "forum WHERE forumid IN($ids)");

    while(
$f $vbulletin->db->fetch_array($res))
    {
        
$title urlize($f['title']);
        
$fid $f['forumid'];

        
$output str_replace("<a href=\"newthread.php?do=newthread&amp;f=$fid\"""<a href=\"$title-$fid/newthread.php\""$output);
    }


}

#------------------------------
# New Post
#------------------------------
$found preg_match_all('#<a href="newreply\.php\?do=newreply&amp;noquote=1&amp;p=([0-9]+)"#i'$output$matches);

if(
$found)
{
    
// Build an array of ID's
    
$ids = array();

    for(
$i 0$i $found$i++)
    {
        if(
is_numeric($matches[1][$i]))
            
$ids[] = $matches[1][$i];
    }
    
$ids implode(','$ids);

    
// Go through each
    
$res $vbulletin->db->query_read("SELECT threadid, postid FROM " TABLE_PREFIX "post WHERE postid IN($ids)");

    while(
$t $vbulletin->db->fetch_array($res))
    {
        
$tid $t['threadid'];
        
$pid $t['postid'];
        
$threadinfo $vbulletin->db->query_first("SELECT title, forumid FROM " TABLE_PREFIX "thread WHERE threadid='$tid'");
        
$title urlize($threadinfo['title']);
        
$fid $threadinfo['forumid'];
        
$f fetch_foruminfo($fid); 
        
$fname urlize($f['title']);



        
$output str_replace("<a href=\"newreply.php?do=newreply&amp;noquote=1&amp;p=$pid\"""<a href=\"$fname/newpostnoquote-$pid.php\""$output);
    }


}

#------------------------------
# New Post
#------------------------------
$found preg_match_all('#<a href="newreply\.php\?do=newreply&amp;p=([0-9]+)"#i'$output$matches);

if(
$found)
{
    
// Build an array of ID's
    
$ids = array();

    for(
$i 0$i $found$i++)
    {
        if(
is_numeric($matches[1][$i]))
            
$ids[] = $matches[1][$i];
    }
    
$ids implode(','$ids);

    
// Go through each
    
$res $vbulletin->db->query_read("SELECT threadid, postid FROM " TABLE_PREFIX "post WHERE postid IN($ids)");

    while(
$t $vbulletin->db->fetch_array($res))
    {
        
$tid $t['threadid'];
        
$pid $t['postid'];
        
$threadinfo $vbulletin->db->query_first("SELECT title, forumid FROM " TABLE_PREFIX "thread WHERE threadid='$tid'");
        
$title urlize($threadinfo['title']);
        
$fid $threadinfo['forumid'];
        
$f fetch_foruminfo($fid); 
        
$fname urlize($f['title']);



        
$output str_replace("<a href=\"newreply.php?do=newreply&amp;p=$pid\"""<a href=\"$fname/newpost-$pid.php\""$output);
    }


}

#------------------------------
# Search
#------------------------------
$found preg_match_all('#<a href="search\.php\?searchid=([0-9]+)"#i'$output$matches);

if(
$found)
{
    
// Build an array of ID's
    
$ids = array();

    for(
$i 0$i $found$i++)
    {
        if(
is_numeric($matches[1][$i]))
            
$ids[] = $matches[1][$i];
    }
    
$ids implode(','$ids);

    
// Go through each
    
$res $vbulletin->db->query_read("SELECT userid, searchid FROM " TABLE_PREFIX "search WHERE searchid IN($ids)");

    while(
$s $vbulletin->db->fetch_array($res))
    {
        
$userid $s['userid'];
        
$searchid $s['searchid'];
        

        
$output str_replace("search.php?searchid=$searchid""search-$userid-$searchid.html"$output);
    }


}


#------------------------------
# misc pages
#------------------------------
$output str_replace("search.php?do=getnew","search-getnew.html",$output);
$output str_replace("search.php?do=getdaily","search-getdaily.html",$output);
$output str_replace("forumdisplay.php?do=markread","markread.html",$output);
}

/**
 * Turn a string into a URL friendly string
 *
 * @param string $txt The string to work on
 * @return string The new string
 */
function urlize($txt)
{
    
$txt unaccent($txt);
    
$txt html_entity_decode($txt);
    
$txt str_replace(' ''-'$txt);
    
$txt preg_replace('#[^a-zA-Z0-9_\-]+#'''$txt);
    
$txt preg_replace('#[\-]+#''-'$txt);

    return 
strtolower($txt);
}

/**
 * Turn accented characters into normal characters
 *
 * @param string $txt The string to remove the accents from
 * @return string Your new clean string
 */
function unaccent($txt)
{
    
$trans get_html_translation_table(HTML_ENTITIES);
    
    foreach(
$trans as $literal => $entity)
    {
        if(
ord($literal) >= 192)
        {
            
$search[]   = $literal;
            
$replace[]  = substr($entity11);
        }
    }

    return 
str_replace($search$replace$txt);



GamerJunk.net 01-06-2006 02:15 AM

Look at my forum if you can...I'll check and see what it is calling

GamerJunk.net 01-06-2006 02:16 AM

4311-4317

Code:

// parse PHP include ##################
        if (!is_demo_mode())
        {
                ($hook = vBulletinHook::fetch_hook('global_complete')) ? eval($hook) : false;
        }

        if ($vbulletin->options['gzipoutput'] AND !headers_sent())

What could be the cause?

eXaulz 01-06-2006 02:18 AM

It has nothing to do with that, RM. It has to do with the eval()'ed code, which is being done here:

PHP Code:

($hook vBulletinHook::fetch_hook('global_complete')) ? eval($hook) : false

(as you can see in the error msg). That's a cool thing about eval().

Also, did you apply my fix? It might fix your problem.

GamerJunk.net 01-06-2006 02:20 AM

With your new code I am getting taht error at the top on line 4314


All times are GMT. The time now is 03:14 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.02324 seconds
  • Memory Usage 1,984KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)bbcode_code_printable
  • (2)bbcode_php_printable
  • (1)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (3)pagenav_pagelinkrel
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (10)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete