Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 General Discussions
  #1  
Old 10-03-2008, 12:02 AM
Scandal's Avatar
Scandal Scandal is offline
 
Join Date: Dec 2005
Location: Athens / Greece
Posts: 409
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Some help with this PHP Code

Well, in functions.php, there is this function for the censorship system:
PHP Code:
// #############################################################################
/**
* Replaces any instances of words censored in $vbulletin->options['censorwords'] with $vbulletin->options['censorchar']
*
* @param    string    Text to be censored
*
* @return    string
*/
function fetch_censored_text($text)
{
    global 
$vbulletin;
    static 
$censorwords;

    if (
$vbulletin->options['enablecensor'] AND !empty($vbulletin->options['censorwords']))
    {
        if (empty(
$censorwords))
        {
            
$vbulletin->options['censorwords'] = preg_quote($vbulletin->options['censorwords'], '#');
            
$censorwords preg_split('#[ \r\n\t]+#'$vbulletin->options['censorwords'], -1PREG_SPLIT_NO_EMPTY);
        }

        foreach (
$censorwords AS $censorword)
        {
            if (
substr($censorword02) == '\\{')
            {
                if (
substr($censorword, -22) == '\\}')
                {
                    
// prevents errors from the replace if the { and } are mismatched
                    
$censorword substr($censorword2, -2);
                }

                
// ASCII character search 0-47, 58-64, 91-96, 123-127
                
$nonword_chars '\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f';

                
// words are delimited by ASCII characters outside of A-Z, a-z and 0-9
                
$text preg_replace(
                    
'#(?<=[' $nonword_chars ']|^)' $censorword '(?=[' $nonword_chars ']|$)#si',
                    
str_repeat($vbulletin->options['censorchar'], vbstrlen($censorword)),
                    
$text
                
);
            }
            else
            {
                
$text preg_replace("#$censorword#si"str_repeat($vbulletin->options['censorchar'], vbstrlen($censorword)), $text);
            }
        }
    }

    
// strip any admin-specified blank ascii chars
    
$text strip_blank_ascii($text$vbulletin->options['censorchar']);

    return 
$text;

I have add the following code inside the function build_new_post of functions_newpost.php

PHP Code:
  // Censorship Warning
  
$iwarncens fetch_censored_text($post['message']);
            if (
$iwarncens != $post['message'])
            {
            
$dataman->error('iwarn');
            } 
And... when a user try to post a message with one or more words which they are in censor word list, it appears an error message (with the phrase "iwarn").

My problem is that the system appears this warning message AND it replace the characters with the censor character (*).
I don't want to replace the characters! (I need only the error message - not the appearance of which word is in the censorship's word list).

some screens:
1.

2.

What to do?

Thanks and sorry for my bad english!

-peter
Reply With Quote
Reply

Thread Tools
Display Modes

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 05:24 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.07781 seconds
  • Memory Usage 2,226KB
  • Queries Executed 11 (?)
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
  • (2)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)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)showthread_list
  • (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_threadedmode.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_threaded
  • showthread_threaded_construct_link
  • 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
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete