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

Reply
 
Thread Tools Display Modes
  #1  
Old 04-17-2011, 08:41 PM
brdad brdad is offline
 
Join Date: Apr 2011
Posts: 2
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Regex a user name and append to a URL in template?

This is my first post and I'm jumping in head first so please bear with me.

I want to format a user name removing unusable characters, and then append that user name to a URL for IRC chat. I'm not 100% sure I can do this in a template for a widget nor am I 100% sure how to code it. Any help would be appreciated. I know the code below is wrong, but it should be clear what I am trying to accomplish.

Thanks

PHP Code:
<div class="cms_widget"
  <
div class="block"
    <
div class="cms_widget_header widget_header"
       <
h3>IRC Chat</h3
    </
div
  <
div class="cms_widget_content widget_content"

      
Dirty $bbuserinfo[username]

      
$Clean preg_replace('/^[0-9]+([^0-9])/''\\1'preg_replace('/[^-a-zA-Z0-9_|^{}[\]\\\\]/'''$Dirty));}

      
$Output 'http://www.somesite.com/chat&user='$Clean
  

    
</div
   </
div
</
div
Reply With Quote
  #2  
Old 04-19-2011, 07:55 AM
Disasterpiece's Avatar
Disasterpiece Disasterpiece is offline
 
Join Date: Apr 2007
Location: GER
Posts: 765
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

PHP Code:
$cn preg_replace('/^[0-9]+([^0-9])/''\\1'preg_replace('/[^-a-zA-Z0-9_|^{}[\]\\\\]/'''$bbuserinfo["username"]));

$output .= '<a href="http://www.somesite.com/chat&user='.$cn.'">Join Chat!</a>'
try this

no guarantee on that regex operation tough, looks unnecessarily complicated.
Reply With Quote
  #3  
Old 04-19-2011, 10:26 AM
brdad brdad is offline
 
Join Date: Apr 2011
Posts: 2
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks, I think I got it. Part of my problem was trying to do the php in a template instead of a direct exec widget itself.

I did have to split the regex up into two lines. One part has to remove unwanted characters, the other has to remove leading digits, or I have now changed it to add an underscore before leading digits (Still not fully proven, however!)

PHP Code:
$dirty vB::$vbulletin->userinfo['username'];
$clean preg_replace('/[^-a-zA-Z0-9_|^{}[\]\\\\]/','',$dirty);
$cleaner preg_replace('/^([0-9]+)([^0-9])/''_\\1\\2',$clean); 
Reply With Quote
  #4  
Old 04-22-2011, 02:21 AM
ecrist ecrist is offline
 
Join Date: Nov 2010
Posts: 4
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

For what it's worth, you could do this:

PHP Code:
$clean preg_replace(
     array(
'/[^-a-zA-Z0-9_|^{}[\]\\\\]/','/^([0-9]+)([^0-9])/''_\\1\\2'),
     array(
'''_\\1\\2'), 
     
vB::$vbulletin->userinfo['username']
); 
Sorry, it seems the PHP tags don't want to size the box properly above.
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 02:56 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.15921 seconds
  • Memory Usage 2,197KB
  • 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
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (4)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (4)post_thanks_box
  • (4)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (4)post_thanks_postbit_info
  • (4)postbit
  • (4)postbit_onlinestatus
  • (4)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_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
  • 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