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

Reply
 
Thread Tools Display Modes
  #1  
Old 07-10-2014, 05:52 PM
darnoldy darnoldy is offline
 
Join Date: Dec 2004
Posts: 234
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Determining thread status?

Folks-

In a threadbit template, am trying to take three separate actions when a thread : is new, has been posted in by the user, or is locked. I have come up with the following conditionals:
PHP Code:
<if condition="in_array($thread[statusicon], array('_dot_hot_lock_new','_dot_hot_lock','_dot_hot_new','_dot_hot','_dot_lock_new','_dot_lock','_dot_new','_dot'))"></if>

<if 
condition="in_array($thread[statusicon], array('_dot_hot_lock_new','_dot_hot_new','_dot_lock_new','_dot_new','_hot_lock_new','_hot_new','_lock_new','_moved_new','_new'))"></if>

<if 
condition="in_array($thread[statusicon], array('_dot_hot_lock_new','_dot_lock_new','_hot_lock_new','_lock_new','_dot_hot_lock','_dot_lock','_hot_lock','_lock'))"></if> 
They should work, but they feel very inelegant... is there a better way?

Thanks!

--don
Reply With Quote
  #2  
Old 07-10-2014, 07:05 PM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I don't think there's a better way unless you want to use a plugin. You could use a plugin on hook location threadbit_process to set values in the $thread array to check in the template, then you wouldn't need to use in_array(). It would be cleaner in the template and may be worth doing just for that reason, but you'd just be moving the checks to the plugin, so I don't know that it's any more elegant.
Reply With Quote
  #3  
Old 07-10-2014, 07:12 PM
darnoldy darnoldy is offline
 
Join Date: Dec 2004
Posts: 234
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by kh99 View Post
I don't think there's a better way unless you want to use a plugin.
Thanks for the quick response!

A big part of this undertaking is to see how far I can push template modification...so, absent a more elegant approach, I don't really want to shove the kudginess off into a plugin.
Reply With Quote
  #4  
Old 07-10-2014, 07:53 PM
tbworld tbworld is offline
 
Join Date: Oct 2008
Posts: 2,126
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

In the past, I was never fond of 'in_array' due to speed, but you have such little data that it really does not play into account. In PHP 5.4 they drastically improved 'in_array', so there goes my argument. In that case, code readability is king, (in my opinion), and yours is straight forward. @Kh99 has already covered the plugin option. So there you go...

I got nothing.

(Back to my own coding mess, at work, this was suppose to be a distraction for a few minutes. )
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 06:35 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.04435 seconds
  • Memory Usage 2,191KB
  • Queries Executed 13 (?)
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
  • (1)bbcode_php
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (4)post_thanks_box
  • (4)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (4)post_thanks_postbit_info
  • (4)postbit
  • (4)postbit_onlinestatus
  • (4)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_postinfo_query
  • fetch_postinfo
  • 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
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete