diff options
author | Bharat Mediratta <bharat@menalto.com> | 2010-11-21 13:51:07 -0800 |
---|---|---|
committer | Bharat Mediratta <bharat@menalto.com> | 2010-11-21 13:51:07 -0800 |
commit | 3c523bcac6e902973c5891c02842254eaecd33a4 (patch) | |
tree | 805ba27e848c013fb4034a507fdbce4a0b1a81bb /modules/image_block | |
parent | 5f4ab7fd76d24e3848aa96b3f657fca587d68f72 (diff) |
Create a module setting for the number of random images to show in the
sidebar. Fixes #1499.
Diffstat (limited to 'modules/image_block')
-rw-r--r-- | modules/image_block/helpers/image_block_block.php | 20 | ||||
-rw-r--r-- | modules/image_block/helpers/image_block_installer.php | 29 | ||||
-rw-r--r-- | modules/image_block/module.info | 2 | ||||
-rw-r--r-- | modules/image_block/views/image_block_block.html.php | 2 |
4 files changed, 46 insertions, 7 deletions
diff --git a/modules/image_block/helpers/image_block_block.php b/modules/image_block/helpers/image_block_block.php index da6e8782..0a53672c 100644 --- a/modules/image_block/helpers/image_block_block.php +++ b/modules/image_block/helpers/image_block_block.php @@ -29,16 +29,24 @@ class image_block_block_Core { // The random_query approach is flawed and doesn't always return a // result when there actually is one. Retry a *few* times. // @todo Consider another fallback if further optimizations are necessary. - $attempts = 0; - do { - $item = item::random_query()->where("type", "!=", "album")->find_all(1)->current(); - } while (!$item && $attempts++ < 3); - if ($item && $item->loaded()) { + $image_count = module::get_var("image_block", "image_count"); + $items = array(); + for ($i = 0; $i < $image_count; $i++) { + $attempts = 0; + $item = null; + do { + $item = item::random_query()->where("type", "!=", "album")->find_all(1)->current(); + } while (!$item && $attempts++ < 3); + if ($item) { + $items[] = $item; + } + } + if ($items) { $block = new Block(); $block->css_id = "g-image-block"; $block->title = t("Random image"); $block->content = new View("image_block_block.html"); - $block->content->item = $item; + $block->content->items = $items; } break; } diff --git a/modules/image_block/helpers/image_block_installer.php b/modules/image_block/helpers/image_block_installer.php new file mode 100644 index 00000000..895a7e5d --- /dev/null +++ b/modules/image_block/helpers/image_block_installer.php @@ -0,0 +1,29 @@ +<?php defined("SYSPATH") or die("No direct script access."); +/** + * Gallery - a web based photo album viewer and editor + * Copyright (C) 2000-2010 Bharat Mediratta + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. + */ +class image_block_installer { + + static function upgrade($version) { + $db = Database::instance(); + if ($version == 1) { + module::set_var("image_block", "image_count", "1"); + module::set_version("image_block", $version = 2); + } + } +} diff --git a/modules/image_block/module.info b/modules/image_block/module.info index e6d85048..b92b83df 100644 --- a/modules/image_block/module.info +++ b/modules/image_block/module.info @@ -1,3 +1,3 @@ name = "Image Block" description = "Display a random image in the sidebar" -version = 1 +version = 2 diff --git a/modules/image_block/views/image_block_block.html.php b/modules/image_block/views/image_block_block.html.php index 68d5fa89..2a57c395 100644 --- a/modules/image_block/views/image_block_block.html.php +++ b/modules/image_block/views/image_block_block.html.php @@ -1,6 +1,8 @@ <?php defined("SYSPATH") or die("No direct script access.") ?> +<? foreach ($items as $item): ?> <div class="g-image-block"> <a href="<?= $item->url() ?>"> <?= $item->thumb_img(array("class" => "g-thumbnail")) ?> </a> </div> +<? endforeach ?> |