Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 11-11-2014, 02:13 PM
omardealo's Avatar
omardealo omardealo is offline
 
Join Date: Nov 2008
Location: egypt
Posts: 235
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default [SOLVED] standard_error on foreach loop

Hello ,

i make a plugin [stop new thread if That it contains Banned words]
every thing is okay , but when i try print all Banned words Written by User , but Do not print all the words, only the last word .
i Used the code in a php file with ECHO to print and working good , but in plugin i have problem with standard_error Do not print, but only the last value . so Where the problem ?


PHP Code:
$bwords explode("|"$vbulletin->options['banwords_wordslist']); 
$string $vbulletin->GPC['message'];
$matches = array();
$matchFound preg_match_all(
                
"/\b(" implode($bwords,"|") . ")\b/i"
                
$string
                
$matches
              
);
if (
$matchFound)
{
  
$words array_unique($matches[0]);
  foreach(
$words as $word)
  {
     eval (
standard_error"Banned Words : <li>" $word "</li>")); 
  }

Reply With Quote
  #2  
Old 11-11-2014, 02:17 PM
Dave Dave is offline
 
Join Date: May 2010
Posts: 2,583
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Because the standard_error stops anything else once it's called, it will only loop once through the foreach loop.
Try something like this instead:

PHP Code:
$bwords explode("|"$vbulletin->options['banwords_wordslist']);  
$string $vbulletin->GPC['message']; 
$matches = array(); 
$matchFound preg_match_all
                
"/\b(" implode($bwords,"|") . ")\b/i",  
                
$string,  
                
$matches 
              
); 
if (
$matchFound

  
$words array_unique($matches[0]); 
  eval (
standard_error"Banned Words : <li>" implode(", "$words) . "</li>"));  

Reply With Quote
Благодарность от:
omardealo
  #3  
Old 11-11-2014, 04:04 PM
omardealo's Avatar
omardealo omardealo is offline
 
Join Date: Nov 2008
Location: egypt
Posts: 235
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Dave View Post
Because the standard_error stops anything else once it's called, it will only loop once through the foreach loop.
Try something like this instead:

PHP Code:
$bwords explode("|"$vbulletin->options['banwords_wordslist']);  
$string $vbulletin->GPC['message']; 
$matches = array(); 
$matchFound preg_match_all
                
"/\b(" implode($bwords,"|") . ")\b/i",  
                
$string,  
                
$matches 
              
); 
if (
$matchFound

  
$words array_unique($matches[0]); 
  eval (
standard_error"Banned Words : <li>" implode(", "$words) . "</li>"));  


Well, I understand
Now The result is shown like that :

Code:
Banned Words :
  • first word, Second word
i want every word shown in <li>

Code:
Banned Words :
  • first word
  • Second word
thanks brother Dave
Reply With Quote
  #4  
Old 11-11-2014, 04:16 PM
Dave Dave is offline
 
Join Date: May 2010
Posts: 2,583
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Then change
PHP Code:
eval (standard_error"Banned Words : <li>" implode(", "$words) . "</li>")); 
to

PHP Code:
eval (standard_error"Banned Words : <li>" implode('</li><li>'$words) . "</li>")); 
That should do the trick.
Reply With Quote
  #5  
Old 11-11-2014, 05:01 PM
omardealo's Avatar
omardealo omardealo is offline
 
Join Date: Nov 2008
Location: egypt
Posts: 235
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Dave View Post
Then change
PHP Code:
eval (standard_error"Banned Words : <li>" implode(", "$words) . "</li>")); 
to

PHP Code:
eval (standard_error"Banned Words : <li>" implode('</li><li>'$words) . "</li>")); 
That should do the trick.
Yes I've been absent from my mind
thanxs brother :up:
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 08:10 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.05832 seconds
  • Memory Usage 2,240KB
  • Queries Executed 13 (?)
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
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (2)bbcode_code
  • (7)bbcode_php
  • (2)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (5)post_thanks_box
  • (1)post_thanks_box_bit
  • (5)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit
  • (5)post_thanks_postbit_info
  • (5)postbit
  • (5)postbit_onlinestatus
  • (5)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_postinfo_query
  • fetch_postinfo
  • 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
  • fetch_musername
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • post_thanks_function_fetch_thanks_bit_start
  • post_thanks_function_show_thanks_date_start
  • post_thanks_function_show_thanks_date_end
  • post_thanks_function_fetch_thanks_bit_end
  • post_thanks_function_fetch_post_thanks_template_start
  • post_thanks_function_fetch_post_thanks_template_end
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete