Source for file gallery.php
Documentation is available at gallery.php
* An open source application development framework for PHP 4.3.2 or newer
* @package CodeIgniter Photogallery
* @package CodeIgniter Photogallery
* @author Zdenek Kalina <kalinz1@fel.cvut.cz>
* @copyright Zdenek Kalina
// --------------------------------------------------------------------
$this->load->model('gallery_model');
$this->load->model('entity_model');
// --------------------------------------------------------------------
function _not_exist($id_gallery)
$view['label'] = 'Na zadané adrese neexistuje bohužel žádná galerie.';
$view['link'] = anchor('gallery', 'Hlavní složka galerie');
$this->config->set_item('global_title', 'Chyba');
$this->template->write_view('content', 'error', $view);
$this->template->render();
// --------------------------------------------------------------------
* Gallery Image not exist page
function _not_exist_image($id_image, $gallery_alias = '')
$view['label'] = 'V zadané fotogalerii neexistuje bohužel zadaná fotografie.';
$view['link'] = anchor('gallery', 'Hlavní složka galerie');
if ($name = $this->entity_model->selectOne('gallery', 'name', array('alias' => $gallery_alias), true))
$view['link'] = anchor('gallery/index/' . $gallery_alias, $name);
$this->config->set_item('global_title', 'Chyba');
$this->template->write_view('content', 'error', $view);
$this->template->render();
// --------------------------------------------------------------------
* Gallery layout shows when gallery alias is set
* Gallery Image layout shows when gallery alias and image alias are set
* Gallery layout with starting page shows when no parameters
* @param string $gallery_alias
* @param string $image_alias
function index($gallery_alias = '', $image_alias = '')
if (! strlen($gallery_alias)) $gallery_alias = 0;
elseif (strlen($image_alias)) {
$this->_show_image($gallery_alias, $image_alias);
if ($gallery_alias && ! ($id_gallery = $this->entity_model->selectOne('gallery', 'id_gallery', array('alias' => $gallery_alias), true))) {
$this->_not_exist($id_gallery);
$id_gallery = $gallery_alias;
$info['name'] = 'Hlavní složka';
$info['cnt_galleries'] = $this->entity_model->count('gallery', array('id_gallery_parent' => $id_gallery));
// $cnt_recursive = $this->gallery_model->countSubgalleriesRecursive($id_gallery, TRUE, $info['cnt_galleries']);
$info = $this->entity_model->selectOne('gallery', '*', array('alias' => $gallery_alias));
$rating = $info['rating'] == - 1? 'Zatím nikdo nehodnotil': ($info['rating'] . ' z 10');
$id_gallery = $info['id_gallery'];
// $cnt_recursive = $this->gallery_model->countSubgalleriesRecursive($id_gallery);
$images = $this->entity_model->select('image', 'id_image, alias, name, created_by, created_date', array('id_gallery' => $id_gallery), false, 'alias');
$this->config->set_item('global_title', $info['name']);
$subgalleries = $this->entity_model->select('gallery', 'alias, name, cnt_images, cnt_galleries, visible, thumbnail_image', array('id_gallery_parent' => $id_gallery), false, 'name');
$subgalleries_list = array();
foreach($subgalleries as $entry) {
if (!$entry['visible'] || (!$entry['cnt_images'] && !$entry['cnt_galleries']) || ! is_url_allowed('gallery/index/' . $entry['alias'], 1)) continue;
$items['link'] = anchor('gallery/index/' . $entry['alias'], $entry['name']);
if($entry['thumbnail_image']){
$img_data['gallery'] = $entry['alias'];
$img_data['alt'] = $entry['name'];
$items['icon'] = $this->gallery_lib->getIcon($img_data);
$subgalleries_list[] = $items;
$th_data['gallery'] = $gallery_alias;
foreach($images as $entry) {
$th_data['alt'] = $entry['name'];
$th_data['image'] = $entry['alias'];
$th_data['group'] = $gallery_alias;
$items['thumbnail'] = $this->gallery_lib->getThumb($th_data, true, true, false);
$items['link'] = site_url('gallery/index/' . $gallery_alias . '/' . $entry['alias']);
/*$cnt_galleries = $info['cnt_galleries'].' lokálně | '.$cnt_recursive['cnt_galleries'].' rekurzivně';
$cnt_images = $info['cnt_images'].' lokálně | '.$cnt_recursive['cnt_images'].' rekurzivně';*/
$cnt = 'Počet fotografií: '. $cnt_images. ' / Počet galerií: '. $cnt_galleries;
$cnt_images = $cnt_images . '';
$this->prepare_view->add_col('name', $info['name'], 'Název galerie');
$this->prepare_view->add_col('cnt', $cnt, 'Obsah');
//$this->prepare_view->add_col('cnt_images', $cnt_images, 'Počet fotografií');
$items = array('name', 'cnt');
$this->prepare_view->add_col('changed_last_date', $info['changed_last_date'], 'Datum poslední změny');
$this->prepare_view->add_col('created_date', $info['created_date'], 'Datum vytvoření');
$this->prepare_view->add_col('rating', $rating, 'Hodnocení');
$items = array_merge($items, array('changed_last_date', 'created_date', 'rating'));
$this->prepare_view->add_row(1, $items);
$table1['list'] = $this->prepare_view->load_rows();
$this->template->write_view('left', 'gallery/info', $table1);
$breadcrumbs['breadcrumbs'] = $this->gallery_lib->breadcrumbs($id_gallery);
$this->template->write_view('content', 'gallery/breadcrumbs', $breadcrumbs);
$view['galleries'] = $subgalleries_list;
$this->template->write_view('content', 'gallery/gallery_list', $view);
if ($has_subgal && $has_image) $this->template->write('content', '<div class="hseparator"> </div>');
$view2['images'] = $images_list;
$this->template->write_view('content', 'gallery/image_list', $view2);
$this->template->render();
// --------------------------------------------------------------------
* @param string $gallery_alias
* @param string $image_alias
function _show_image($gallery_alias, $image_alias)
if (! ($id_gallery = $this->entity_model->selectOne('gallery', 'id_gallery', array('alias' => $gallery_alias), true))) {
$this->_not_exist($id_gallery);
if (! ($id_image = $this->entity_model->selectOne('image', 'id_image', array('id_gallery' => $id_gallery, 'alias' => $image_alias), true))) {
$this->_not_exist_image($id_image, $gallery_alias);
$info = $this->entity_model->selectOne('image', '*', array('id_gallery' => $id_gallery, 'alias' => $image_alias));
$this->config->set_item('global_title', $info['name']);
$items['gallery_name'] = $this->entity_model->selectOne('gallery', 'name', array('id_gallery' => $id_gallery), true);
$items['gallery_name'] = anchor('gallery/index/' . $gallery_alias, $items['gallery_name'], array('class' => 'nodeco'));
$items['dimensions'] = $info['width'] . 'x' . $info['height'] . ' px';
$items['created_date'] = $info['created_date'];
$items['date_time'] = ($info['date']? ($info['date'] . ' '): '') . $info['time']? $info['time']: '';
$items['date_time'] = strlen($items['date_time'])? $items['date_time']: '-';
$items['dimensions_orig'] = ($info['width_orig'] && $info['height_orig'])? ($info['width_orig'] . 'x' . $info['height_orig'] . ' px'): '-';
$items['rating'] = $info['rating'] == - 1? 'Zatím nikdo nehodnotil': ($info['rating'] . ' z 10');
$this->prepare_view->add_col('name', $info['name'], 'Název fotografie');
$this->prepare_view->add_col('gallery_name', $items['gallery_name'], 'Název galerie');
$this->prepare_view->add_col('dimensions', $items['dimensions'], 'Velikost');
$this->prepare_view->add_col('created_date', $items['created_date'], 'Datum zveřejnění');
$this->prepare_view->add_col('author', $info['author']? $info['author']: '-', 'Autor fotografie');
$this->prepare_view->add_col('date_time', $items['date_time'], 'Datum pořízení');
$this->prepare_view->add_col('place', $info['place']? $info['place']: '-', 'Místo pořízení');
$this->prepare_view->add_col('gps', $info['gps']? $info['gps']: '-', 'GPS souřadnice');
$this->prepare_view->add_col('dimensions_orig', $items['dimensions_orig'], 'Originální velikost');
$this->prepare_view->add_col('camera', $info['camera']? $info['camera']: '-', 'Fotoaparát');
$this->prepare_view->add_col('rating', $items['rating'], 'Hodnocení');
$this->prepare_view->add_row(1, array('name', 'gallery_name', 'dimensions', 'created_date', 'author', 'date_time', 'place', 'gps', 'dimensions_orig', 'rating'));
$table1['list'] = $this->prepare_view->load_rows();
$this->template->write_view('left', 'gallery/info', $table1);
$breadcrumbs['breadcrumbs'] = $this->gallery_lib->breadcrumbs($id_gallery, true);
$breadcrumbs['breadcrumbs'][] = $info['name'];
$this->template->write_view('content', 'gallery/breadcrumbs', $breadcrumbs);
$img_data['gallery'] = $gallery_alias;
$img_data['alt'] = $info['name'];
$img_data['image'] = $info['alias'];
$items['image'] = $this->gallery_lib->getImage($img_data);
$view2['image'] = $items['image'];
$view2['navigation'] = $this->gallery_lib->getPrevNextImage($id_gallery, $id_image);
$this->template->write_view('content', 'gallery/image', $view2);
$this->template->render();
|