View Single Post
  #8  
Old 02-08-2013, 01:17 PM
LifesGreatestGift's Avatar
LifesGreatestGift LifesGreatestGift is offline
 
Join Date: Jul 2009
Location: Louisville, KY USA
Posts: 885
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

It does work, run this query inside phpmyadmin or whatever you use.

Code:
set @row_num = 0; SELECT @row_num := @row_num + 1 as row_number,threadid,postuserid,title FROM thread WHERE forumid = # AND postuserid = ## ORDER BY dateline DESC LIMIT 1;
# = forumid is the forum you want to use the mod in
## = userid , just make it one to run test on admin first user

will return row of thread with its placement. if you remove "LIMIT 1" it will show more threads.

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

ill revise the code in a bit. i forgot something.

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

Here is the final working and tested code. It will show the position of the thread based on start date, not last reply. With new threads being position 1. (if you would like it the other way around change "DESC" to "ASC" in the $query)

PHP Code:
$current_thread $thread['threadid'];
$current_thread_forum $thread['forumid'];
$thread_owner $thread['postuserid'];
$current_user $vbulletin->userinfo['userid'];
$forum_id 2;

if (
$current_thread_forum == $forum_id) {
  if (
$thread_owner == $current_user) {
    
$vbulletin->db->query_write('set @row_num = 0;');
    
$query $vbulletin->db->query_read_slave(
        
'SELECT (SELECT @row_num := @row_num + 1) 
        AS row_number,threadid,postuserid
        FROM ' 
TABLE_PREFIX 'thread
        WHERE forumid = ' 
$forum_id 
        ORDER BY dateline DESC'
        
);

    while(
$query2 $vbulletin->db->fetch_array($query)) {
        if (
$query2['threadid'] == $current_thread && $query2['postuserid'] == $current_user) {
                
$position $query2['row_number'];
                
$display "<p id='pos-text-main'><span>This thread is at position:</span> <span id='pos-num'>" $position "</span></p>";
        }
    }

    
vB_Template::preRegister('SHOWTHREAD',array('display' => $display));
  }

add that code to a new plugin with hook showthread_complete

Then add the following where you want it inside of SHOWTHREAD.
{vb:raw display}

I have added some span id's so you can style it how you'd like.

Be sure to change $forum_id to the forum you'd like this running in.

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

Here is a sample CSS to add to additional.css

Code:
p#pos-text-main {
	background: rgb(255, 202, 202);
	border: 1px solid rgb(184, 0, 0);
	margin: 10px 0;
	padding: 10px;
}
span#pos-num {
	font-weight: bold;
}
It will only show for the thread author. Example attached.
Attached Images
File Type: png Untitled.png (13.6 KB, 0 views)
Reply With Quote
Благодарность от:
addamroy
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01325 seconds
  • Memory Usage 1,817KB
  • Queries Executed 12 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (2)bbcode_code
  • (1)bbcode_php
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_box_bit
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_attachment
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.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
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • 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
  • 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
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_attachment
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • showpost_complete