Thread: Miscellaneous Hacks - NoSpam! - an alternative to CAPTCHA images
View Single Post
  #621  
Old 11-10-2007, 11:31 AM
class101 class101 is offline
 
Join Date: Sep 2007
Location: France
Posts: 134
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Ok here is how I got it working on my custom page , here its blog_post

all is made in the plugin manager, no template edit required finally because from the plugin wich is caching the templates ,it's positioning the Nospam box just up the visual captcha.

1) Edit the Nospam plugin called "Generate and insert NoSpam! question"

FIND


PHP Code:
     default:
           
$nospamdo false
ADD BEFORE

PHP Code:
      case 'blog_post':
         if (
$vbulletin->options['nospam_onoff']) {
            
$thetemplate =& $vbulletin->templatecache['blog_comment_editor'];
            
$nospamdo true;
         }
         break; 
2) Edit the Nospam plugin called "Cache the NoSpam! template"

FIND

PHP Code:
      case 'sendmessage':
         if (
$vbulletin->options['nospam_use_contactus']) {
            
$actiontemplates['contactus'][] = 'nospam';
         }
      break; 
ADD AFTER

PHP Code:
      case 'blog_post':
         if (
$vbulletin->options['nospam_onoff']) {
            
$actiontemplates['blog_comment_editor'][] = 'nospam';
         }
      break; 
3) And finally create the new plugin that will check response validity, name it as you wish, select the hook location called "blog_post_updatecomment_start" and enter this new code

PHP Code:
$vbulletin->input->clean_array_gpc('p', array(
      
'nospamnumber' => TYPE_UINT,
      
'nospam' => TYPE_STR,
));

if (
$vbulletin->options['nospam_onoff'] AND !$vbulletin->userinfo['userid'])
{
   
$nospamnumber $vbulletin->GPC['nospamnumber'];
   
$questions explode("\n"$vbulletin->options['nospam_questions']);
   
$qanda explode(":"strtolower($questions["$nospamnumber"]));
   unset(
$qanda[0]);

   function 
trim_array(&$answer)
   {
      
$answer trim($answer);
   }

   
array_walk($qanda'trim_array');

   if (!
in_array(strtolower(trim($vbulletin->GPC['nospam'])), $qanda))
   {
      eval(
standard_error(fetch_error('nospam_wrong_answer')));
   }

There is just the visual option settings not implemented in the admincp vboption, it will just check if nospam is on or off and if the user is guest like Nospam does on other pages but does the job very well hehe now I can allow guest blog comments without caring if the vb visual captcha gets break , hope that helps
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01134 seconds
  • Memory Usage 1,798KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (5)bbcode_php
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.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_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • 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
  • showpost_complete