showing wrong number of thumbs
5 posts by 2 authors in: Forums > CMS Builder
Last Post: March 31, 2010 (RSS)
By rez - March 30, 2010 - edited: March 30, 2010
<?php foreach ($galleryRecords as $record): ?>
<?PHP shuffle($record['uploads']) ?>
<?php $counter = 1; ?>
<?php foreach ($record['uploads'] as $upload): ?>
<li><a href="<?php echo $upload['urlPath'] ?>" ><img src="<?php echo $upload['thumbUrlPath'] ?>" /></a></li>
<?php if($counter == 8) : ?><?PHP break ?><?php endif; ?>
<?php $counter++ ?>
<?php endforeach ?>
<?php endforeach ?>
Re: [rez] showing wrong number of thumbs
By Chris - March 30, 2010
"break" only exits out of one loop, so your code will display a random selection of (up to) 8 uploads from each of your records in $galleryRecords.
Did you want to display a random selection of 8 uploads from all your records?
Chris
Re: [chris] showing wrong number of thumbs
By rez - March 30, 2010 - edited: March 30, 2010
But yes, I wanted to show random thumbs from all the records. Actually 12.
Re: [rez] showing wrong number of thumbs
By Chris - March 31, 2010
The trick here is to first combine each record's list of uploads into one big list of all the uploads, then shuffle it.
Also, instead of using the $counter trick, I used array_slice to trim the list down to its first 12 entries. $counter would have worked just as well too. :)
<?php
// make one big list of all the 'uploads' from all the records
$allUploads = array();
foreach ($galleryRecords as $record) {
$allUploads = array_merge($allUploads, $record['uploads']);
}
// randomize their order
shuffle($allUploads);
// keep only the first 12 uploads
$allUploads = array_slice($allUploads, 0, 12);
?>
<?php foreach ($allUploads as $upload): ?>
<li><a href="<?php echo $upload['urlPath'] ?>" ><img src="<?php echo $upload['thumbUrlPath'] ?>" /></a></li>
<?php endforeach ?>
I hope this helps! Please let me know if you have any questions.
Chris
Re: [chris] showing wrong number of thumbs
By rez - March 31, 2010