Amount of randoms displayed = images per page / 2
This commit is contained in:
parent
fccd5d249d
commit
8251133270
1 changed files with 23 additions and 48 deletions
|
@ -10,66 +10,41 @@
|
|||
|
||||
class RandomList extends Extension {
|
||||
public function onPageRequest(PageRequestEvent $event) {
|
||||
global $page;
|
||||
global $config, $page;
|
||||
|
||||
if($event->page_matches("random")) {
|
||||
// set vars
|
||||
$images_per_page = $config->get_int("index_images") / 2;
|
||||
$random_images = array();
|
||||
$random_html = "<b>Refresh the page to view more images</b>
|
||||
<div class='shm-image-list'>";
|
||||
|
||||
if($event->page_matches("random")) {
|
||||
$html = "<b>Refresh the page to view more images</b>
|
||||
<div class='shm-image-list'>";
|
||||
// generate random images
|
||||
for ($i = 0; $i < $images_per_page; $i++)
|
||||
array_push($random_images, Image::by_random());
|
||||
|
||||
// create html to display images
|
||||
$html .= $this->build_random_html();
|
||||
|
||||
// display it
|
||||
$html .= "</div>";
|
||||
$page->add_block(new Block("Random Images", $html));
|
||||
}
|
||||
// create html to display images
|
||||
foreach ($random_images as $image)
|
||||
$random_html .= $this->build_random_html($image);
|
||||
|
||||
// display it
|
||||
$random_html .= "</div>";
|
||||
$page->add_block(new Block("Random Images", $random_html));
|
||||
}
|
||||
}
|
||||
|
||||
private function build_random_html() {
|
||||
global $config;
|
||||
|
||||
$random_html = "";
|
||||
$images_per_page = $config->get_int("index_images");
|
||||
$random_images = $this->by_random(array(), $images_per_page);
|
||||
|
||||
var_dump($images_per_page);
|
||||
var_dump($random_images);
|
||||
|
||||
foreach ($random_images as $image) {
|
||||
private function build_random_html(Image $image, $query=null) {
|
||||
$i_id = int_escape($image->id);
|
||||
$h_view_link = make_link("post/view/$i_id");
|
||||
$h_view_link = make_link("post/view/$i_id", $query);
|
||||
$h_thumb_link = $image->get_thumb_link();
|
||||
$h_tip = html_escape($image->get_tooltip());
|
||||
$tsize = get_thumbnail_size($image->width, $image->height);
|
||||
|
||||
$random_html .= "
|
||||
|
||||
return "
|
||||
<a href='$h_view_link' class='thumb shm-thumb' data-post-id='$i_id'>
|
||||
<img id='thumb_$i_id' height='{$tsize[1]}' width='{$tsize[0]}' class='lazy' data-original='$h_thumb_link' src='/lib/static/grey.gif'><noscript>
|
||||
<img id='thumb_$i_id' height='{$tsize[1]} width='{$tsize[0]} src='$h_thumb_link'></noscript></a>
|
||||
";
|
||||
}
|
||||
|
||||
return $random_html;
|
||||
}
|
||||
|
||||
/**
|
||||
* Pick certain amount of random images random image out of a set
|
||||
*
|
||||
* @retval Image
|
||||
*/
|
||||
private function by_random($tags=array(), $amount=1) {
|
||||
assert(is_array($tags));
|
||||
$max = Image::count_images($tags);
|
||||
if ($max < 1) return null; // From Issue #22 - opened by HungryFeline on May 30, 2011.
|
||||
$rand = mt_rand(0, $max-1);
|
||||
$set = Image::find_images($rand, $amount, $tags);
|
||||
if(count($set) > 0)
|
||||
{
|
||||
if ($amount == 1) return $set[0]; // return as single image
|
||||
else if ($amount > 1) return $set; // return as array
|
||||
else return null;
|
||||
}
|
||||
else return null;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
Reference in a new issue