vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=15)
-   -   replacing everything between a div in a template (https://vborg.vbsupport.ru/showthread.php?t=322336)

Dr.CustUmz 04-10-2016 03:06 AM

replacing everything between a div in a template
 
Say I want to replace this snippit in showthread_quickreply:

Code:

<div class="controlbar" style="padding-$stylevar[right]:8px">
        <fieldset style="border:0px; padding:0px; margin:0px">
        <if condition="$show['qr_require_click']">
        <textarea name="message" id="{$editorid}_textarea" rows="10" cols="60" style="width:100%; height:{$editor_height}px" tabindex="1" dir="$stylevar[textdirection]" disabled="disabled">$vbphrase[click_quick_reply_icon]</textarea>
        <else />
        <textarea name="message" id="{$editorid}_textarea" rows="10" cols="60" style="width:100%; height:{$editor_height}px" tabindex="1" dir="$stylevar[textdirection]"></textarea>
        </if>
        </fieldset>
        <!--width:$stylevar[messagewidth]-->
</div>

I want to replace it with my own template.

I've tried a few combinations similar to:
Code:

$test = '<div class=\"controlbar\" style=\"padding-$stylevar[right]:8px\">.*</div>';
$vbulletin->templatecache['showthread_quickreply'] = str_replace($test,fetch_template('drc_iiu_test'),$vbulletin->templatecache['showthread_quickreply']);

but I can't get any result to display, is there a way to replace everything in between that div?

squidsk 04-10-2016 05:48 AM

Don't escape the double quotes, it isn't required in the test string because the string is enclosed in single quotes.

Dr.CustUmz 04-10-2016 01:29 PM

Code:

$test = '<div class="controlbar" style="padding-$stylevar[right]:8px">.*</div>';
$vbulletin->templatecache['showthread_quickreply'] = str_replace($test,fetch_template('drc_iiu_test'),$vbulletin->templatecache['showthread_quickreply']);

still nothing =/

MarkFL 04-10-2016 02:05 PM

Here's what I do when I am trying to edit a template via a plugin and experiencing difficulty...first I look at the template code before any alterations at runtime, and copy/paste that code into a text editor.

Next, I manually edit the template to make the desired change, and look at this at runtime and copy/paste that below the previous paste into my text editor.

Then, revert the template back to its original state.

Now I have the desired before/after to inspect in my text editor, and it is easier to see what I need to do to make the desired change using PHP.

Dr.CustUmz 04-10-2016 04:35 PM

i went about doing it pretty much that way lol, with a bunch of minor changes

things are not named the final name this is just my build procedure lol, i know... sloppy =)
it'll be sexy and make sence in the end
example:
Code:

//showthread_quickreply

$drcrb_hd = '</fieldset>';
$find = '<textarea name=\"message\" id=\"{$editorid}_textarea\"';
$replace = '<textarea class=\"form-control comment-form-textarea\" name=\"message\" id=\"{$editorid}_textarea\"';
$find2 = '<div class=\"controlbar\"';
$replace2 = '<div class=\"controlbar upload-enabled\"';

$vbulletin->templatecache['showthread_quickreply'] = str_replace($drcrb_hd,fetch_template('drc_iiu_below_txtarea').$drcrb_hd,$vbulletin->templatecache['showthread_quickreply']);
$vbulletin->templatecache['showthread_quickreply'] = str_replace($find,$replace,$vbulletin->templatecache['showthread_quickreply']);
$vbulletin->templatecache['showthread_quickreply'] = str_replace($find2,$replace2,$vbulletin->templatecache['showthread_quickreply']);

//newthread
$find6 = '$newpost[message]</textarea>';
$find4 = '<textarea name=\"message\" id=\"{$editorid}_textarea\"';
$replace4 = '<textarea class=\"form-control comment-form-textarea\" name=\"message\" id=\"{$editorid}_textarea\"';
$find3 = '<td class=\"controlbar\">';
$replace3 = '<td class=\"controlbar upload-enabled\">';
$vbulletin->templatecache['editor_toolbar_on'] = str_replace($find6,$find6.fetch_template('drc_iiu_below_txtarea'),$vbulletin->templatecache['editor_toolbar_on']);
$vbulletin->templatecache['editor_toolbar_on'] = str_replace($find4,$replace4,$vbulletin->templatecache['editor_toolbar_on']);
$vbulletin->templatecache['editor_toolbar_on'] = str_replace($find3,$replace3,$vbulletin->templatecache['editor_toolbar_on']);

and I could fully replace the template with my copied changes like:
Code:

$vbulletin->templatecache['editor_toolbar_on'] = $vbulletin->templatecache['drc_iiu_editor_toolbar_on'];
I just thought, "hey can I just change everything in between a div, that'd be so much easier and the user wouldn't have to worry about if my complete change is going to screw up their template."

but grabbing things that SHOULD be there no matter how custom a theme is ...SHOULD work for everyone lol

Dr.CustUmz 04-13-2016 06:11 PM

preg_replace -_- lmao, too bad the products done now, will come in handy in the future though =)


All times are GMT. The time now is 04:09 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.00950 seconds
  • Memory Usage 1,727KB
  • 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
  • (5)bbcode_code_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