PDA

View Full Version : [IF] just wanting someone to check my code


Dr.CustUmz
05-02-2014, 05:48 AM
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:
<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 =/
<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
<if condition="!in_array($bbuserinfo['field5'], array('Male', 'Female'))">
is that more conventional than using say...
<if condition="$bbuserinfo['field5'] != 'Female' AND $bbuserinfo['field5'] != 'Male'">

kh99
05-02-2014, 09:57 PM
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.

Dr.CustUmz
05-03-2014, 06:15 AM
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 =)