Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #11  
Old 12-09-2009, 11:37 PM
vaskies vaskies is offline
 
Join Date: Dec 2009
Posts: 34
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I'm getting the thread titles from that "latest threads on forum home" template modification I linked in my first post.

The URL of the page I'm working on is vb3/index.php. It's on a local setup, so the full URL is http://localhost/vb3/index.php.

If I could get the forumdisplay.php variables to work on index.php, I should be all set, yeah?

Cause as it is, the forumdisplay.php variables show up as undefined when used on index.php.

Sorry for the late response by the way, been busy last couple days. Things have settled down a bit now though.
Reply With Quote
  #12  
Old 12-10-2009, 12:07 AM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

OK, my fault - I totally missed the "how to display active threads on forum home" link in the first post. I can understand your confusion.

It looks like what's going on is the thread info is being loaded in to the page as javascript. So you can't use any php variable replacement in the templates to add info (because the thread variables aren't set), you have to just use whatever is passed in the javascript. I don't see it documented anywhere (big surprise, really), so I just got the javascript and looked at it. It looks like you have 5 things you can use: threadid, title, poster, threaddate, threadtime. And you would use them like you see them being used there, threads[x].threaddate for instance.

You could of course get more info by getting it from the database, but then there is probably no point in using the external data provider thing.

ETA: actually, I thought of something else you could do - change external.php. If you search for

Code:
if ($vbulletin->GPC['type'] == 'JS')
{ // javascript output

you will see how it constructs the javascript. There it has the $thread variable available, so you could add any fields you wanted in addition to the 5 that are already there.
Reply With Quote
  #13  
Old 12-10-2009, 05:20 AM
vaskies vaskies is offline
 
Join Date: Dec 2009
Posts: 34
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Long post up ahead! I'll split this into two parts. The first part shows what I've tried. The second part is what I think might be a good idea to try next. This will make more sense once you read it. Stay with me.



What I've Tried:
I found the function you were referring to inside external.php. Unfortunately, I'm having some trouble using the values inside the javascript mouseover.

For example, I tried threaddate below: (this code snippet is from the forum home template mod)
Code:
for (var x in threads)
{
document.writeln("<a onmouseover=\"Tip('threads[x].threaddate')\" onmouseout=\"UnTip()\" href=\"showthread.php?t="+threads[x].threadid+"\">"+threads[x].title+"</a> <span class=\"time\">($vbphrase[posted_by]: "+threads[x].poster+")</span><br />");
}
Instead of showing the actual date of the thread's creation, it prints out the actual text threads[x].threaddate and treats it like any other string.
I tried variations too such as +threads[x].threaddate+ without any luck.


Bad news is, I have no clue why it's not parsing that value. Good news is, I think I may have found (possibly) a better approach to my needs. I'll need some help though if I'm going to get the values I need inside of it. I think it should be much simpler and to the point because it's not dealing with javascript. What I'm referring to is this plugin.

Quick and to the point:

Here's the plugins php main code: (I bolded what looks relevant)
Code:
global $db, $vbulletin;

switch ($vbulletin->options['devel_lastx_ord'])
{
case 0:	$ord = 'dateline'; break;
case 1:	$ord = 'lastpost'; break;
    }

$forumdevel1 = $vbulletin->options['lastxforumid1'];
$forumnamedevel1 = $vbulletin->options['forumnamedevel1'];
$limitdevel1 = $vbulletin->options['lastxlimit1'];
if ($vbulletin->options['endislastx'])
if ($vbulletin->options['endislastx1'])
$lastxdevels1 = $db->query_read("
     SELECT threadid, title, postusername, replycount, lastposter, views, attach
     FROM " . TABLE_PREFIX . "thread
     WHERE forumid IN ($forumdevel1)
     AND visible = 1
     order by $ord DESC
     LIMIT $limitdevel1
     ");

while ($lastxdevel1 = $db->fetch_array($lastxdevels1))
{

   if(strlen($lastxdevel1['title']) > $vbulletin->options['lastxmax'])
    {
        $lastxdevel1['title'] = substr($lastxdevel1['title'], 0, $vbulletin->options['lastxmax']) . ' ...';
    }


	
	
	    

	
$lastxdevelt1.="<div class='smallfont'><font size='2'><a onmouseover=\"Tip('Some Text')\" onmouseout=\"UnTip()\" href='showthread.php?t=$lastxdevel1[threadid]'><span style='width:200px;text-overflow:hidden;'>$lastxdevel1[title]</span></a></font></div>";
}

$forumdevel2 = $vbulletin->options['lastxforumid2'];
$forumnamedevel2 = $vbulletin->options['forumnamedevel2'];
$limitdevel2 = $vbulletin->options['lastxlimit2'];
if ($vbulletin->options['endislastx'])
if ($vbulletin->options['endislastx2'])
$lastxdevels2 = $db->query_read("
     SELECT threadid, title, postusername, replycount, lastposter, views, attach
     FROM " . TABLE_PREFIX . "thread
     WHERE forumid IN ($forumdevel2)
     AND visible = 1
     order by $ord DESC
     LIMIT $limitdevel2
     ");

while ($lastxdevel2 = $db->fetch_array($lastxdevels2))
{
    if(strlen($lastxdevel2['title']) > $vbulletin->options['lastxmax'])
    {
        $lastxdevel2['title'] = substr($lastxdevel2['title'], 0, $vbulletin->options['lastxmax']) . ' ...';
    }
$lastxdevelt2.="<div class='smallfont'><img border='0' src='$stylevar[imgdir_button]/lastpost.png'> <font size='2'><a title='$vbphrase[pobydevel]$lastxdevel2[postusername] | $vbphrase[lasdevel]$lastxdevel2[lastposter] | $vbphrase[redevel]$lastxdevel2[replycount] | $vbphrase[viewdevel]$lastxdevel2[views] | $vbphrase[attcodevel]$lastxdevel2[attach]' href='showthread.php?t=$lastxdevel2[threadid]'>$lastxdevel2[title]</a></font></div>";
}

$forumdevel3 = $vbulletin->options['lastxforumid3'];
$forumnamedevel3 = $vbulletin->options['forumnamedevel3'];
$limitdevel3 = $vbulletin->options['lastxlimit3'];
if ($vbulletin->options['endislastx'])
if ($vbulletin->options['endislastx3'])
$lastxdevels3 = $db->query_read("
     SELECT threadid, title, postusername, replycount, lastposter, views, attach
     FROM " . TABLE_PREFIX . "thread
     WHERE forumid IN ($forumdevel3)
     AND visible = 1
     order by $ord DESC
     LIMIT $limitdevel3
     ");

while ($lastxdevel3 = $db->fetch_array($lastxdevels3))
{
    if(strlen($lastxdevel3['title']) > $vbulletin->options['lastxmax'])
    {
        $lastxdevel3['title'] = substr($lastxdevel3['title'], 0, $vbulletin->options['lastxmax']) . ' ...';
    }
$lastxdevelt3.="<div class='smallfont'><img border='0' src='$stylevar[imgdir_button]/lastpost.png'> <font size='2'><a title='$vbphrase[pobydevel]$lastxdevel3[postusername] | $vbphrase[lasdevel]$lastxdevel3[lastposter] | $vbphrase[redevel]$lastxdevel3[replycount] | $vbphrase[viewdevel]$lastxdevel3[views] | $vbphrase[attcodevel]$lastxdevel3[attach]' href='showthread.php?t=$lastxdevel3[threadid]'>$lastxdevel3[title]</a></font></div>";
}
Keep in mind, that the code for outputting the latest threads is repeated three times because this plugin allows for three columns, all from different forumIDs. Once we can figure out how to get the values into one column, it would be a matter of copy and pasting for the other two.

As a reminder, the 4 values I need are:
$thread[title]
$thread[lastposter]
$thread[preview]
$thread[lastpost]


As you can see in the above bolded code, the first two values,title and lastposter are already read from the table and actually work! And after a couple days of learning PHP, I managed to get $thread[lastpost] to work in the correct time format too! The last value however, thread[preview] causes the error:
Code:
Invalid SQL:

     SELECT threadid, title, preview, postusername, replycount, lastposter, lastpost, views, attach
     FROM thread
     WHERE forumid IN (2)
     AND visible = 1
     order by lastpost DESC
     LIMIT 10;

MySQL Error   : Unknown column 'preview' in 'field list'


To make a long story short: where is $thread[preview] located?




One Last Thing:
In addition to getting this plugin to work, I'm really trying to further my knowledge on vbulletin's syntax. I'm currently learning PHP (I just finished up learning functions) but I'm finding a lot of vbulletin's documentation to be pretty inconsistent. Aside from the vbulletin manual, are there any resources available that really explain vbulletin's structure? In particular, I would like to know all the values for $thread array but have no idea where to look. $thread is an array correct? Since the syntax is $thread[value].

Take your time replying to this one haha I tried to be concise as possible, but I really wanted to convey that I've been working to improve and learn more, as opposed to seem like I'm simply leeching off more knowledgable people such as yourself. You've been invaluable and thank you for your help and patience with me.
Reply With Quote
  #14  
Old 12-10-2009, 12:30 PM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

First, I think what might have worked is :

Code:
for (var x in threads)
{
document.writeln("<a onmouseover=\"Tip(threads[x].threaddate)\" onmouseout=\"UnTip()\" href=\"showthread.php?t="+threads[x].threadid+"\">"+threads[x].title+"</a> <span class=\"time\">($vbphrase[posted_by]: "+threads[x].poster+")</span><br />");
}
with no quotes (although I'm not sure without trying it). It's complicated, you have HTML with javascript that writes out HTML with a javascript call in it. But at some point it's just a string you're trying to send to the browser, and in this case I don't think you need any quotes or anything.

As for preview, you're right, it's not a database field. If you look in forumdisplay you'll see that it starts out as the pagetext field, because there's:
Code:
	if ($vbulletin->options['threadpreview'] > 0)
	{
		$previewfield = "post.pagetext AS preview,";
which gets included in the query and puts the pagetext field (the entire text for the post) in the trhead array as preview. Then later the query results are retrieved one at a time as a $thread array, and the function "process_thread_array" is called to do more processing on it (that's in includes/functions_forumdisplay.php). So if you look at that you'll see how it further processes the preview.

Don't worry, you're obviously trying to figure stuff out yourself, and anyway I try to answer the questions I'm interested in and I don't care if someone *is* being a "leech". I've been a programmer for many years but until last Aug. I didn't know any php and I had never heard of vbulletin. So really I'm not that far ahead, but I guess I've had the luxury of a lot of time to look at it over the past months. But I guess I'll pretty much be starting all over with version 4.0.
Reply With Quote
  #15  
Old 12-11-2009, 11:54 AM
vaskies vaskies is offline
 
Join Date: Dec 2009
Posts: 34
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I thought I would remedy the situation by modifying the plugin's code. I tried a zillion things, but only two of them are really worth mentioning. Here's the original snippet:
Code:
$forumdevel1 = $vbulletin->options['lastxforumid1'];
$forumnamedevel1 = $vbulletin->options['forumnamedevel1'];
$limitdevel1 = $vbulletin->options['lastxlimit1'];
if ($vbulletin->options['endislastx'])
if ($vbulletin->options['endislastx1'])
$lastxdevels1 = $db->query_read("
     SELECT threadid, title, postusername, replycount, lastposter, lastpost, views, attach
     FROM " . TABLE_PREFIX . "thread
     WHERE forumid IN ($forumdevel1)
     AND visible = 1
     order by $ord DESC
     LIMIT $limitdevel1
     ");


while ($lastxdevel1 = $db->fetch_array($lastxdevels1))
{

   if(strlen($lastxdevel1['title']) > $vbulletin->options['lastxmax'])
    {
        $lastxdevel1['title'] = substr($lastxdevel1['title'], 0, $vbulletin->options['lastxmax']) . ' ...';
    }

	    $agdate1 = vbdate($vbulletin->options['dateformat'], $lastxdevel1[lastpost], true);  
    $agtime1 = vbdate($vbulletin->options['timeformat'], $lastxdevel1[lastpost]); 

	
$lastxdevelt1.="<div class='smallfont'><font size='2'><a onmouseover=\"Tip('<b>Title:</b> $lastxdevel1[title]<br/><b>User:</b> $lastxdevel1[lastposter]<br /><b>Last Post:</b>$agdate1<br/><b>Preview:</b>will go here... <br/>')\" onmouseout=\"UnTip()\" href='showthread.php?t=$lastxdevel1[threadid]'>$lastxdevel1[title]</a></font></div>";
}
And here's what I added:
Code:
$forumdevel1 = $vbulletin->options['lastxforumid1'];
$forumnamedevel1 = $vbulletin->options['forumnamedevel1'];
$limitdevel1 = $vbulletin->options['lastxlimit1'];
if ($vbulletin->options['endislastx'])
if ($vbulletin->options['endislastx1'])
$lastxdevels1 = $db->query_read("
     SELECT threadid, title, postusername, replycount, lastposter, lastpost, views, attach
     FROM " . TABLE_PREFIX . "thread
     WHERE forumid IN ($forumdevel1)
     AND visible = 1
     order by $ord DESC
     LIMIT $limitdevel1
     ");


$threadPreviewThings = $db->query_read("
     SELECT pagetext
     FROM " . TABLE_PREFIX . "post
     WHERE threadid IN ($forumdevel1)
     AND visible = 1
     LIMIT $limitdevel1
     ");

$threadPreviewThing = $db->fetch_array($threadPreviewThings);

while ($lastxdevel1 = $db->fetch_array($lastxdevels1))
{

   if(strlen($lastxdevel1['title']) > $vbulletin->options['lastxmax'])
    {
        $lastxdevel1['title'] = substr($lastxdevel1['title'], 0, $vbulletin->options['lastxmax']) . ' ...';
    }
	
	    $agdate1 = vbdate($vbulletin->options['dateformat'], $lastxdevel1[lastpost], true);  
    $agtime1 = vbdate($vbulletin->options['timeformat'], $lastxdevel1[lastpost]); 

	
$lastxdevelt1.="<div class='smallfont'><font size='2'><a onmouseover=\"Tip('<b>Title:</b> $lastxdevel1[title]<br/><b>User:</b> $lastxdevel1[lastposter]<br /><b>Last Post:</b>$agdate1<br/><b>Preview:</b>$threadPreviewThing[pagetext] <br/>')\" onmouseout=\"UnTip()\" href='showthread.php?t=$lastxdevel1[threadid]'>$lastxdevel1[title]</a></font></div>";
}

Which caused the mouseover to not show up at all (i.e. breaking it). I obviously am approaching this from the wrong angle. So I did a google search of how to read from two tables at once and many sites said it was impossible. But as you see in the code, that variable $lastxdlevels1 has to be assigned to a query_read. But the 4 values I need are in two different tables, yeah? This is problematic.

So I decided, why not try assigning what table I'm using into an array of two different values.

Code:
$dbTables = array(thread, post);
$forumdevel1 = $vbulletin->options['lastxforumid1'];
$forumnamedevel1 = $vbulletin->options['forumnamedevel1'];
$limitdevel1 = $vbulletin->options['lastxlimit1'];
if ($vbulletin->options['endislastx'])
if ($vbulletin->options['endislastx1'])
$lastxdevels1 = $db->query_read("
     SELECT threadid, title, postusername, replycount, lastposter, lastpost, views, attach, pagetext
     FROM " . TABLE_PREFIX . "{$dbTables}
     WHERE forumid IN ($forumdevel1)
     AND visible = 1
     order by $ord DESC
     LIMIT $limitdevel1
     ");

while ($lastxdevel1 = $db->fetch_array($lastxdevels1))
{

   if(strlen($lastxdevel1['title']) > $vbulletin->options['lastxmax'])
    {
        $lastxdevel1['title'] = substr($lastxdevel1['title'], 0, $vbulletin->options['lastxmax']) . ' ...';
    }
	
	    $agdate1 = vbdate($vbulletin->options['dateformat'], $lastxdevel1[lastpost], true);  
    $agtime1 = vbdate($vbulletin->options['timeformat'], $lastxdevel1[lastpost]); 

$lastxdevelt1.="<div class='smallfont'><font size='2'><a onmouseover=\"Tip('<b>Title:</b> $lastxdevel1[title]<br/><b>User:</b> $lastxdevel1[lastposter]<br /><b>Last Post:</b>$agdate1<br/><b>Preview:</b>$lastxdevel1[pagetext] <br/>')\" onmouseout=\"UnTip()\" href='showthread.php?t=$lastxdevel1[threadid]'>$lastxdevel1[title]</a></font></div>";
}
Which turned out this error:

MySQL Error : Table 'vb3.array' doesn't exist
Error Number : 1146


Hindsight that was a stupid idea, since $dbTables simply outputs "Array". In summation, I tried splitting the code up into two separate query reads with no luck. And then I tried consolidating them via an array which probably never would have worked anyway, because even if I could display the values, they would not translate with the SQL syntax!

If I'm ever going to figure this out, one thing is for sure: I'm going to need to improve my knowledge on vbulletin's database structure as well as my understanding of SQL syntax. Which is exactly what I'm going to attempt today. I just learned I could view the database tables in phpMyAdmin which has been expontentially helpful...

And by the way, you were right! Taking out the single quotes worked. I still need the thread preview, though, so using the external data provider thing, as you said, wouldn't be the best approach.
Reply With Quote
  #16  
Old 12-11-2009, 12:04 PM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I'm not a SQL expert, but look at the "JOIN" statement. While I guess you can't techinically read from two tables at a time, you can use JOIN and sort of think of it as a single virtual table with all the fields you need. You can find examples of that in a lot of places in the vbulletin code.

showthread.php has (as part of a larger query):
Code:
"LEFT JOIN " . TABLE_PREFIX . "post AS post ON (post.postid = thread.firstpostid)"

http://dev.mysql.com/doc/refman/5.4/en/join.html
Reply With Quote
  #17  
Old 12-11-2009, 01:48 PM
vaskies vaskies is offline
 
Join Date: Dec 2009
Posts: 34
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

[S]Quick syntax question. 10 pages of google turned up nada.
Code:
if ($vbulletin->options['threadpreview'] > 0)
	{
		$previewfield = "post.pagetext AS preview,";
I understand this code except for one part: "AS preview,"
Here's my understanding:
Code:
If threadpreview is enabled in vbulletin's options,
statement: assigning $previewfield the value of field pagetest in the post table
What language is AS from? It's a PHP if statement so I assume php, but it wasn't covered at all in the tutorials so far. I need to know, because I'm going to need to recreate how vbulletin defined $threadinfo[preview] inside of the plugin.

Edit: It would also help me better understand your post better too. I also see an "ON" in there. [/S]

Google to the rescue :0 http://www.tizag.com/sqlTutorial/sqlas.php
Back to work...
Reply With Quote
  #18  
Old 12-11-2009, 05:30 PM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I looked at that link, I didn't realize that was a way to use "AS". Anyway, you probably figured out already that it's there (I think) to avoid having to put TABLE_PREFIX in everywhere the table name is used.

Of course this is a reference and not a tutorial, but in case you missed the link I added above, you might find this useful: http://dev.mysql.com/doc/refman/5.4/en/sql-syntax.html
Reply With Quote
  #19  
Old 12-12-2009, 01:47 PM
vaskies vaskies is offline
 
Join Date: Dec 2009
Posts: 34
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Good news! JOIN clause worked marvelously! Well, sort of. The first posts of each thread are properly linked to their thread, which was the hardest part.
Code:
$lastxdevels1 = $db->query_read("
     SELECT thread.threadid, thread.title, thread.postusername, thread.replycount, thread.lastposter, thread.lastpost, thread.views, thread.attach, post.pagetext
     FROM " . TABLE_PREFIX . "thread
     LEFT JOIN post AS post ON(post.postid = thread.firstpostid)
     WHERE forumid IN ($forumdevel1)
     AND thread.visible = 1
     order by thread.lastpost DESC
     LIMIT $limitdevel1
     ");
Bad news, Javascript does not like thread titles or posts with apostrophes or quotes. If any are present, it breaks the javascript mouseover entirely (it simply doesn't show up). This is a huge problem because it's very common to have at least one apostrophe in a thread title, let alone an entire first post.

Taking a look back at the mouseover code itself:
Code:
$lastxdevelt1.="<div class='smallfont'><a onmouseover=\"Tip('<b>Title:</b> $lastxdevel1[title]<br/><b>User:</b> $lastxdevel1[lastposter]<br /><b>Last Post:</b>$agdate1<br/><b>Preview:</b>$lastxdevel1[pagetext] <br/>')\" onmouseout=\"UnTip()\" href='showthread.php?t=$lastxdevel1[threadid]'>$lastxdevel1[title]</a></div>";
I backslashed all the quotes for the code to work. But with something dynamic like $lastxdevel1[pagetext], I'm not sure how to remedy that.

So two things are left. I'm going to try and create a conditional statement that if lastxdevel1[thread.title] or lastxdevel1[pagetext] contain a certain string (quote or apostrophe), they get replaced with a &nbsp;. And second, I need to find a way to set up ellipses for the lastxdlevel[thread] and lastxdlevel[pagetext]. They way they are now, thread titles that are too long cause misalignment, and if the first post of a thread is long, the mouseover preview takes up the whole page. Made some huge progress today thanks to you!
Reply With Quote
  #20  
Old 12-12-2009, 01:58 PM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

If you look at functions_forumdisplay.php where the preview is processed:

PHP Code:
    // format thread preview if there is one
    
if ($ignore["$thread[postuserid]"])
    {
        
$thread['preview'] = '';
    }
    else if (isset(
$thread['preview']) AND $vbulletin->options['threadpreview'] > 0)
    {
        
$thread['preview'] = strip_quotes($thread['preview']);
        
$thread['preview'] = htmlspecialchars_uni(fetch_censored_text(fetch_trimmed_title(
            
strip_bbcode($thread['preview'], falsetrue),
            
$vbulletin->options['threadpreview']
        )));
    } 

Some of that may be useful, looks like it handles quotes and other special characters, possible BBCode, and trimming it down to length.
Reply With Quote
Reply


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 11:53 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.06025 seconds
  • Memory Usage 2,306KB
  • Queries Executed 11 (?)
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
  • (14)bbcode_code
  • (1)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (2)pagenav_pagelink
  • (10)post_thanks_box
  • (10)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (10)post_thanks_postbit_info
  • (10)postbit
  • (10)postbit_onlinestatus
  • (10)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_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
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete