Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
  #1  
Old 02-27-2016, 10:17 PM
Dr.CustUmz's Avatar
Dr.CustUmz Dr.CustUmz is offline
 
Join Date: Aug 2013
Location: USA
Posts: 647
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default [HELP] replace template with template plugin

i may have got it but it does not seem right to me, makes since, but doesnt seem right, can someone confirm this is the way or is there another way to do this.

Code:
$vbulletin->templatecache['forumhome_loggedinuser'] = fetch_template('drc_test');

---------
i am trying to completely replace the whole template (string) of forumhome_loggedinuser template

i have my hook set to

forumhome_start

and about all i can manage to do is add to it, replacing is new to me.

this is what i have currently
Code:
$drcrb_cr = '$stylevar[dirmark]';
$vbulletin->templatecache['forumhome_loggedinuser'] = str_replace($drcrb_cr,$drcrb_cr.fetch_template('drc_test'),$vbulletin->templatecache['forumhome_loggedinuser']);
but i dont want to just add to it, i want to completely replace the forumhome_loggedinuser template with drc_test
Reply With Quote
  #2  
Old 02-28-2016, 02:43 AM
MarkFL's Avatar
MarkFL MarkFL is offline
 
Join Date: Feb 2014
Location: St. Augustine, FL
Posts: 3,853
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

In one of my vB 3.8.x mods, I wanted to replace the output from the "newpost_threadmanage" template with the output from a custom template. The output from the default template is displayed in the "newreply" template in the variable $threadmanagement. So, what I did was create a plugin hooked at "newreply_form_complete" with the following PHP code:

PHP Code:
if ($vbulletin->options['markfl_report_prefixes_enabled'])
{
    eval(
'$new_template = "' fetch_template('markfl_report_newpost_threadmanage') . '";');
    
$threadmanagement $new_template;

In vB 4.2.x you can more directly replace one template with another, but this was the workaround I devised for vB 3.8.x.
Reply With Quote
Благодарность от:
Dr.CustUmz
  #3  
Old 02-28-2016, 03:07 AM
Dr.CustUmz's Avatar
Dr.CustUmz Dr.CustUmz is offline
 
Join Date: Aug 2013
Location: USA
Posts: 647
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

ok so say i want to replace $activeusers on forumhome
with a template i define as $myTemplate

would it be the same process? and would the code i have in $myTemplate be able to run in replace of $activeusers (which is the forumhome_loggedinusers template) i still want the same variables to work like $loggedin[musername]

its mainly the hooks i get lost on i dont know what hooks i need to use for things i try to do so mainly i just try different ones untill it works

right now im using with the hook (forumhome_loggedinuser)
Code:
$vbulletin->templatecache['forumhome_loggedinuser'] = fetch_template('drc_act_av');
and that works, but its not really what i want it to do.

i want it to replace $activeusers on forumhome and load my template.

im thinking
Code:
eval('$drc_act_av = "' . fetch_template('drc_act_av') . '";');
    $activeusers = $drc_act_av;
but would that work on forumhome_start hook, cause that template has to show $loggedin[musername] variables
Reply With Quote
  #4  
Old 02-28-2016, 03:24 AM
MarkFL's Avatar
MarkFL MarkFL is offline
 
Join Date: Feb 2014
Location: St. Augustine, FL
Posts: 3,853
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I would try the hook "forumhome_complete" hook location. See what you get...
Reply With Quote
  #5  
Old 02-28-2016, 03:56 AM
Dr.CustUmz's Avatar
Dr.CustUmz Dr.CustUmz is offline
 
Join Date: Aug 2013
Location: USA
Posts: 647
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

it works, but it breaks my other plugin, this is what i have

Code:
<plugin active="1" executionorder="5">
		<title>DRC - Whos On Avatar</title>
		<hookname>forumhome_loggedinuser</hookname>
		<phpcode><![CDATA[require_once('./includes/functions_user.php');
      $loggedin[avatarurl] = fetch_avatar_url($loggedin[userid]);
      if (!$loggedin[avatarurl]) {
        $loggedin[avatarurl] = $stylevar['imgdir_misc'] . '/noavatar.png';
      } else {
        $loggedin[avatarurl] = $vbulletin->options['bburl'] . '/' . $loggedin[avatarurl][0];
      }]]></phpcode>
    </plugin>
    <plugin active="1" executionorder="5">
		<title>DRC - Whos On Avatar FH</title>
		<hookname>forumhome_complete</hookname>
		<phpcode><![CDATA[
    eval('$drc_act_av = "' . fetch_template('drc_act_av') . '";');
      $activeusers = $drc_act_av;
    ]]></phpcode>
    </plugin>
i have tried changing the first plugin to different hooks also, but i cant get it to load the variables i need it to

the html is spitting out
HTML Code:
<!-- BEGIN TEMPLATE: drc_act_av -->
<a href="member.php?u="><img src="" height="40px" width="auto" border="0" alt=""></a>
<!-- END TEMPLATE: drc_act_av -->
when it should be: (in red)
Code:
<!-- BEGIN TEMPLATE: drc_act_av -->
<a href="member.php?u=12"><img src="avatars/users/12.gif?dateline=1456633560" height="40px" width="auto" border="0" alt=""></a>
<!-- END TEMPLATE: drc_act_av -->

doing both plugins in one how i had does work but again not the desired way
Code:
<plugin active="1" executionorder="5">
		<title>DRC - Whos On Avatar</title>
		<hookname>forumhome_loggedinuser</hookname>
		<phpcode><![CDATA[require_once('./includes/functions_user.php');
      $loggedin[avatarurl] = fetch_avatar_url($loggedin[userid]);
      if (!$loggedin[avatarurl]) {
        $loggedin[avatarurl] = $stylevar['imgdir_misc'] . '/noavatar.png';
      } else {
        $loggedin[avatarurl] = $vbulletin->options['bburl'] . '/' . $loggedin[avatarurl][0];
      }
      $vbulletin->templatecache['forumhome_loggedinuser'] = fetch_template('drc_act_av');]]></phpcode>
    </plugin>
Reply With Quote
  #6  
Old 03-11-2016, 03:01 AM
Simon Lloyd's Avatar
Simon Lloyd Simon Lloyd is offline
 
Join Date: Aug 2008
Location: Manchester
Posts: 3,481
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Have you tried changing the execution order?
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 08:48 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.04211 seconds
  • Memory Usage 2,222KB
  • 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
  • (7)bbcode_code
  • (1)bbcode_html
  • (1)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (6)post_thanks_box
  • (1)post_thanks_box_bit
  • (6)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit
  • (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
  • fetch_musername
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • post_thanks_function_fetch_thanks_bit_start
  • post_thanks_function_show_thanks_date_start
  • post_thanks_function_show_thanks_date_end
  • post_thanks_function_fetch_thanks_bit_end
  • post_thanks_function_fetch_post_thanks_template_start
  • post_thanks_function_fetch_post_thanks_template_end
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete