vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB4 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=252)
-   -   Accessing a product specific template inside postbit legacy template (https://vborg.vbsupport.ru/showthread.php?t=280687)

DetroitYES 03-26-2012 06:26 PM

Accessing a product specific template inside postbit legacy template
 
I am developing a vbulletin product. For ease of use, I have packaged some of the maintenance features into a product specific template called 'atdasd_postbit_tools' (running 4.1.8 at the moment):



HTML Code:


<!--ATDASD--->
!test text to verify display!
                                        <vb:if condition="$show['inlinemod']">
                                        <a class="setkeypost" style="font-size:14px;" href="admincp/atdasd_admin.php?do=updatethread&keypostid={vb:raw post.postid}&t={vb:raw post.threadid}&inforum=1" rel="nofollow" title="Mark as Key Post"></a>
                                        <a class="modifythreadvalue" style="font-size:14px;" href="admincp/atdasd_admin.php?do=modifythread&t={vb:raw post.threadid}&inforum=1" rel="nofollow" title="Edit Thread Values"></a>
                                        </vb:if>
<!--/ATDASD-->

I would like this to show up in the bottom of the post bit next to the 'report post' logo. I have added the {vb:raw atdasd_postbit_tools} code to postbit_legacy (near the bottom of the code, prefixed by ****):


HTML Code:


{vb:raw template_hook.postbit_start}
<li class="postbitlegacy postbitim postcontainer {vb:raw post.statusicon}" id="post_{vb:raw post.postid}">
<!-- see bottom of postbit.css for .userinfo .popupmenu styles -->

        <div class="posthead">
                        <span class="postdate {vb:raw post.statusicon}">
                                <vb:if condition="$show['announcement']">
                                        <span class="date">{vb:rawphrase x_until_y, {vb:raw post.startdate}, {vb:raw post.enddate}}</span>
                                <vb:else />
                                        <span class="date">{vb:raw post.postdate}<vb:if condition="!$show['detailedtime']">,&nbsp;<span class="time">{vb:raw post.posttime}</span></vb:if></span>
                                </vb:if>
                        </span>
                        <span class="nodecontrols">
                                <vb:if condition="$post['postid'] AND $post['threadid'] AND !$show['moderated']">
                                        <a name="post{vb:raw post.postid}" href="{vb:link thread, {vb:raw thread}, {vb:raw pageinfo_post}}#post{vb:raw post.postid}" class="<vb:if condition="$show['inlinemod']">ie</vb:if>postcounter">#{vb:raw post.postcount}</a><a id="postcount{vb:raw post.postid}" name="{vb:raw post.postcount}"></a>
                                </vb:if>
                                <vb:if condition="$show['moderated']">{vb:rawphrase moderated_post}</vb:if>
                                <vb:if condition="$show['inlinemod']">
                                        <label for="post_imod_checkbox_{vb:raw post.postid}"><input class="postimod" type="checkbox" id="post_imod_checkbox_{vb:raw post.postid}" name="plist[{vb:raw post.postid}]" value="{vb:raw post.checkbox_value}" /></label>
                                </vb:if>
                        </span>
        </div>
        <div class="postdetails">
                <div class="userinfo">
                        <div class="username_container">
                        <vb:if condition="$post['userid']">
                                {vb:raw memberaction_dropdown}
                                {vb:raw post.onlinestatus}
                        <vb:else />
                                <span class="username guest">{vb:raw post.musername}</span>
                        </vb:if>
                        </div>
                        <span class="usertitle">
                                {vb:raw post.usertitle}
                        </span>
                        <vb:if condition="$post['rank']">
                                <span class="rank">{vb:raw post.rank}</span>
                        </vb:if>
                        {vb:raw template_hook.postbit_userinfo_left}
                        <vb:if condition="$show['reputation']">
                                <span class="postbit_reputation" id="repdisplay_{vb:raw post.postid}_{vb:raw post.userid}" title="{vb:raw post.username} {vb:raw post.level}">
                                        <vb:each from="reputationdisplay" value="row">
                                                <img class="{vb:raw row.class}" src="{vb:stylevar imgdir_reputation}/reputation_{vb:raw row.posneg}{vb:raw row.imgext}" alt="" />{vb:raw row.rowend}
                                        </vb:each>
                                </span>
                        </vb:if>
                        <vb:if condition="$show['avatar']">
                        <a class="postuseravatar" href="{vb:link member, {vb:raw post}}" title="{vb:rawphrase {vb:raw post['onlinestatusphrase']}, {vb:raw post.username}}">
                                <img src="{vb:raw post.avatarurl}" alt="{vb:rawphrase xs_avatar, {vb:raw post.username}}" title="{vb:rawphrase xs_avatar, {vb:raw post.username}}" />
                        </a>
                        </vb:if>
                        <vb:if condition="$post['userid']">
                                <hr />
                                <dl class="userinfo_extra">
                                        <vb:if condition="$post['joindate']"><dt>{vb:rawphrase join_date}</dt> <dd>{vb:raw post.joindate}</dd></vb:if>
                                        <vb:if condition="$post['field2']"><dt>{vb:rawphrase location_perm}</dt> <dd>{vb:raw post.field2}</dd></vb:if>
                                        <vb:if condition="$post['age']"><dt>{vb:rawphrase age}</dt> <dd>{vb:raw post.age}</dd></vb:if>
                                        <dt>{vb:rawphrase posts}</dt> <dd>{vb:raw post.posts}</dd>       
                                        {vb:raw template_hook.postbit_userinfo_right_after_posts}
                                </dl>
                                <vb:if condition="$show['infraction'] OR $show['reppower']">
                                <dl class="user_rep">
                                        <vb:if condition="$show['infraction']">
                                        <dt>{vb:rawphrase infractions}</dt>
                                        <dd>{vb:raw post.warnings}/{vb:raw post.infractions} ({vb:raw post.ipoints})</dd>
                                        </vb:if>
                                        <vb:if condition="$show['reputation']">
                                                <vb:if condition="$show['reppower']">
                                        <dt>{vb:rawphrase reppower}</dt>
                                        <dd id="reppower_{vb:raw post.postid}_{vb:raw post.userid}">{vb:raw post.reppower}</dd>
                                                </vb:if>
                                        </vb:if>
                                </dl>
                                </vb:if>
                                {vb:raw template_hook.postbit_userinfo_right}
                                <div class="imlinks">
                                        {vb:raw post.icqicon} {vb:raw post.aimicon} {vb:raw post.msnicon} {vb:raw post.yahooicon} {vb:raw post.skypeicon}
                                </div>
                        </vb:if>
                </div>
                <div class="postbody">
                        <div class="postrow<vb:if condition="$show['postedited'] || $post['signature']"> has_after_content</vb:if>">
                                {vb:raw template_hook.postbit_messagearea_start}
                                <vb:if condition="$post['title'] OR $show['messageicon']">
                                <h2 class="title icon">
                                        <vb:if condition="$show['messageicon']"><img src="{vb:raw post.iconpath}" alt="{vb:raw post.icontitle}" /> </vb:if>{vb:raw post.title}
                                </h2>
                                </vb:if>


                                                <vb:if condition="$post['isfirstshown']">
                                                        {vb:raw ad_location.ad_showthread_firstpost_start}
                                                        {vb:raw ad_location.thread_first_post_content}
                                                </vb:if>
                                                <vb:if condition="$post['islastshown']">
                                                        {vb:raw ad_location.thread_last_post_content}
                                                </vb:if>
                                <div class="content<vb:if condition="$show['first_ad'] OR $show['last_ad']"> hasad</vb:if>">
                                        <div id="post_message_{vb:raw post.postid}">
                                                <blockquote class="postcontent restore ">
                                                        {vb:raw post.message}
                                                </blockquote>
                                        </div>

                                        <vb:if condition="$show['attachments']">
                                                <div class="attachments">

                                                <vb:if condition="$show['thumbnailattachment']">
                                                        <fieldset class="postcontent">
                                                                <legend><img src="{vb:stylevar imgdir_misc}/paperclip.png" class="inlineimg" alt="{vb:rawphrase attached_thumbnails}" /> {vb:rawphrase attached_thumbnails}</legend>
                                                                {vb:raw post.thumbnailattachments}
                                                        </fieldset>
                                                </vb:if>

                                                <vb:if condition="$show['imageattachment']">
                                                        <fieldset class="postcontent">
                                                                <legend><img src="{vb:stylevar imgdir_misc}/paperclip.png" class="inlineimg" alt="{vb:rawphrase attached_images}" /> {vb:rawphrase attached_images}</legend>
                                                                {vb:raw post.imageattachments}
                                                        </fieldset>
                                                </vb:if>

                                                <vb:if condition="$show['imageattachmentlink']">
                                                        <fieldset class="postcontent">
                                                                <legend><img src="{vb:stylevar imgdir_misc}/paperclip.png" class="inlineimg" alt="{vb:rawphrase attached_images}" /> {vb:rawphrase attached_images}</legend>
                                                                <ul>
                                                                {vb:raw post.imageattachmentlinks}
                                                                </ul>
                                                        </fieldset>
                                                </vb:if>

                                                <vb:if condition="$show['otherattachment']">
                                                        <fieldset class="postcontent">
                                                                <legend><img src="{vb:stylevar imgdir_misc}/paperclip.png" class="inlineimg" alt="{vb:rawphrase attached_files}" /> {vb:rawphrase attached_files}</legend>
                                                                <ul>
                                                                {vb:raw post.otherattachments}
                                                                </ul>
                                                        </fieldset>
                                                </vb:if>

                                                <vb:if condition="$show['moderatedattachment']">
                                                        <fieldset class="postcontent">
                                                                <legend><img src="{vb:stylevar imgdir_misc}/paperclip.png" class="inlineimg" alt="{vb:rawphrase attachments_pending_approval}" /> {vb:rawphrase attachments_pending_approval}</legend>
                                                                <ul>
                                                                {vb:raw post.moderatedattachments}
                                                                </ul>
                                                        </fieldset>
                                                </vb:if>

                                                </div>
                                        <!-- / attachments -->
                                        </vb:if>
                                </div>
                        </div>
                        <vb:if condition="$show['postedited'] || $post['signature']">
                        <div class="after_content">
                                <vb:if condition="$show['postedited']">
                                <!-- edit note -->
                                <blockquote class="postcontent lastedited">
                                        <vb:if condition="$show['postedithistory']">
                                                {vb:rawphrase last_edited_link_by_x_on_y_at_z_postid, {vb:raw post.edit_username}, {vb:raw post.edit_date},
                                                        {vb:raw post.edit_time}, {vb:raw post.historyurl}}
                                        <vb:else />
                                                {vb:rawphrase last_edited_by_x_on_y_at_z, {vb:raw post.edit_username}, {vb:raw post.edit_date}, {vb:raw post.edit_time}}
                                        </vb:if>
                                        <vb:if condition="$post['edit_reason']">
                                                <span class="reason">{vb:rawphrase reason}:</span> {vb:raw post.edit_reason}
                                        </vb:if>
                                </blockquote>
                                <!-- / edit note -->
                                </vb:if>
                                {vb:raw template_hook.postbit_signature_start}
                                <vb:if condition="$post['isfirstshown']">
                                        {vb:raw ad_location.ad_showthread_firstpost_sig}
                                </vb:if>
                                <vb:if condition="$post['signature']">
                                        <blockquote class="signature restore"><div class="signaturecontainer">{vb:raw post.signature}</div></blockquote>
                                </vb:if>
                                {vb:raw template_hook.postbit_signature_end}
                        </div>
                        </vb:if>
                        <div class="cleardiv"></div>
                </div>
        </div>
                <div class="postfoot">
                        <!-- <div class="postfoot_container"> -->
                        <div class="textcontrols floatcontainer">
                                <span class="postcontrols">
                                        <img style="display:none" id="progress_{vb:raw post.postid}" src="{vb:stylevar imgdir_misc}/progress.gif" alt="{vb:rawphrase loading_editor_please_wait}" />
                                        <vb:if condition="$post['editlink']">
                                                <a class="editpost" href="{vb:raw post.editlink}" name="vB::QuickEdit::{vb:raw post.postid}" title="{vb:rawphrase edit_delete_message}"><img src="{vb:raw vboptions.cleargifurl}" id="editimg_{vb:raw post.postid}" alt="{vb:rawphrase edit_delete_message}" /> {vb:rawphrase edit_post}</a>
                                        <vb:if condition="THIS_SCRIPT != 'usernote' && THIS_SCRIPT != 'announcement'"><span class="seperator">&nbsp;</span></vb:if>
                                        </vb:if>
                                        <vb:if condition="$show['quickreply'] AND !$show['threadedmode']">
                                                <a id="qr_{vb:raw post.postid}" class='quickreply' href="{vb:raw post.replylink}&amp;noquote=1" rel="nofollow" title="{vb:rawphrase quick_reply_to_this_message}"><img id="replyimg_{vb:raw post.postid}" src="{vb:raw vboptions.cleargifurl}" alt="{vb:rawphrase quick_reply_to_this_message}" /> {vb:rawphrase reply}</a>
                                        <span class="seperator">&nbsp;</span>
                                        </vb:if>
                                        <vb:if condition="$post['replylink']">
                                                <a id="qrwq_{vb:raw post.postid}" class="newreply" href="{vb:raw post.replylink}" rel="nofollow" title="{vb:rawphrase reply_with_quote}"><img id="quoteimg_{vb:raw post.postid}" src="{vb:raw vboptions.cleargifurl}" alt="{vb:rawphrase reply_with_quote}" />  <vb:if condition="$post['forwardlink']">{vb:rawphrase reply_to_private_message}<vb:else />{vb:rawphrase reply_with_quote}</vb:if></a>
                                        <vb:if condition="$show['multiquote_post']"><span class="seperator">&nbsp;</span></vb:if>
                                        </vb:if>
                                        <vb:if condition="$show['multiquote_post']">
                                                <a class="multiquote" href="{vb:raw post.replylink}" rel="nofollow" onclick="return false;" id="mq_{vb:raw post.postid}" title="{vb:rawphrase multi_quote_this_message}"><img id="mq_image_{vb:raw post.postid}" src="{vb:raw vboptions.cleargifurl}" alt="{vb:rawphrase multi_quote_this_message}" />&nbsp;</a>
                                        </vb:if>
                                </span>
                                <span class="postlinking">
                                        <vb:if condition="!$post['forwardlink'] && THIS_SCRIPT != 'usernote' && THIS_SCRIPT != 'announcement'">
                                                <vb:if condition="$promote_sectionid AND $promote_sectionid != -1">
                                                      <a href="{vb:raw promote_url}" class="promotecms">{vb:rawphrase promote_to_article}</a>
                                                      <span class="seperator">&nbsp;</span>
                                                </vb:if>
                                        </vb:if>

                                        {vb:raw template_hook.postbit_controls}
                                        {vb:raw post.iplogged}
                                        <vb:if condition="$post['forwardlink']">
                                                <a class="forwardpost" href="{vb:raw post.forwardlink}" rel="nofollow"><img src="{vb:raw vboptions.cleargifurl}" alt="{vb:rawphrase forward_message}" /> {vb:rawphrase forward}</a>
                                                <vb:if condition="$show['reputationlink'] OR $show['infractionlink'] OR $show['moderated'] OR $show['spam'] OR $show['deletedpost'] OR $show['redcard'] OR $show['yellowcard']"><span class="seperator">&nbsp;</span></vb:if>
                                        </vb:if>
                                        <vb:if condition="$show['reputationlink']">
                                                <span class="reputationpopupmenu popupmenu popupcustom" title="{vb:raw post.postid}"><a class="popupctrl reputation" href="reputation.php?{vb:raw session.sessionurl}do=addreputation&amp;p={vb:raw post.postid}" title="{vb:rawphrase add_reputation}" rel="nofollow" id="reputation_{vb:raw post.postid}"><!--<img src="{vb:stylevar imgdir_button}/reputation-40b.png" alt="{vb:rawphrase add_reputation}" /> -->&nbsp;</a></span>
                                        </vb:if>

                                        <vb:if condition="$show['infractionlink']">
                                                &nbsp;<a class="infraction" href="infraction.php?{vb:raw session.sessionurl}do=report&amp;p={vb:raw post.postid}" rel="nofollow" title="{vb:rawphrase add_infraction_for_x, {vb:raw post.username}}"><!-- <img src="{vb:stylevar imgdir_button}/add-infraction_sm.png" alt="{vb:rawphrase add_infraction_for_x, {vb:raw post.username}}" /> --> &nbsp;</a> &nbsp;
                                        </vb:if>
                                        <vb:if condition="$show['reportlink']">
                                                &nbsp;<a class="report" href="{vb:raw post.reportlink}" rel="nofollow" title="{vb:rawphrase report_bad_post}"><!-- <img src="{vb:stylevar imgdir_button}/report-40b.png" alt="{vb:rawphrase report_bad_post}" /> -->&nbsp;</a> &nbsp;
                                        </vb:if>

                                        <vb:if condition="$show['moderated']">
                                                <img class="moderated" src="{vb:stylevar imgdir_misc}/moderated_sm.png" alt="{vb:rawphrase moderated_post}" />
                                        </vb:if>
                                        <vb:if condition="$show['spam']">
                                                <img class="spam" src="{vb:stylevar imgdir_misc}/spam_detected.png" alt="{vb:rawphrase spam_post}" />
                                        </vb:if>
                                        <vb:if condition="$show['deletedpost']">
                                                <vb:if condition="$show['managepost']">
                                                        <a class="deleted" href="{vb:raw $vboptions.vbforum_url}{vb:if "$vboptions['vbforum_url']", '/', ''}postings.php?{vb:raw session.sessionurl}do=managepost&amp;p={vb:raw post.postid}" title="{vb:rawphrase manage}">&nbsp;</a>
                                                <vb:else />
                                                        <img class="deleted_nolink" class="inlineimage" src="{vb:stylevar imgdir_button}/deleted_sm.png" alt="{vb:rawphrase deleted_post}" />
                                                </vb:if>
                                        </vb:if>
                                        <vb:if condition="$show['redcard']">
                                                <a class="redcard" href="infraction.php?{vb:raw session.sessionurl}do=view&amp;p={vb:raw post.postid}" rel="nofollow" title="{vb:rawphrase received_infraction}"><!-- <img src="{vb:stylevar imgdir_button}/red-card_sm.png" alt="{vb:rawphrase received_infraction}" /> --> &nbsp;</a>
                                                <vb:elseif condition="$show['yellowcard']" />
                                                        <a class="yellowcard" href="infraction.php?{vb:raw session.sessionurl}do=view&amp;p={vb:raw post.postid}" rel="nofollow" title="{vb:rawphrase received_warning}"><!--<img src="{vb:stylevar imgdir_button}/yellow-card_sm.png" alt="{vb:rawphrase received_warning}" /> --> &nbsp;</a>
                                        </vb:if>
                                        <vb:if condition="$post['api_platform']">
                                                <vb:if condition="$post['api_platform_link']">
                                                        <a class="mobile mobile_{vb:raw post.api_platform}" href="{vb:raw post.api_platform_link}" rel="nofollow" title="{vb:rawphrase {vb:raw post['api_platform_link_title']}}">{vb:rawphrase {vb:raw post['api_platform_link_phrase']}}</a>
                                                <vb:else />
                                                        <span class="mobile mobile_{vb:raw post.api_platform}">{vb:rawphrase {vb:raw post['api_platform_link_phrase']}}</span>
                                                </vb:if>
                                        </vb:if>

****{vb:raw atdasd_postbit_tools}
                                </span>
                        <!-- </div> -->
                        </div>
                </div>
        <hr />
</li>
{vb:raw template_hook.postbit_end}

I'm having trouble accessing the atdasd_postbit_tools template. I have tried regiestering it multiple ways through a plugin, but none of the usual methods seem to work (I'm thinking because its assigned to a product, thus not necessarily a 'custom' template...

my most recent attempt was:

PHP Code:


//$globaltemplates['atdasd_postbit_tools'];

// Register my_var with the custom template 
$templater vB_Template::create('atdasd_postbit_tools'); 
$templater->register('test''!test!'); 

// Render the custom template 
$my_template_output $templater->render(); 

// Add the output from the template...
$GLOBALS[postbit_wrapper'] .= $my_template_output; 

product = ATDASD (Same as Template...not vbulletin)
hook location = global_start
execution order = 10


how would i go about doing this? I want to package the template as part of the product in the XML, so that I can then instruct users just to insert the {vb:raw atdasd_postbit_tools} into the appropriate place, for minimum confusion. Thanks.

--------------- Added [DATE]1332794346[/DATE] at [TIME]1332794346[/TIME] ---------------

Partially Solved:

Rewrote the plugin:

PHP Code:

$templater vB_Template::create('atdasd_postbit_tools');

$templatevalues['atdasd_postbit_tools'] = $templater->render();
vB_Template::preRegister('postbit_legacy'$templatevalues); 

hook location changed to: postbit_display_start
(hook location was relevant to access the $show[inlinemod} variable )

However, i still can't access {vb:raw post.postid} or {vb:raw post.threadid} within the template...

kh99 03-26-2012 08:38 PM

You'd need to register $post to your template, like:

Code:

$templater = vB_Template::create('atdasd_postbit_tools');

$template->register('post', $post);
$templatevalues['atdasd_postbit_tools'] = $templater->render();
vB_Template::preRegister('postbit_legacy', $templatevalues);


DetroitYES 03-27-2012 02:35 PM

Ah, thanks.

Not sure why that method didn't occur to me, I had bypassed it with hard assignments like this:

HTML Code:

$templater = vB_Template::create('atdasd_postbit_tools');
$templater->register('atdasd_postid', $post['postid']);
$templater->register('atdasd_threadid', $post['threadid']);
$templatevalues['atdasd_postbit_tools'] = $templater->render();
vB_Template::preRegister('postbit_legacy', $templatevalues);



All times are GMT. The time now is 01:05 AM.

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.01309 seconds
  • Memory Usage 1,929KB
  • 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
  • (1)bbcode_code_printable
  • (3)bbcode_html_printable
  • (2)bbcode_php_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (3)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