PDA

View Full Version : Conditional in memberlist_resultsbit


Bill Thebert
05-11-2004, 01:24 AM
I've tweaked the member profile template on one of my sites to support LARGE photos (640 pixels) displayed at the center-bottom, below all of the other profile information. My users find these images much more useful than the tiny 100px profile pics supported by vB3.0.1 as a default. And larger images aren't aesthetically pleasing in the default location. So far, so good. This part is working well, as pictured below:

http://www.binderbulletin.net/images/big_profile_pics.jpg

What I want to NOW do is display a small icon on the "Member List" page, if and only if a profile pic is present. (Obviously a 640px image is too large to simply include in a column.)

So, with the background info out of the way, here's the part of the memberlist_resultsbit template code I want to tweak:

Original code:


<if condition="$show['profilepiccol'] AND exec_switch_bg()"><td class="$bgclass">$userinfo[profilepic]</td></if>


Here's my first try at what I think I want instead:


<if condition="$show['profilepiccol'] AND exec_switch_bg() AND $userinfo[profilepic]<>NULL"><td class="$bgclass"><img src="/forums/images/misc/pic.gif"></td></if>


As you can see, I'm attempting to add a third condition (*if* a profile pic is present), and if so, to display a small icon. Otherwise, I'd like to just echo an empty column ("<td></td>").

I'm a rank beginner at this stuff (but I'm trying to learn), and my problems at the moment are two:

1) My third condition isn't working. The icon is appearing in ALL cases, regardless of whether a profile pic is present or not; and

2) I don't know how to put the "else" part in there. The syntax of these conditionals isn't anything like the if/then/else syntax shown in the PHP4 reference book that I have at my disposal.

Can anyone give this rookie some guidance? I think I've explained what I'm trying to achieve here.

Regards,

Bill

Bill Thebert
05-14-2004, 12:23 PM
I could still use some help on this, if anyone is so inclined.

Here's the code I'd like to use in the memberlist_resultsbit template:


<if condition="$show['profilepiccol'] AND exec_switch_bg()">
<td class="$bgclass">

<if condition="$userinfo[profilepic]<>NULL">
<img src="/forums/images/misc/pic.gif">
</if>

</td>
</if>


But the interior (nested) conditional isn't correct. I'd like to display the icon only if a profile picture is actually present, and display nothing (an empty table cell) if the user has NOT uploaded a profile pic.

My problem is contained entirely within the phrase:

<if condition="$userinfo[profilepic]<>NULL">

Can anyone help me correct this one little part? That's all I need for this to work as desired.

Thanks,

Bill

Boofo
05-14-2004, 02:42 PM
Try this and let me know if it does what you want. ;)


<if condition="$show['profilepiccol']">
<td class="$bgclass">
<if condition="$userinfo[profilepic]">
<img src="/forums/images/misc/pic.gif">
</if>
</td>
</if>

Bill Thebert
05-14-2004, 02:48 PM
Try this and let me know if it does what you want. ;)


<if condition="$show['profilepiccol']">
<td class="$bgclass">
<if condition="$userinfo[profilepic]">
<img src="/forums/images/misc/pic.gif">
</if>
</td>
</if>


Thanks, Boofo.

Tried your suggestion, but the icon is still displaying for *ALL* users -- not just the ones who've actually uploaded profile pictures.

I''m not clear on precisely how & where the profile pics are stored, and therefore what the conditional ought to look like.

Any other thoughts?

Boofo
05-14-2004, 02:56 PM
Try this:


<if condition="$show['profilepiccol'] AND exec_switch_bg()">
<td class="$bgclass">
<if condition="$userinfo['profilepic'] != ''">
<img src="/forums/images/misc/pic.gif">
</if>
</td>
</if>

Bill Thebert
05-14-2004, 03:10 PM
Try this:


<if condition="$show['profilepiccol'] AND exec_switch_bg()">
<td class="$bgclass">
<if condition="$userinfo['profilepic'] != ''">
<img src="/forums/images/misc/pic.gif">
</if>
</td>
</if>


Still showing the icon for everyone. :::shrug:::

Boofo
05-14-2004, 03:13 PM
Ok, the code in the memberlist_resultsbit template, maybe you could do this?

Change this:

<if condition="$show['profilepiccol'] AND exec_switch_bg()"><td class="$bgclass">$userinfo[profilepic]</td></if>

to this?

<if condition="$show['profilepiccol'] AND exec_switch_bg()"><td class="$bgclass"><img src="/forums/images/misc/pic.gif"></td></if>

Bill Thebert
05-14-2004, 04:03 PM
Ok, the code in the memberlist_resultsbit template, maybe you could do this?

Change this:

<if condition="$show['profilepiccol'] AND exec_switch_bg()"><td class="$bgclass">$userinfo[profilepic]</td></if>

to this?

<if condition="$show['profilepiccol'] AND exec_switch_bg()"><td class="$bgclass"><img src="/forums/images/misc/pic.gif"></td></if>


I'm just a beginner at this, but that seems to me to be saying:

"If the 'profile pic' column is turned on in the Member List , then display the icon."

Where's the logic that checks to see if an individual member's profile pic *exists*?

Without even trying it, that looks to me like it will for sure display the icon for EVERY user. No?

I really appreciate your efforts here, Boofo. I feel like I'm *so* close to getting it the way I want.

Best,

Bill

Boofo
05-14-2004, 04:05 PM
I'm just a beginner at this, but that seems to me to be saying:

"If the 'profile pic' column is turned on in the Member List , then display the icon."

Where's the logic that checks to see if an individual member's profile pic *exists*?

Without even trying it, that looks to me like it will for sure display the icon for EVERY user. No?

I really appreciate your efforts here, Boofo. I feel like I'm *so* close to getting it the way I want.

Best,

Bill
Well, the original code doesn't display the profilepic if there isn't one, right? Try it and see if it does the same thing for the icon. It can't hurt to try. ;)

Bill Thebert
05-14-2004, 05:00 PM
Well, the original code doesn't display the profilepic if there isn't one, right? Try it and see if it does the same thing for the icon. It can't hurt to try. ;)

As predicted, that last variation places the icon in EVERY row of the Member List table.

I think what I need to do here is to find a way of expressing:

"IF the 'customprofilepic' table contains a record where userid = the id of THIS user, then display the icon. Otherwise do nothing."

But I have no idea how to go about this.

Boofo
05-14-2004, 06:36 PM
As predicted, that last variation places the icon in EVERY row of the Member List table.

I think what I need to do here is to find a way of expressing:

"IF the 'customprofilepic' table contains a record where userid = the id of THIS user, then display the icon. Otherwise do nothing."

But I have no idea how to go about this.
Well, you got me on this one. I'm as stumped as you are, right now. :(

Bill Thebert
05-14-2004, 07:30 PM
SOLVED.

Found the following in memberlist.php:


if ($show['profilepiccol'] AND $userinfo['profilepic'])
{
$userinfo['profilepic'] = "<img src=\"image.php?u=$userinfo[userid]&amp;type=profile&amp;dateline=$userinfo[profilepicdateline]\" alt=\"\" title=\"$userinfo[username]'s picture\" border=\"0\" />";
}
else
{
$userinfo['profilepic'] = '&nbsp;';
}



So I changed my conditional to the following:



<if condition="$show['profilepiccol'] AND exec_switch_bg()">
<td class="$bgclass">
<if condition="$userinfo['profilepic'] != '&nbsp;'">
<img src="/forums/images/misc/pic.gif">
</if>
</td>
</if>


Works like a charm now.