vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 General Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=111)
-   -   Some help with this PHP Code (https://vborg.vbsupport.ru/showthread.php?t=192551)

Scandal 10-03-2008 12:02 AM

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. http://img212.imageshack.us/img212/4...0249xa7.th.pnghttp://img212.imageshack.us/images/thpix.gif

2. http://img174.imageshack.us/img174/6...5503wo3.th.pnghttp://img174.imageshack.us/images/thpix.gif

What to do? :(

Thanks and sorry for my bad english!

-peter

Dismounted 10-03-2008 01:55 AM

fetch_censored_text() replaces the text with the censor character. You will probably need to create your own function that strips out the replacing stage.

Scandal 10-03-2008 07:50 AM

Quote:

Originally Posted by Dismounted (Post 1636146)
fetch_censored_text() replaces the text with the censor character. You will probably need to create your own function that strips out the replacing stage.

oh thanks! :)

any idea how to create it? :(


-petros

Dismounted 10-03-2008 09:40 AM

Use the default vBulletin function, but change it...

Scandal 10-03-2008 06:44 PM

Yes, but I don't know what changes I must do :p

It is the reason for this topic. :)



-petros

Dismounted 10-04-2008 08:41 AM

Wait a sec here - $post['message'] is actually never changed...


All times are GMT. The time now is 10:55 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01248 seconds
  • Memory Usage 1,751KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (2)bbcode_php_printable
  • (1)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (6)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.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/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.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
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete