Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.5 > vBulletin 3.5 Add-ons
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
Apply "rel=nofollow" attribute to all parsed URLs Details »»
Apply "rel=nofollow" attribute to all parsed URLs
Version: 1.10, by kall kall is offline
Developer Last Online: Aug 2021 Show Printable Version Email this Page

Version: 3.5.0 Rating:
Released: 08-06-2005 Last Update: 08-29-2005 Installs: 139
Uses Plugins
 
No support by the author.

In the first cooperative move for nearly ten years, the major search engines have unveiled a new indexing command for web authors that they all recognize, one that they hope will help reduce the link and comment spam that plagues many web sites....due to removing the point of doing it in the first place.

The new "nofollow" attribute that can be associated with links was originated as an idea by Google in late 2004 and MSN and Yahoo, as well as major blogging vendors have jumped onboard.

The Nofollow Attribute

The new attribute is called "nofollow" with rel="nofollow" being the format inserted within an anchor tag.
When added to any link, it will effectively serve as a flag to tell the search engines that the link has not been explictly approved by the site owner, and therefore "not follow" it, or not use the referring page's (on your site) Page Rank in any way.

For example, this is how the HTML markup for an ordinary link might look:

Quote:
<a href="http://www.somedomain.com/page.html">My forums are the best lol lol lol click here!!</a>
This is how the link would look after the nofollow attribute has been added, with the attribute portion shown in bold

Quote:
<a href="http://www.somedomain.com/page.html" rel="nofollow">My forums are the best lol lol lol click here!!</a>
Once added, the search engines supporting the attribute will understand that the link has not been approved by the site owner.

Think of it as a way to flag to them, "I didn't post this link -- someone else did, don't associate me with it."

Quote:
Originally Posted by Alkatraz
If Google sees nofollow as part of a link, it will:

1. NOT follow through to that page.
2. NOT count the link in calculating PageRank link popularity scores.
3. NOT count the anchor text in determining what terms the page being linked to is relevant for.
The site that is being linked to will gain nothing from the link, so the whole point of doing it in the first place is removed.

This will affect URLs in posts, as well as signatures...anything that goes through the bbcodeparse function as far as I can tell/guess, and will work recursively, or whatever the word is that means 'it will affect all existing posts and signatures'...or it did for me anyway.

To change the conditional number of posts, alter
PHP Code:
OR $post['posts'] > 50
to whatever you like.

I can't see how this could be done as a plugin, but if anyone wants to point out how, that would be nicer....YAY Kirby!

Now all you need to do is unzip the attached file, upload the plugin using your Admin CP - Plugin System - Plugin Manager!

Relax, safe in the knowledge that spammers linking from your site are doing so for no reason whatsoever.

To remove the old version:

File to modify: 1

1/ Open your includes/class_bbcode.php file

Find:
PHP Code:
        // standard URL hyperlink
        //return "<a href=\"$rightlink\" target=\"_blank\">$text</a>";

        
global $post;

if (
is_member_of($post6//Admins are exempt
OR is_member_of($post5//Mods are exempt
OR is_member_of($post7//SuperMods are exempt
OR $post['posts'] > 50// People with over 50 posts are exempt
    
{
    
// standard URL hyperlink
    
return "<a href=\"$rightlink\" target=\"_blank\">$text</a>";
    }
    else
    {
     return 
"<a href=\"$rightlink\" rel=\"nofollow\" target=\"_blank\">$text</a>";
    }
    } 

Replace with:
PHP Code:
// standard URL hyperlink
        
return "<a href=\"$rightlink\" target=\"_blank\">$text</a>";
    } 
2/ Save and Upload.

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.

Comments
  #2  
Old 08-07-2005, 11:06 AM
mcncyo's Avatar
mcncyo mcncyo is offline
 
Join Date: Oct 2001
Location: derby, Kansas
Posts: 81
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I will install this on monday.
Reply With Quote
  #3  
Old 08-07-2005, 12:48 PM
bigcurt's Avatar
bigcurt bigcurt is offline
 
Join Date: Nov 2004
Location: KierDarby.php
Posts: 1,009
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Good job kall, will work great

~Curt
Reply With Quote
  #4  
Old 08-07-2005, 11:05 PM
FleaBag's Avatar
FleaBag FleaBag is offline
 
Join Date: Dec 2001
Posts: 1,674
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I'm not going to install this as my forum doesn't need it, microscopic in size compared to the majority - but just thought I would post my support for an excellent effort!
Reply With Quote
  #5  
Old 08-08-2005, 03:33 PM
Andreas's Avatar
Andreas Andreas is offline
 
Join Date: Jan 2004
Location: Germany
Posts: 6,863
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hook bbcode_create
PHP Code:
$this->tag_list['no_option']['url']['callback'] = 'handle_external';
$this->tag_list['no_option']['url']['external_callback'] = 'handle_bbcode_url_relnofollow';
$this->tag_list['option']['url']['callback'] = 'handle_external';
$this->tag_list['option']['url']['external_callback'] = 'handle_bbcode_url_relnofollow';

if (!
function_exists('handle_bbcode_url_relnofollow'))
{
    function 
handle_bbcode_url_relnofollow(&$parser$text$link)
    {
        global 
$post;
        
// Excempt Mods+ and Users with mor then 50 Posts
        
$parsedurl $parser->handle_bbcode_url($text$link);
        if (
is_member_of($post567) OR $post['posts'] > 50)
        {
            return 
$parsedurl;
        }
        else
        {
            return 
str_replace('href="''rel="nofollow" href="'$parsedurl); 
        }
    }

Or (simpler, but might affect mor then just [url])
Hook: bbcode_parse_complete
PHP Code:
global $post;
if (!
is_member_of($post567) AND !($post['posts'] > 50))
{
    
$text str_replace('href="''rel="nofollow" href="'$text);

Reply With Quote
  #6  
Old 08-09-2005, 03:12 AM
ricker ricker is offline
 
Join Date: Jun 2003
Location: Apple Valley, CA
Posts: 108
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

This seems to have conflicts with the "PM group leader on join request" plugin. At least it did with mine.
Reply With Quote
  #7  
Old 08-10-2005, 12:57 AM
mcncyo's Avatar
mcncyo mcncyo is offline
 
Join Date: Oct 2001
Location: derby, Kansas
Posts: 81
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

would the work with grapping of the newsgroup and from mailinglist? Would the plugin work with the nntp newsgroup pulling.
Reply With Quote
  #8  
Old 08-11-2005, 09:42 PM
kall's Avatar
kall kall is offline
 
Join Date: Apr 2004
Location: New Zealand
Posts: 2,608
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by ricker
This seems to have conflicts with the "PM group leader on join request" plugin. At least it did with mine.
I can't see how .. all this does is add an attribute to the href of a link.. can you please explain?
Reply With Quote
  #9  
Old 08-30-2005, 05:46 AM
welo welo is offline
 
Join Date: Jan 2004
Location: Portland, Oregon
Posts: 172
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by KirbyDE
Hook bbcode_create
PHP Code:
$this->tag_list['no_option']['url']['callback'] = 'handle_external';
$this->tag_list['no_option']['url']['external_callback'] = 'handle_bbcode_url_relnofollow';
$this->tag_list['option']['url']['callback'] = 'handle_external';
$this->tag_list['option']['url']['external_callback'] = 'handle_bbcode_url_relnofollow';

if (!
function_exists('handle_bbcode_url_relnofollow'))
{
    function 
handle_bbcode_url_relnofollow(&$parser$text$link)
    {
        global 
$post;
        
// Excempt Mods+ and Users with mor then 50 Posts
        
$parsedurl $parser->handle_bbcode_url($text$link);
        if (
is_member_of($post567) OR $post['posts'] > 50)
        {
            return 
$parsedurl;
        }
        else
        {
            return 
str_replace('href="''rel="nofollow" href="'$parsedurl); 
        }
    }

For some reason I have no idea whatsoever how to apply this code. Is this basically a replacement in class_bbcode.php for what Kall originally posted?
Reply With Quote
  #10  
Old 08-30-2005, 11:19 AM
kall's Avatar
kall kall is offline
 
Join Date: Apr 2004
Location: New Zealand
Posts: 2,608
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by welo
For some reason I have no idea whatsoever how to apply this code. Is this basically a replacement in class_bbcode.php for what Kall originally posted?
You can just upload the attached .xml now, thanks to Kirby.

(Could a Mod move this to the Plugins Forum? Ta.)
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 01:25 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.06008 seconds
  • Memory Usage 2,339KB
  • Queries Executed 23 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (6)bbcode_php
  • (6)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (6)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (2)pagenav_pagelink
  • (1)pagenav_pagelinkrel
  • (10)post_thanks_box
  • (10)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (10)post_thanks_postbit_info
  • (9)postbit
  • (10)postbit_onlinestatus
  • (10)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.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/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.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
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete