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 05-02-2014, 05:48 AM
Dr.CustUmz's Avatar
Dr.CustUmz Dr.CustUmz is offline
 
Join Date: Aug 2013
Location: USA
Posts: 647
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default [IF] just wanting someone to check my code

just wanted to make sure i did the right (shortest way possible) it functions 100% as is, just curious if there's a "less code" way of going about it =)

The way this is set up is for production purposes, so say the user who installs happens to not have a gender field, it will fallback to use the no.png or if say that user field was added to an existing form required or not, any user who hasn't added the gender it will fallback.

if the users a male with no avatar, it shows a male default. same goes for female, also undefined. if the member has an avatar, it ignores the gender field.
if the browser is not a user, it shows a signup button depending on whether or not registration is available.

Code being used now:
HTML Code:
<if condition="$show['member']">
	<a href="$vboptions[bburl]/profile.php?do=editavatar">
		<if condition="$navbaravatarurl">
			<img class="sbav" src="$navbaravatarurl" />
		<else />
			<if condition="$bbuserinfo['field5'] == 'Male'">
				<img class="sbav" src="images/misc/nom.png" />
			</if>
			<if condition="$bbuserinfo['field5'] == 'Female'">
				<img class="sbav" src="images/misc/nof.png" />
			</if>
			<if condition="!in_array($bbuserinfo['field5'], array('Male', 'Female'))">
				<img class="sbav" src="images/misc/no.png" />
			</if>
		</if>
	</a>
<else />
	<if condition="$show['registerbutton']">
		<a class="large but blue" href="register.php">SIGN UP NOW!</a>
	<else />
		Sorry, registration is currently disabled while we work on things.  Please check back soon!  In the mean time feel free to explore. =) 
	</if>
</if>
I tried to simplify the following way since all the images use the same class, but it broke my div when i tried =/
HTML Code:
<if condition="$show['member']">
	<a href="$vboptions[bburl]/profile.php?do=editavatar"><img class="sbav" src="
		<if condition="$navbaravatarurl">
			$navbaravatarurl
		<else />
			<if condition="$bbuserinfo['field5'] == 'Male'">
				images/misc/nom.png
			</if>
			<if condition="$bbuserinfo['field5'] == 'Female'">
				images/misc/nof.png
			</if>
			<if condition="!in_array($bbuserinfo['field5'], array('Male', 'Female'))">
				images/misc/no.png
			</if>
		</if>
	" /></a>
<else />
	<if condition="$show['registerbutton']">
		<a class="large but blue" href="register.php">SIGN UP NOW!</a>
	<else />
		Sorry, registration is currently disabled while we work on things.  Please check back soon!  In the mean time feel free to explore. =) 
	</if>
</if>
also i switched on of my conditionals to an array
Code:
<if condition="!in_array($bbuserinfo['field5'], array('Male', 'Female'))">
is that more conventional than using say...
Code:
<if condition="$bbuserinfo['field5'] != 'Female' AND $bbuserinfo['field5'] != 'Male'">
Reply With Quote
  #2  
Old 05-02-2014, 09:57 PM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I would say that what you had was fine. I don't know why your simplification didn't work. Could it be that you can't have whitespace (newlines and spaces) inside quotes? Maybe if you included the quotes in each condition instead of once around all of it, it would work.

As for in_array() vs the AND, with two options I'd say it doesn't matter which way you do it. But these are just my opinions, I don't know that I'd call myself an authority on style.

If you wanted to simplify the template code you could use a plugin to set the avatar image, then register a variable to the template. But I suppose one could argue that that actually makes things more complicated.
Reply With Quote
Благодарность от:
Dr.CustUmz
  #3  
Old 05-03-2014, 06:15 AM
Dr.CustUmz's Avatar
Dr.CustUmz Dr.CustUmz is offline
 
Join Date: Aug 2013
Location: USA
Posts: 647
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

thanks ill give it a shot with the "'s inside the conditionals, and note when i did simplify it i did have no whitespace / linebreaks, i just prettified it so it was easier for you guys to read here lol. and i do have a plugin calling the avatar image that's where $navbaravatarurl comes into play, and once i get this simplified i plan on giving the other images a variable also, i just dont want to have to set the same class for every variable, for the sake of code simplification =)
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 07:45 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.03855 seconds
  • Memory Usage 2,194KB
  • 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
  • (2)bbcode_code
  • (2)bbcode_html
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (3)post_thanks_box
  • (1)post_thanks_box_bit
  • (3)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit
  • (3)post_thanks_postbit_info
  • (3)postbit
  • (3)postbit_onlinestatus
  • (3)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
  • fetch_musername
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • 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
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete