vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB4 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=252)
-   -   [SOLVED]Pulling threadid in templates (https://vborg.vbsupport.ru/showthread.php?t=328365)

Dr.CustUmz 11-24-2020 07:45 PM

[SOLVED]Pulling threadid in templates
 
1 Attachment(s)
This is a first time my doing this with vb4 and I need some help. This seems easy but I'm struggling with it bad.

I have added a sample product showing the 2 ways I am trying to add buttons within a post. thanks to shka I have the custom template one working, the parse_template one is not fetching the threadid though.

I have tried pulling the threadid from postbit, and showthread within plugins.

example:parse templat (in a showthread condition) i am just using new thread button in posts as a base, I want to add a button that will be grabbing the threadid not the forum id.

Code:

$sessionurl = $session['sessionurl'];
        $threadidid = '{vb:raw threadid}';
        $post_phrase = 'Refresh this Listing';
$new_thread_link = '<div><a href="refresh.php?'.$sessionurl.'do=newthread&amp;f='.$threadid.'" rel="nofollow" class="newcontent_textcontrol" id="newthreadlink_top" style="margin-left:10px;"><span>+</span> '.$post_phrase.'</a></div>';

        $find = '<div id="pagination_top"';
        $replace = $new_thread_link.$find;
        $vbulletin->templatecache['SHOWTHREAD'] = str_replace($find, $replace, $vbulletin->templatecache['SHOWTHREAD']);

I have tried directly replacing the variable, replacing with other variables IE $threadinfo['threadid']

but I am not having any luck.

I first wanted to do this in postbit, but was having the same issue. Using post thanks button placement as my base, I could not get the threadid to input:

Code:

<template name="post_thanks_button" templatetype="template" date="1477136504" username="Abe1" version="7.88"><![CDATA[
<vb:if condition="$post['userid'] != 0">
<a href="postings.php?t={vb:raw threadid}" class="post_thanks_button">Refresh</a>
</vb:if>]]></template>

which is placed into the template through this plugin:
Code:

<plugin active="1" executionorder="5">
                        <title>Post Thank You Hack</title>
                        <hookname>postbit_display_complete</hookname>
                        <phpcode><![CDATA[if ($this->post[postid] == $this->thread[firstpostid]){
  $display_thanks_image = '';
        $templater = vB_Template::create('post_thanks_button');
        $templater->register('post', $post);
        $templater->register('display_thanks_image', $display_thanks_image);
        $template_hook['postbit_controls'] .= $templater->render();
  }
]]></phpcode>
                </plugin>

how can I pull the threadid in either of these locations?

yilmaz 11-25-2020 10:05 AM

Forum ID seems to be missing

$threadidid = '{vb:raw threadid}';

PHP Code:

$sessionurl $session['sessionurl'];
    
$forumid $foruminfo['forumid'];
    
$post_phrase 'Refresh this Listing';
$new_thread_link '<div><a href="refresh.php?'.$sessionurl.'do=newthread&amp;f='.$forumid.'" rel="nofollow" class="newcontent_textcontrol" id="newthreadlink_top" style="margin-left:10px;"><span>+</span> '.$post_phrase.'</a></div>';

    
$find '<div id="pagination_top"';
    
$replace $new_thread_link.$find;
    
$vbulletin->templatecache['SHOWTHREAD'] = str_replace($find$replace$vbulletin->templatecache['SHOWTHREAD']); 


Dr.CustUmz 11-25-2020 10:37 AM

Quote:

Originally Posted by yilmaz (Post 2604828)
Forum ID seems to be missing

$threadidid = '{vb:raw threadid}';

PHP Code:

$sessionurl $session['sessionurl'];
    
$forumid $foruminfo['forumid'];
    
$post_phrase 'Refresh this Listing';
$new_thread_link '<div><a href="refresh.php?'.$sessionurl.'do=newthread&amp;f='.$forumid.'" rel="nofollow" class="newcontent_textcontrol" id="newthreadlink_top" style="margin-left:10px;"><span>+</span> '.$post_phrase.'</a></div>';

    
$find '<div id="pagination_top"';
    
$replace $new_thread_link.$find;
    
$vbulletin->templatecache['SHOWTHREAD'] = str_replace($find$replace$vbulletin->templatecache['SHOWTHREAD']); 


forumid was just in the sample code, I am using another product as a starting point, the threadid var is not working here.

this is what I have, no other plugin: (parse templates)
PHP Code:

if (THIS_SCRIPT == 'showthread'){
    
$sessionurl $session['sessionurl'];
    
$threadidid '{vb:raw threadid}';
    
$post_phrase 'Refresh this Listing';

    
$refresh_link '<div><a href="refresh.php?'.$sessionurl.'do=something&amp;t='.$threadidid.'" rel="nofollow" class="newcontent_textcontrol" id="newthreadlink_top" style="margin-left:10px;"><span>+</span> '.$post_phrase.'</a></div>';

    
$find '<div id="pagination_top"';
    
$replace $refresh_link.$find;
    
$vbulletin->templatecache['SHOWTHREAD'] = str_replace($find$replace$vbulletin->templatecache['SHOWTHREAD']); 

in the template the button produces "refresh.php?do=something&t={vb:raw%20threadid}"


I have also tried:

Code:

<plugin active="1" executionorder="5">
                        <title>new postbit button</title>
                        <hookname>cache_templates</hookname>
                        <phpcode><![CDATA[if (THIS_SCRIPT === showthread)
{
        $cache[] = 'my_template';
}]]></phpcode>
                </plugin>
    <plugin active="1" executionorder="5">
                        <title>new postbit button</title>
                        <hookname>postbit_display_complete</hookname>
                        <phpcode><![CDATA[if ($this->post[postid] == $this->thread[firstpostid]){
  $display_refresh_image = '';
        $templater = vB_Template::create('my_template');
        $templater->register('post', $post);
        $templater->register('display_refresh_image', $display_refresh_image);
        $template_hook['postbit_controls'] .= $templater->render();
  }
]]></phpcode>
                </plugin>

with the thread id vars in "my_template" but it only spits out the code, not the threadid.

shka 11-25-2020 10:46 AM

Which template?

In postbit_legacy or post_thanks_button
Code:

{vb:raw post.threadid}

Dr.CustUmz 11-25-2020 10:54 AM

Quote:

Originally Posted by shka (Post 2604830)
Which template?

In postbit_legacy or post_thanks_button
Code:

{vb:raw post.threadid}

post_thanks_button

I have updated my code above your post to show ways I have tried. I thought the post thanks hack would be a good reference point because it had the button where i wanted but I cant seem to get threadid within the template.

I read this post from kh99:
Quote:

In your plugin code you can use $threadinfo['threadid']. If you want to use it in the SHOWTHHEAD template it's already registered, and you can use {threadinfo.threadid}. You would only need to register it if you're rendering a custom template, in which case you'd use register() (not preRegister). If you really do want to preRegister to one of the other existing vb templates (e.g. header, headinclude, footer), then you might want to use hook parse_templates (but it really depends on exactly what you're trying to do).
so how would I go about doing that the vb4 way? I just want to go back to vb3! :( lol

shka 11-25-2020 11:03 AM

Either my English is too bad and I don't understand you.
Or you didn't read my post / code.

Dr.CustUmz 11-25-2020 11:12 AM

1 Attachment(s)
I am providing my button test, this plugin simply adds a button to the postbit, and to the showthread.

both added buttons I can not get the threadid. see code.

Dr.CustUmz 11-25-2020 11:14 AM

{vb:raw post.threadid} WORKED FOR THE POSTBIT ONE! THANK YOU! but how can I get the showthread one to show threadid?

shka 11-25-2020 11:52 AM

Code:

{vb:raw threadinfo.threadid}
Like in your quotation of kh99 post.
Code:

In your plugin code you can use $threadinfo['threadid']. ...
threadinfo.threadid and $threadinfo['threadid'] is the same variable, you have to use different notations for conditions and direct var access

https://www.vbulletin.com/docs/html?...rsion=40205500
Styles & Templates / vBulletin Style Reference / Templates / Template Syntax
Read Variable Access (and the other stuff) ;)

Dr.CustUmz 11-25-2020 12:02 PM

using parse_templates on the showthread template

using $threadinfo[threadid]

my link spits out
refresh.php?do=newthread&t=$threadinfo[threadid]

using '.$threadinfo['threadid'].'

my link spits out:
rrefresh.php?do=newthread&t=


All times are GMT. The time now is 06:50 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.01077 seconds
  • Memory Usage 1,775KB
  • 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
  • (8)bbcode_code_printable
  • (3)bbcode_php_printable
  • (3)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (1)pagenav_pagelink
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (10)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
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete