Go Back   vb.org Archive > vBulletin Modifications > vBulletin 4.x Modifications > vBulletin 4.x Template Modifications

Reply
 
Thread Tools
Twitter Updates in Members Profile Details »»
Twitter Updates in Members Profile
Version: 1.0.6, by Gemma Gemma is offline
Developer Last Online: Nov 2023 Show Printable Version Email this Page

Category: Profile Enhancements - Version: 4.x.x Rating:
Released: 06-19-2011 Last Update: 12-04-2012 Installs: 46
Template Edits
Re-useable Code Additional Files  
No support by the author.

What this does
This creates a simple Twitter output of your member's tweets in the About Me section of their profile.

Twitter Updates in Member Profile

For this to work properly you need to create an application on Twitter.

1. Go to https://dev.twitter.com/apps/new
2. Fill out the app details, how to fill it out:
Application Name - Your Website Name
Description - Something relevant to your site
Application Website - Your Forum URL
Callback URL - Your Forum URL
Application Type - Read and Write

Agree to the rules, recaptcha and create your application. You will then be taken to your application details. Take note of your consumer key (21 alphanumerical characters)

3. Unzip the archive and upload the 'twitter' folder to your forum root.

4. You need to add a new profile field (you can skip this if you already having a profile field linking to users' Twitter accounts)

Add a Single-Line Text Box via the User Profile Field Manager and give it a title and a description so users know what it is for.
Set the Maximum length and Field length to your liking
Field Required: NO
Field Editable by User: YES
Private Field: NO
Field Searchable on Members List: NO
Show on Members List: NO
Regular Expression: Leave Blank

Take a note of the profile field number.

5. Open your additional.css template and add this at the bottom:

Code:
.tweets {
    border:1px solid #e7e7e7;
    border-radius:2px;
    max-width:100%;
    font:13px/17px "Tahoma",Helvetica,Arial,sans-serif;
    color:#333;
    background-color:#cccccc;
}

.tweets a {
    color:#98d7fb;
    text-decoration:none;
}

.tweets a:hover {
        color:#03680f;
    text-decoration:underline;
}

.tweets .tweet {
    border-bottom:1px solid #e7e7e7;
    padding:12px 12px;
}

.tweets .tweets_header {
    border-bottom:1px solid #e7e7e7;
    padding:12px 12px;
    font-weight:bold;
    font-size:14px;
}

.tweets .tweets_header a {
    color:#2dd851;
    text-decoration:none;
    font-weight:bold;
    font-style:normal;
    text-transform:lowercase;
}

.tweets .tweets_header a:hover {
    text-decoration:none;
}

.tweets_footer {
    padding:6px 12px;
    text-align: left;
}

.tweets_footer span.powered {
    font-size:9px;
}

.tweets_footer span.powered p {
    margin:0;
    text-align: center;
    font-size:9px;
    color:#999;
}

.tweets_footer span.powered a {
    font-size:9px;
    color:#999;
    text-decoration:none;
}

.tweets_footer span.powered a:hover {
    text-decoration:underline;
}

.tweets_footer #bird, .mt_footer .image_r {
    background:url("http://twimg0-a.akamaihd.net/a/1331143368/t1/img/twitter_web_sprite_icons.png") no-repeat;
}


.tweets_footer #bird{
    display:inline-block;
    margin:10px auto;
    background-position: 0 0;
    width: 34px;
    height: 26px;
}

.tweets .tweet .time {
    float:right;
    color:#999;
    font-size:11px;
}

.tweets .tweet .avatar {
    float:left;
    margin-right:12px;
    border-radius:3px;
}

.tweets .tweet .avatar img {
    border-radius:3px;
}

.mt_header {
    padding-bottom:2px;
    padding-left:60px;
}

.mt_screen_name {
    font-size:12px;
    color:#999;
}

.mt_header a {
    font-weight:bold;
    color:#5b78f7;
    text-decoration:none;
}

.mt_text {
    padding-left:60px;
}

.mt_footer {
    color:#999;
    font-size:12px;
    padding-left:60px;
}

.mt_footer .image_r {
    display:inline-block;
    margin-bottom:-2px;
    margin-right:4px;
    background-position: -20px -290px;
    width: 14px;
    height:13px;
    background-color:#999;
}

.mt_footer a{
    color:#999;
}
This will give you a grey box for your tweets - if you want something different you will need to adjust the css yourself - don't ask me for help with this.

6. Open memberinfo_block_statistics and find:

Code:
<!-- view-statistics -->
Below that add:

Code:
<img src="clear.gif" height="10" /><br />
<vb:if condition="$userinfo[fieldXX]">
<div class="blocksubhead subsectionhead userprof_headers userprof_headers_border" >
<h4 id="view-statistics" class="subsectionhead-understate"  style="width:100%">Twitter</h4><br />
</div>
<div class="blockbody subsection userprof_content userprof_content_border">
<div id="twitter_div"> 
<ul id="twitter_update_list"></ul></div>
<script language="javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script language="javascript" src="twitter/js/jquery.minitwitter.js" type="text/javascript"></script>
<script src="http://platform.twitter.com/anywhere.js?id=consumer_key&amp;v=1&amp;v=1">
  </script>
  <script type="text/javascript">
     twttr.anywhere(function(twitter) {
     twitter.hovercards({ expanded: true });
});
  twttr.anywhere(function (twitter) {
  twitter("#tbox").tweetBox({
  count: true,
  height: 100,
  width: 400,
  label: "Send a tweet",
      });
  });
        </script>
<link rel="stylesheet" type="text/css" href="twitter/css/twitter.css"/>
<div class="tweets"> <div class="tweets_header">Recent Updates</div> <div class="content_tweets"> </div> <div class="tweets_footer"> <a href="http://www.twitter.com/{vb:raw userinfo.fieldXX}"><span id="bird"></span></a> </div> </div>
<script type='text/javascript'>
$('.content_tweets').miniTwitter({username: '{vb:raw userinfo.fieldXX}', limit: 5});
</script>
<img src="clear.gif" height="10" /><br /> 
<link type="text/css" href="twitter/css/twitter_light.css" rel="stylesheet" />
<script type="text/javascript" src="twitter/js/jquery.twitter-friends-2.0.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#twitter-friends').twitterFriends({
    username:'{vb:raw userinfo.fieldXX}'
    ,friends:1 
    ,users_max:50
    ,loop:1
    ,user_link:1
    ,user_name:0
    ,tweet:1
});
});
</script>
<div id="twitter-friends"></div>
<img src="clear.gif" height="10" /><br />
<div id="tbox"></div>
<img src="clear.gif" height="10" /><br />
</vb:if></div>
Replace consumer_key with the key you noted from step 2. Save

Change all instances of XX to correspond with the profile field number from Step 4.

You can also change the css file by between light and dark by changing
Code:
<link type="text/css" href="twitter/css/twitter_light.css" rel="stylesheet" />
to:
Code:
<link type="text/css" href="twitter/css/twitter_dark.css" rel="stylesheet" />
*The light css uses the standard 'twitter blue' colour scheme and the dark one is shades of black, if you want other colours you will need to amend the css file yourself (probably best making changes to the twitter_light.css file)

Some other options, you can amend this part of the code

Code:
 ,friends:1
    ,users_max:50
    ,loop:1
    ,user_link:0
    ,user_name:0
    ,tweet:1
friends:1 ---> change to 0 to show followers
tweet:1 ---> Set this to 1 to display friends' tweets at widget footer. Tweets will also appear as a tool tip when hovering on a friend picture.
loop:1 ---> loop friends pictures animation or not. Set it to 1 to loop or 0 to disable.
users:50 ---> Number of visible friends' pictures on each swap. Note that Twitter will return your latest 80 Followers/Friends. You can choose to show a smaller number of pictures at a time.
user_name:0 ---> Show tweet author name or not. change to 1 to show
user_link:0 ---> By default, friends pictures will link to their Twitter profile. however, your can link it to their homepage (change to 1)

Save.

To update to v 1.0.6

If you wish to upgrade please upload the twitter folder to your server, remove the old template edits (headinclude and memberinfo_block_statistics) and apply the new edits in the opening post.

History

1.0.3 - Merged the two versions together - but left the option to use either the basic or enhanced (css version). Created a blogger.js file which is hosted on your server instead of externally, this should solve the problems of Tweets not showing.
1.0.4 - Added twitter hovercards
1.0.5 - Added a new block feature which shows the latest activity of your friends or followers.
1.0.6 - New code to display tweets in profile due to changes in Twitter's API.

If anyone wants to further develop any of my addons, you are free to do so.

Download Now

File Type: zip Twitter Updates in Member Profiles 1.0.6.zip (27.2 KB, 34 views)

Screenshots

File Type: jpg twitter.jpg (72.3 KB, 0 views)

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.
5 благодарности(ей) от:
artscripts, BCP Hung, CharlieDelta, ProFifaLeagues, RobbieZ

Comments
  #102  
Old 01-03-2012, 04:41 PM
ewebdesigner ewebdesigner is offline
 
Join Date: Dec 2010
Location: Tennessee
Posts: 63
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I don't understand what I did wrong because it only shows:
Quote:
twitter

Recent Updates:


You can follow me on Twitter, my username is (LINK TO TWITTER)
what I did:
Quote:
1. Go to https://dev.twitter.com/apps/new
2. Fill out the app details, how to fill it out:
Application Name - Your Website Name
Description - Something relevant to your site
Application Website - Your Forum URL
Callback URL - Your Forum URL
Application Type - Read and Write
did

Quote:
Add a Single-Line Text Box via the User Profile Field Manager and give it a title and a description so users know what it is for.
Set the Maximum length and Field length to your liking
Field Required: NO
Field Editable by User: YES
Private Field: NO
Field Searchable on Members List: NO
Show on Members List: NO
Regular Expression: Leave Blank
did:

Quote:
Twitter Updates in Member Profile (with CSS)

Follow steps 1, 2, 3 and 4 above.

5. Open headinclude and add the following to the end
Code:

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script type="text/javascript" src="twitter/jquery.twitter.js"></script>
<script src="http://platform.twitter.com/anywhere.js?id=consumer_key&amp;v=1">
</script>
<script type="text/javascript">
twttr.anywhere(function(twitter) {
twitter.hovercards({ expanded: true });
});
</script>
<link rel="stylesheet" type="text/css" href="twitter/twitter.css"/>

Replace consumer_key with the key you noted from step 2. Save

6. As above

You can alter the dimensions and colours of the Twitter Feed Box in the twitter/twitter.css file

did:

Quote:
With
Code:

<img src="clear.gif" height="10" /><br />
<vb:if condition="$userinfo[fieldXX]">
<div class="blocksubhead subsectionhead userprof_headers userprof_headers_border" >
<h4 id="view-statistics" class="subsectionhead-understate" style="width:100%">Twitter</h4><br />
</div>
<div class="blockbody subsection userprof_content userprof_content_border">
<h5 class="subblocksubhead subsubsectionhead"><u>Recent Updates:</u></h5>
<div id="twitter_div">
<ul id="twitter_update_list"></ul></div>
<script type="text/javascript" src="twitter/blogger.js"></script>
<script text="text/javascript" src="http://twitter.com/statuses/user_timeline/{vb:raw userinfo.fieldXX}.json?callback=twitterCallback2&c ount=5"></script>
<br><dt class="smallfont">You can follow me on Twitter, my username is <a class="twitter-anywhere-user" href="http://twitter.com/{vb:raw userinfo.fieldXX}">{vb:raw userinfo.fieldXX}</a></dt>
</div></div>
</vb:if>

Remember change the 3 instances of XX to correspond with the profile field number.

I replaced xx with 5 because it was 5 for me. Added my consumer key as well.

For the consumer key, was I suppose to replace the 1 with the code?

<script src="http://platform.twitter.com/anywhere.js?id=consumer_key&amp;v=1">
</script>

I did the CSS and 1.0.3 CSS part, is that what I was suppose to do?

in step 5 for 1.0.3 CSS, it says

5. Open memberinfo_block_statistics

It is asking me to replace something with another code, but I can't even find the first code that you told me to replace so I just copied the With code and put it at the end of memeberinfo_block_Statistics
Reply With Quote
  #103  
Old 01-03-2012, 08:12 PM
Gemma's Avatar
Gemma Gemma is offline
 
Join Date: Apr 2004
Location: Scotland
Posts: 1,229
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
I replaced xx with 5 because it was 5 for me. Added my consumer key as well.
Did you replace all the XX's with 5? (there are 3 of them)

Quote:
For the consumer key, was I suppose to replace the 1 with the code?
Code:
<script src="http://platform.twitter.com/anywhere.js?id=consumer_key&amp;v=1">
  </script>
No, replace consumer_key with the 21 key consumer code

Quote:
5. Open memberinfo_block_statistics

It is asking me to replace something with another code, but I can't even find the first code that you told me to replace so I just copied the With code and put it at the end of memeberinfo_block_Statistics
Place this code above <!-- view-statistics --> in your memberinfo_block_statistics template

Code:
<img src="clear.gif" height="10" /><br />
<vb:if condition="$userinfo[fieldXX]">
<div class="blocksubhead subsectionhead userprof_headers userprof_headers_border" >
<h4 id="view-statistics" class="subsectionhead-understate"  style="width:100%">Twitter</h4><br />
</div>
<div class="blockbody subsection userprof_content userprof_content_border">
<h5 class="subblocksubhead subsubsectionhead"><u>Recent Updates:</u></h5>
<div id="twitter_div"> 
<ul id="twitter_update_list"></ul></div>
<script type="text/javascript" src="twitter/blogger.js"></script>
<script text="text/javascript" src="http://twitter.com/statuses/user_timeline/{vb:raw userinfo.fieldXX}.json?callback=twitterCallback2&count=5"></script>
<br><dt class="smallfont">You can follow me on Twitter, my username is <a class="twitter-anywhere-user" href="http://twitter.com/{vb:raw userinfo.fieldXX}">{vb:raw userinfo.fieldXX}</a></dt>
</div></div>
</vb:if>
Remember and replace the XX (3 times)
Reply With Quote
  #104  
Old 01-03-2012, 09:29 PM
ewebdesigner ewebdesigner is offline
 
Join Date: Dec 2010
Location: Tennessee
Posts: 63
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Gemma View Post
Did you replace all the XX's with 5? (there are 3 of them)

Code:
<script src="http://platform.twitter.com/anywhere.js?id=consumer_key&amp;v=1">
  </script>
No, replace consumer_key with the 21 key consumer code

Place this code above <!-- view-statistics --> in your memberinfo_block_statistics template

Code:
<img src="clear.gif" height="10" /><br />
<vb:if condition="$userinfo[fieldXX]">
<div class="blocksubhead subsectionhead userprof_headers userprof_headers_border" >
<h4 id="view-statistics" class="subsectionhead-understate"  style="width:100%">Twitter</h4><br />
</div>
<div class="blockbody subsection userprof_content userprof_content_border">
<h5 class="subblocksubhead subsubsectionhead"><u>Recent Updates:</u></h5>
<div id="twitter_div"> 
<ul id="twitter_update_list"></ul></div>
<script type="text/javascript" src="twitter/blogger.js"></script>
<script text="text/javascript" src="http://twitter.com/statuses/user_timeline/{vb:raw userinfo.fieldXX}.json?callback=twitterCallback2&count=5"></script>
<br><dt class="smallfont">You can follow me on Twitter, my username is <a class="twitter-anywhere-user" href="http://twitter.com/{vb:raw userinfo.fieldXX}">{vb:raw userinfo.fieldXX}</a></dt>
</div></div>
</vb:if>
Remember and replace the XX (3 times)


Yup I replaced all 3 XX with the number 5. I am not sure if there has to be a space between field and the number 5. But I put no space.

I believe the memberinfo is correct, but not sure about the headinclude.

This is what I put in the headinclude:

Quote:
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script type="text/javascript" src="twitter/jquery.twitter.js"></script>
<script src="http://platform.twitter.com/anywhere.js?id=CODE GOES HERE&amp;v=1">
</script>
<script type="text/javascript">
twttr.anywhere(function(twitter) {
twitter.hovercards({ expanded: true });
});
</script>
<link rel="stylesheet" type="text/css" href="twitter/twitter.css"/>


But I added the code where it says "CODE GOES HERE"
I put the code at the very end
Reply With Quote
  #105  
Old 01-03-2012, 10:20 PM
Gemma's Avatar
Gemma Gemma is offline
 
Join Date: Apr 2004
Location: Scotland
Posts: 1,229
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Can you link me to the site where you are trying to use it?
Reply With Quote
  #106  
Old 02-07-2012, 11:16 PM
Gemma's Avatar
Gemma Gemma is offline
 
Join Date: Apr 2004
Location: Scotland
Posts: 1,229
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I've removed the non-CSS version and merged all the other edits together (hovercards and tweetbox) to make one version.
Reply With Quote
  #107  
Old 02-09-2012, 12:51 AM
tortuga2 tortuga2 is offline
 
Join Date: Jan 2012
Posts: 8
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

thx works great
Reply With Quote
  #108  
Old 03-02-2012, 11:21 PM
Gemma's Avatar
Gemma Gemma is offline
 
Join Date: Apr 2004
Location: Scotland
Posts: 1,229
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Working on an updated version of this
Attached Images
File Type: jpg Untitled-1.jpg (72.1 KB, 0 views)
Reply With Quote
2 благодарности(ей) от:
duditas, ProFifaLeagues
  #109  
Old 03-03-2012, 06:08 AM
ProFifaLeagues's Avatar
ProFifaLeagues ProFifaLeagues is offline
 
Join Date: Aug 2009
Location: Uk
Posts: 1,191
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Gemma View Post
Working on an updated version of this

Great news Gemma,Cant wait for the update
Reply With Quote
  #110  
Old 03-04-2012, 10:59 PM
Emeralda's Avatar
Emeralda Emeralda is offline
 
Join Date: Oct 2011
Posts: 202
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

PHP Code:
  <script type="text/javascript">
     
twttr.anywhere(function(twitter) {
     
twitter.hovercards({ expandedtrue });
});
  
twttr.anywhere(function (twitter) {
  
twitter("#tbox").tweetBox({
  
counttrue,
  
height100,
  
width400,
  
label"Send a tweet",
      });
  });
        </
script
This has an unintended bug I think, it conflicts hard with DBTech's user tagging/mentions. Whenever I mentioned someone, instead of actually mentioning the member in a thread, it was trying to show a Twitter account with a similar name.
Reply With Quote
  #111  
Old 03-04-2012, 11:48 PM
Gemma's Avatar
Gemma Gemma is offline
 
Join Date: Apr 2004
Location: Scotland
Posts: 1,229
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Emeralda View Post
PHP Code:
  <script type="text/javascript">
     
twttr.anywhere(function(twitter) {
     
twitter.hovercards({ expandedtrue });
});
  
twttr.anywhere(function (twitter) {
  
twitter("#tbox").tweetBox({
  
counttrue,
  
height100,
  
width400,
  
label"Send a tweet",
      });
  });
        </
script
This has an unintended bug I think, it conflicts hard with DBTech's user tagging/mentions. Whenever I mentioned someone, instead of actually mentioning the member in a thread, it was trying to show a Twitter account with a similar name.
If they are both using the @ function, then there could be a conflict. Hmmm, DBTech vs Twitter. That would be an amazing court case. Don't you think?

Um, my mind was a wandering. Sorry nothing I can do about the conflict in mods.
Reply With Quote
Reply

Thread Tools

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 07:57 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.04885 seconds
  • Memory Usage 2,402KB
  • Queries Executed 26 (?)
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
  • (10)bbcode_code
  • (2)bbcode_php
  • (12)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (4)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (3)pagenav_pagelink
  • (11)post_thanks_box
  • (7)post_thanks_box_bit
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (2)post_thanks_postbit
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (3)postbit_attachment
  • (11)postbit_onlinestatus
  • (11)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
  • 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
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete