The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
#1
|
|||
|
|||
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&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 /> </vb:if>'; $vbulletin->templatecache['FORUMDISPLAY'] = preg_replace ($templatefind1, $templaterepl1, $vbulletin->templatecache['FORUMDISPLAY']);]]> </phpcode> </plugin> 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. |
#2
|
||||
|
||||
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}…</label></li>'; $replace = '<li><label><input type=\"radio\" name=\"do\" value=\"recyclethread\" tabindex=\"3\" /> {vb:rawphrase recycle_thread}…</label></li>'; $vbulletin->templatecache['SHOWTHREAD'] = str_replace($original,$replace . "\r\n\t\t\t" . $original, $vbulletin->templatecache['SHOWTHREAD']); } 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. |
#3
|
||||
|
||||
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.
|
#4
|
||||
|
||||
Quote:
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. |
#5
|
||||
|
||||
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. |
#6
|
||||
|
||||
thanks guys
|
Thread Tools | |
Display Modes | |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|