View Single Post
  #1  
Old 06-01-2007, 10:11 AM
mfyvie mfyvie is offline
 
Join Date: Mar 2007
Location: Zurich, Switzerland
Posts: 336
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default problems: str_replace for template edits and conditionals

I'm using str_replace to try and get a plugin to modify a template. This in itself is not a problem, but as soon as I add in a conditional, it doesn't seem to be parsed when the template is run.

Here's what I'm trying to do:
Code:
$disabled_add = ' $disabled /><if condition=\"$disabled==\"disabled\"\"><span style=\"color: grey\">$vbphrase[avatar_taken]</span><else />$avatar[title]</if>';

$vbulletin->templatecache['modifyavatarbit'] = str_replace(' />$avatar[title]', $disabled_add, $vbulletin->templatecache['modifyavatarbit']);
note that I had to use a backslash before the double quotes otherwise all sorts of php errors were being produced.

When we look at the output we see that the conditional statements, instead of being evaluated are finding their way into the HTML output:

HTML Code:
<input type="radio" name="avatarid" value="1880" id="rb_avatarid_1880"   /><if condition="=="disabled""><span style="color: grey">Taken</span><else />Sup29</if> </label>
If I insert the changes directly into the template (without the backslash quoting of course) then the conditionals work as expected.

My guess is that conditionals inserted via str_replace aren't being evaluated correctly. Is this a bug, or does anyone know of any work-arounds. I've tried to find other mods that do this but so far haven't found any. A search of this forum and google has also proved fruitless.

Any help would be appreciated
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01095 seconds
  • Memory Usage 1,767KB
  • 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
  • (1)bbcode_code
  • (1)bbcode_html
  • (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