vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=15)
-   -   [IF] just wanting someone to check my code (https://vborg.vbsupport.ru/showthread.php?t=310968)

Dr.CustUmz 05-02-2014 05:48 AM

[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'">

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 =)


All times are GMT. The time now is 12:05 AM.

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.02325 seconds
  • Memory Usage 1,730KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (2)bbcode_code_printable
  • (2)bbcode_html_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (3)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.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/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.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
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete