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

Reply
 
Thread Tools
Automatic tags Details »»
Automatic tags
Version: 1.00, by buro9 buro9 is offline
Developer Last Online: Jul 2012 Show Printable Version Email this Page

Category: New Posting Features - Version: 3.7.0 Rating:
Released: 05-18-2008 Last Update: Never Installs: 169
Re-useable Code Code Changes Translations  
No support by the author.

Description

With vBulletin tags you can either set to require tags be completed or not. However requiring tags to be completed can easily result in low-quality tags that don't provide SEO value to your forum. With that in mind the thread title often provides better keywords than the tags that the user is forced to enter.

What this modification does is:

When a thread is started, has the user filled in tags?
Yes: Then we do nothing.
No: Then take the thread title, and strip out all words that would be invalid tags and are in the stop words list and use the remaining words as tags.

Example

User enters:
  • Thread title = We like the social group email mod
  • Thread tags =
vBulletin records the new thread as:
  • Thread title = We like the social group email mod
  • Thread tags = email, group, social
Which isn't an entirely bad set of tags and is better than none, and better than the user typing in gibberish (IMHO).

Installing

Installation REQUIRES FILE MODIFICATION. If you are not happy doing this, don't install this mod.

In the file /includes/functions_newpost.php

Find (near line 409):
PHP Code:
if ($type == 'thread' AND $post['taglist'])

Replace that with:
PHP Code:
// HACK : START : AUTO TAG
//      if ($type == 'thread' AND $post['taglist'])
//      {
        
if ($type == 'thread')
        {

                if (!
$post['taglist']) {
                        
$temptags split(' ',$post['title']);
                        
$newtags = array();
                        require(
DIR '/includes/searchwords.php');
                        foreach (
$temptags as $tagtext) {
                                if (
strlen($tagtext) <= || in_array(strtolower($tagtext), $badwords)) {
                                        
// Do nothing
                                
} else {
                                        
array_push($newtags,$tagtext);
                                }
                        }
                        
$post['taglist'] = join(',',$newtags);
                }
// HACK : END : AUTO TAG 
Uninstalling

Open the file /includes/functions_newpost.php

Find:
PHP Code:
// HACK : START : AUTO TAG 
Delete everything up to:
PHP Code:
// HACK : END : AUTO TAG 
Insert in that space:
PHP Code:
if ($type == 'thread' AND $post['taglist'])

Screenshots

Screenshots don't really make sense... read the description.

License

You are free to modify, create derivatives, produce any version of this that you wish even for commercial use, just leave in the code an attribution credit that contains the Url to http://www.buro9.com/

Effectively it's this:

Title: Automatic tags by B?ro9 is licensed under a Creative Commons Attribution 2.0 UK: England & Wales License.

Show Your Support

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

Comments
  #52  
Old 06-02-2008, 07:46 PM
buro9 buro9 is offline
 
Join Date: Feb 2002
Location: London, UK
Posts: 585
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by masterross View Post
@buro9

mate do u familiar with AJAX?
I think will be better if it's AJAX based hack which takes the words from thread title immediately after we left the title field and put the suggestion in tags field.
So users will have possibility to edit unwanted tags.
Quote:
Originally Posted by Newfarm View Post
masterross's idea is actually very, very cool.

That being said, installed and crossing fingers for some fancy ajax implementation
I like this idea a lot.

I quite like the two-pronged approach... AJAX to offer the opportunity for the user to edit, and the server side code to force it if the user consciously removed the tags or if JavaScript were disabled.

I will definitely look at this.

Not sure on the earlier request for non-word characters... can be done with a regexp but is there a regexp that allows unicode for other languages but blocks punctuation? If someone can provide a sample that works with multiple languages I'll use it and give credit accordingly.
Reply With Quote
  #53  
Old 06-06-2008, 12:57 PM
guvner guvner is offline
 
Join Date: Mar 2003
Location: Sydney
Posts: 98
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Excellent mod - for a tech support forum with members who just can't get used to manually adding tags, this is very useful!

Many thanks.

Mike
Reply With Quote
  #54  
Old 06-08-2008, 10:40 PM
peterska2 peterska2 is offline
 
Join Date: Oct 2003
Location: Manchester, UK
Posts: 6,504
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

The ability to auto tag RSS Feed created posts would finish this off perfectly. I know that on the site I installed it on my members love it and has got the regulars starting to tag their threads and others threads while doing it for them if they forget or don't think about doing it. I just need to be able to do it with RSS Feeds then it will be perfect and I could install it on another few sites which would benefit from it greatly.
Reply With Quote
  #55  
Old 06-09-2008, 05:00 AM
dutchbb dutchbb is offline
 
Join Date: Nov 2003
Posts: 899
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Exactly what I was looking for, as I was thinking the same: title = good tags. Thank you!
Reply With Quote
  #56  
Old 06-09-2008, 06:51 AM
SaPh[i]R SaPh[i]R is offline
 
Join Date: Jun 2008
Posts: 7
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks a lot !
Reply With Quote
  #57  
Old 06-12-2008, 04:32 PM
citeman citeman is offline
 
Join Date: Feb 2008
Posts: 22
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

One slight problem with this. some of the html characters get through - to remove that use:

Quote:
// HACK : START : AUTO TAG
// if ($type == 'thread' AND $post['taglist'])
// {
if ($type == 'thread')
{

if (!$post['taglist']) {
$temptags = split(' ',$post['title']);
$newtags = array();
require(DIR . '/includes/searchwords.php');
foreach ($temptags as $tagtext) {
if (strlen($tagtext) <= 3 || in_array(strtolower($tagtext), $badwords)) {
// Do nothing
} else {
$tagtext = html_entity_decode($tagtext);
$tagtext = ereg_replace("[^A-Za-z0-9 _]", "", $tagtext);

array_push($newtags,$tagtext);
}
}
$post['taglist'] = join(',',$newtags);
}
// HACK : END : AUTO TAG
Reply With Quote
  #58  
Old 06-12-2008, 05:44 PM
drpeppper drpeppper is offline
 
Join Date: Nov 2007
Posts: 50
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

this is a nice and useful mod.
thank you. installed and marked as.
Reply With Quote
  #59  
Old 06-13-2008, 01:11 AM
dutchbb dutchbb is offline
 
Join Date: Nov 2003
Posts: 899
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

How can we make tags for the old threads from their titles? Is there a script for this? And where can we find these stop words to strip?
Reply With Quote
  #60  
Old 06-13-2008, 03:03 AM
nightbloom's Avatar
nightbloom nightbloom is offline
 
Join Date: Mar 2008
Location: Whidbey Island, WA
Posts: 145
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Sweet, works OK on my forum. Thanks.
Reply With Quote
  #61  
Old 06-13-2008, 03:28 PM
glennybee glennybee is offline
 
Join Date: Feb 2008
Location: Scotland
Posts: 329
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks buro9, easy to implement, great results!

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 07:52 AM.


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.05415 seconds
  • Memory Usage 2,330KB
  • Queries Executed 25 (?)
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
  • (5)bbcode_php
  • (3)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
  • (4)pagenav_pagelink
  • (11)post_thanks_box
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (11)postbit_onlinestatus
  • (11)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