Go Back   vb.org Archive > vBulletin 4 Discussion > vB4 Programming Discussions
  #1  
Old 01-29-2010, 08:31 PM
JamesGunner JamesGunner is offline
 
Join Date: Sep 2008
Posts: 44
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Auto-Template edits with RegEx

Hello,

I created my product here:

https://vborg.vbsupport.ru/showthrea...hreadid=231363

Now I wanted to add auto-template edits. Since it's multiple line edits I thought of using regex. Now this is the actual part where I'm stuck. After getting plenty of errors, I fixed those but now I'm stuck at the point where it still doesn't seem to replace the cached template but no errors pop up. I searched for a couple of Tutorials for auto-templates but those don't work for me since I have to replace multiple lines. I found the most useful:

https://vborg.vbsupport.ru/showthread.php?t=151254

Anyways this is my product code:

Code:
<plugin active="1">
      <title>Do first template edit</title>
      <hookname>forumdisplay_complete</hookname>
      <phpcode>
        <![CDATA[$templatefind1 = '~<vb:if condition="$show[\'newthreadlink\']">(.+?)id="newthreadlink_top"(.+?)vb:if>~s';
$templaterepl1 = '<vb:if condition="$show[\'newthreadlink\']"><vb:if condition="$foruminfo[\'new_thread_link\']"><a href="{vb:raw foruminfo.new_thread_link}" rel="nofollow" class="newcontent_textcontrol" id="newthreadlink_top"><span>+</span> {vb:rawphrase post_new_thread}</a><vb:else /><a href="newthread.php?{vb:raw session.sessionurl}do=newthread&amp;f={vb:raw foruminfo.forumid}" rel="nofollow" class="newcontent_textcontrol" id="newthreadlink_top"><span>+</span> {vb:rawphrase post_new_thread}</a></vb:if><vb:else />&nbsp;</vb:if>';

$vbulletin->templatecache['FORUMDISPLAY'] = preg_replace ($templatefind1, $templaterepl1, $vbulletin->templatecache['FORUMDISPLAY']);]]>
      </phpcode>
    </plugin>
1. I tried many things also the stuff described in the above named thread, it still didnt work. I hope you guys are able to help me in some way

2. I also couldn't find a way to display the ouput of $vbulletin->templatecache['FORUMDISPLAY']. Is there any standard way?

I just found that RegEx would be the best solution if you guys could suggest any better than that would be appreciated.

Thanks for the help ahead.
Reply With Quote
  #2  
Old 04-27-2010, 11:12 PM
Mutt's Avatar
Mutt Mutt is offline
 
Join Date: Nov 2001
Posts: 331
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

did you ever find a answer?


i'm doing this exact same thing right now. I'm updating a 3.8 product that used that same tutorial you mentioned to do an auto template edit.


I've updated my code this far

Code:
if ($forumid!=$vbulletin->options['mrt_id']) {
$original = '<li><label><input type=\"radio\" name=\"do\" value=\"movethread\" tabindex=\"3\" /> {vb:rawphrase move_thread}&hellip;</label></li>';
$replace = '<li><label><input type=\"radio\" name=\"do\" value=\"recyclethread\" tabindex=\"3\" /> {vb:rawphrase recycle_thread}&hellip;</label></li>';
$vbulletin->templatecache['SHOWTHREAD'] = str_replace($original,$replace . "\r\n\t\t\t" . $original, $vbulletin->templatecache['SHOWTHREAD']);
}
BUT templates are handled differently now. just peeked into several v4 products to see how other people are handling it & it looks like most people are doing their auto template inserts using template hooks. that doesn't help me.


any help would be appreciated working hard trying to retrain myself to vb4 & I'd rather learn how to do it right than just go edit the template.
Reply With Quote
  #3  
Old 04-28-2010, 11:19 PM
Mutt's Avatar
Mutt Mutt is offline
 
Join Date: Nov 2001
Posts: 331
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

for not I added a template hook to the template & then used a plugin to add the code. I know this seems odd since I edited the template anyway but I have more than 1 thing I'm adding in that spot so I'll be able to use the hook for more than 1 product.
Reply With Quote
  #4  
Old 05-02-2010, 03:37 PM
Andreas's Avatar
Andreas Andreas is offline
 
Join Date: Jan 2004
Location: Germany
Posts: 6,863
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
did you ever find a answer?
The best advice I could give you is:
Don't do it. Never.

It just causes unnecessary overhead, breaks any installation that does not use the DB to deliver template code - and hardly ever works with customized styles anyway.

If you need to change a template and there is no template hook you could use just prodive instructions to change the template.
Reply With Quote
  #5  
Old 05-02-2010, 09:21 PM
Paul M's Avatar
Paul M Paul M is offline
 
Join Date: Sep 2004
Location: Nottingham, UK
Posts: 23,748
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I used this system a lot in 3.x, before template hooks came along - since then I have tried to use t/hooks as much as possible. Sometimes however, none exist where you need them.

The mistake most people make (which applies to both problems above) is that people forget that the template cache is not the actual template you edit or display in the acp - it is the compiled php code - therefore vb template code tags such as <if> and <phrase> no longer exist in it, they have been converted into php code.
Reply With Quote
  #6  
Old 05-18-2010, 12:47 PM
Mutt's Avatar
Mutt Mutt is offline
 
Join Date: Nov 2001
Posts: 331
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

thanks guys
Reply With Quote
Reply

Thread Tools
Display Modes

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 12:03 AM.


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.07525 seconds
  • Memory Usage 2,209KB
  • 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
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (6)post_thanks_box
  • (6)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (6)post_thanks_postbit_info
  • (6)postbit
  • (6)postbit_onlinestatus
  • (6)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
  • 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