Thread: Signature Help
View Single Post
  #1  
Old 01-14-2005, 01:19 AM
Andreas's Avatar
Andreas Andreas is offline
 
Join Date: Jan 2004
Location: Germany
Posts: 6,863
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I got a two signature limits (max. number of lines and max font size) in my board which do work quite good.
These are both adjustable in the Admin CP, 0 does mean no limit.

Maybe it is useful for others too, therefore I'm gonna post the code here.

In the User Profile Options section of the Admin CP create the settings
  • maxsiglines
  • maxsigfontsize

In Phrasegroup Front End Error Messages create the following phrses
  • sigtoomanylines
  • sigtoolargefont

In profile.php FIND

PHP Code:
if ($vboptions['maximages'] != 0
ABOVE that INSERT
PHP Code:
    // Signature Hacks
    
require_once('./includes/functions_bbcodeparse.php');
    require_once(
'./includes/functions_misc.php');
    
// Signature Hacks
    // Signature Limits Hack
    // Check max. font size
        
if ($vboptions[maxsigfontsize] > 0) {
      
// Make sure user does not user too large fonts
          
$pattern "/\[size=\+*0*[" . ($vboptions[maxsigfontsize]+1) . "-9]\].*\[\/size\]/si";
      
$pattern2 "/\[size=\+0*[1-" $vboptions[maxsigfontsize] . "]\].*\[\/size\]/si";
      if (
preg_match($pattern$signature) or
          
preg_match($pattern2$signature) or
              
preg_match("/\[size=\+*0*[1-9][0-9]+\].*\[\/size\]/si"$signature)
          
         )       {
        
$preview 'true';
        eval(
'$errors[] = "' fetch_phrase('sigtoolargefont'PHRASETYPEID_ERROR) . '";');
      }
    }
        
// Check max. lines
    
$line_parsed_sig parse_bbcode($signature);
    
$siglines 0;
    
$siglines += fetch_character_count($line_parsed_sig'<br');
    
$siglines += fetch_character_count($line_parsed_sig'<blockquote');
    
$siglines += fetch_character_count($line_parsed_sig'<pre');
    
$siglines += fetch_character_count($line_parsed_sig'<center');
        if (
preg_match("/\<blockquote\>(.*)\<\/blockquote\>/si"$line_parsed_sig$matches)) {
          
$siglines += preg_match_all("/\n/si"$matches[0], $lines)+1;
        }
        if (
$vboptions[maxsiglines] > and $siglines $vboptions[maxsiglines]-1)  {
      
$preview 'true';
      eval(
'$errors[] = "' fetch_phrase('sigtoomanylines'PHRASETYPEID_ERROR) . '";');
    }
        
// Signature Limits Hack 
Please note that this does not affect current signatures.
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01091 seconds
  • Memory Usage 1,795KB
  • 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
  • (2)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