Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
  #1  
Old 06-24-2006, 11:36 PM
Kirk Y's Avatar
Kirk Y Kirk Y is offline
 
Join Date: Apr 2005
Location: Tallahassee, Florida
Posts: 2,604
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Break after X amount of images

I've got a page displaying the members' profile pictures. The problem is that all the pictures are being placed on one line, so I'm trying to figure out how to add a <tr> after 5 images have been displayed. I've seen a few gallery hacks do this, but I only partially understand the process. This is what I've got so far:

PHP Code:
$users $db->query_read("
  SELECT *
  FROM user
 "
);
$userstotal $db->query_read("
  SELECT username
  FROM user
 "
);
$user_count mysql_num_rows($userstotal);
while (
$userinfo $db->fetch_array($users))
 {
   if (
$vbulletin->options['usefileavatar'])
   {
    
$userinfo['profilepicurl'] = $vbulletin->options['profilepicurl'] . '/profilepic' $userinfo['userid'] . '_' $userinfo['profilepicrevision'] . '.gif';
   }
   else
   {
    
$userinfo['profilepicurl'] = 'image.php?' $vbulletin->session->vars['sessionurl'] . 'u=' $userinfo['userid'] . "&amp;dateline=$userinfo[profilepicdateline]&amp;type=profile";
   }
   
$username $userinfo['username'];
   
$userid $userinfo['userid'];
   
$userinfopic .= "<td class=\"alt2\" height=\"100\" width=\"120\" align=\"center\"><b>$username</b><br /><img src=\"" $userinfo['profilepicurl'] . "\" alt=\"\" title=\"$userinfo[username]'s picture\" border=\"0\"";
   
$userinfopic .= ($userinfo['ppwidth'] AND $userinfo['ppheight']) ? " width=\"$userinfo[ppwidth]\" height=\"$userinfo[ppheight]\" " '';
   
$userinfopic .= "/></td>";
 } 
So I use $userinfopic to display the images and I added a query to determine the number of rows. I tried using this in my template:

HTML Code:
<if condition="$user_count > '5'">
</tr><tr>
</if>
But it's being added after userinfopic, so it's obviously not having an effect on the 6th image. If it's not obvious by now, I'm clueless as to how to proceed. If someone wouldn't mind pointing me in the right direction, it'd be much appreciated.
Reply With Quote
  #2  
Old 06-25-2006, 01:27 PM
calorie calorie is offline
 
Join Date: May 2003
Posts: 2,804
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Consider setting a counter and then use something like follows:
Code:
if ($counter % 5 == 0)
{
	// do </tr><tr> thing
}
Reply With Quote
  #3  
Old 06-25-2006, 05:17 PM
Kirk Y's Avatar
Kirk Y Kirk Y is offline
 
Join Date: Apr 2005
Location: Tallahassee, Florida
Posts: 2,604
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

That's sort of what I was trying, only problem is, I'm not sure where to stick the if condition.
Reply With Quote
  #4  
Old 06-25-2006, 06:30 PM
Paul M's Avatar
Paul M Paul M is offline
 
Join Date: Sep 2004
Location: Nottingham, UK
Posts: 23,748
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

After the final line, before the closing bracket I would guess.

You also need the $counter - setting it to 0 before the while, and adding 1 to it inside the loop.
Reply With Quote
  #5  
Old 06-25-2006, 08:38 PM
Kirk Y's Avatar
Kirk Y Kirk Y is offline
 
Join Date: Apr 2005
Location: Tallahassee, Florida
Posts: 2,604
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

$counter would be the same as my $user_count var, would it not?
Reply With Quote
  #6  
Old 06-25-2006, 09:41 PM
Guest190829
Guest
 
Posts: n/a
Default

Nope, your $user_count is the amount of rows in the database. $counter will act as a counter, and increment every time the while loop is processed.

So in your while loop you need:

PHP Code:
$counter += 1

if ($counter == 0)
{
    
// do </tr><tr> thing

The "$counter % 5 == 0" expression means if the counter is divisible by 5, then start a new row.
Reply With Quote
  #7  
Old 06-26-2006, 12:53 AM
Kirk Y's Avatar
Kirk Y Kirk Y is offline
 
Join Date: Apr 2005
Location: Tallahassee, Florida
Posts: 2,604
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Well it seems like I've done everything right, but I still can't get the pictures to break after the 5th. But thanks for all your collective attempts.

The code works fine, it must be something with my html, as far as I can tell. Would it be more than a </tr><tr>?
Reply With Quote
Reply

Thread Tools
Display Modes

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 02:46 PM.


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.03834 seconds
  • Memory Usage 2,227KB
  • 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_code
  • (1)bbcode_html
  • (2)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (7)post_thanks_box
  • (7)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (7)post_thanks_postbit_info
  • (7)postbit
  • (6)postbit_onlinestatus
  • (7)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