function display($tpl = null) { JHTML::_('behavior.mootools'); $session_namespace = 'com_rokgallery.site'; $session =& JFactory::getSession(); $app =& JFactory::getApplication(); $params =& $app->getParams(); $menu =& JSite::getMenu(); $menuItem =& $menu->getActive(); //$params = new JParameter($menuItem->params); $document =& JFactory::getDocument(); $id = JRequest::getVar('id'); $style = JRequest::getWord('style', $params->get('default_style')); $layout = JRequest::getVar('layout', $session->get('layout', $this->getLayout(), $session_namespace)); if ($layout == 'default') { $layout = $params->get('detail_layout'); } $gallery_id = $session->get('gallery_id', $params->get('gallery_id'), $session_namespace); $sort_by = $session->get('sort_by', $params->get('default_sort_by'), $session_namespace); $sort_direction = $session->get('sort_direction', $params->get('default_sort_direction'), $session_namespace); $page = JRequest::getVar('page', $session->get('last_page', 1, $session_namespace)); $items_per_page = $session->get('items_per_page', (int) $params->get($layout . '-items_per_row', 2) * (int) $params->get($layout . '-rows_per_page', 2), $session_namespace); /** @var RokGallery_Site_DetailModel $rtmodel */ $this->rtmodel = new RokGallery_Site_DetailModel($gallery_id, $id, $page, $items_per_page, $sort_by, $sort_direction); $slice = $this->rtmodel->getSingle(); if ($slice === false) { return JError::raiseError(500, 'Gallery Item is not published.'); } if (!RokCommon_Session::get('com_rokgallery.site.views.file_' . $slice->file_id, false)) { $slice->incrementView(); RokCommon_Session::set('com_rokgallery.site.views.file_' . $slice->file_id, true); } $base_page_url = RokCommon_URL::setParams('index.php', array('option' => 'com_rokgallery', 'view' => 'gallery')); $base_ajax_url = RokCommon_URL::setParams('index.php', array('option' => 'com_rokgallery', 'task' => 'ajax', 'format' => 'raw')); // Assignments to JS namespaces $this->assign('base_ajax_url', $base_ajax_url); $next_link = null; $prev_link = null; if ($this->rtmodel->getNextId() != null) { $next_link = JRoute::_(RokCommon_URL::updateParams($base_page_url, array('view' => 'detail', 'id' => $this->rtmodel->getNextId(), 'page' => $this->rtmodel->getNextPage()))); } if ($this->rtmodel->getPrevId() != null) { $prev_link = JRoute::_(RokCommon_URL::updateParams($base_page_url, array('view' => 'detail', 'id' => $this->rtmodel->getPrevId(), 'page' => $this->rtmodel->getPrevPage()))); } $pathway =& $app->getPathway(); $pwc = $pathway->getPathway(); $pwc[count($pwc) - 1]->link = $pwc[count($pwc) - 1]->link . '&page=' . $page; $pathway->setPathway($pwc); $pathway->addItem($slice->title); $layout = $this->getLayout(); $context = 'com_rokgallery.detail.' . $layout; $style_context = $context . "." . $style; $this->assign('gallery_link', JRoute::_($menuItem->link . "&page=" . $this->rtmodel->getCurrentPage())); $this->assign('gallery_name', $menuItem->title); $this->assign('context', $context); $this->assign('style_context', $style_context); $this->assign('width', $slice->Gallery->width); $this->assign('height', $slice->Gallery->height); $this->assign('love_text', rc__(RokGallery_Config::getOption(RokGallery_Config::OPTION_LOVE_TEXT))); $this->assign('unlove_text', rc__(RokGallery_Config::getOption(RokGallery_Config::OPTION_UNLOVE_TEXT))); $this->assignRef('slice', $slice); $image = $this->getPresentationImage($slice, $params); $this->assignRef('image', $image); $session->set('last_page', $this->rtmodel->getCurrentPage(), $session_namespace); $document->setTitle($document->getTitle() . ' - ' . $image->title); $this->assign('next_link', $next_link); $this->assign('prev_link', $prev_link); $this->assign('show_title', $params->get('detail_show_title', false)); $this->assign('show_caption', $params->get('detail_show_caption', false)); $this->assign('show_tags', $params->get('detail_show_tags', false)); $this->assign('show_tags_count', $params->get('detail_show_tags_count', false)); $this->assign('show_created_at', $params->get('detail_show_created_at', true)); $this->assign('show_updated_at', $params->get('detail_show_updated_at', true)); $this->assign('show_loves', $params->get('detail_show_loves', false)); $this->assign('show_views', $params->get('detail_show_views', false)); $this->assign('show_filesize', $params->get('detail_show_filesize', true)); $this->assign('show_dimensions', $params->get('detail_show_dimensions', true)); $this->assign('show_download_full', $params->get('detail_show_download_full', true)); $this->assign('show_gallery_info', $params->get('detail_show_download_full', true)); $this->setLayout('default'); parent::display($tpl); }
function display($tpl = null) { JHTML::_('behavior.mootools'); $session = JFactory::getSession(); $session_namespace = 'com_rokgallery.site'; $app =& JFactory::getApplication(); $menu = $app->getMenu(); $activemenu = $menu->getActive(); if (empty($activemenu)) { $activemenu = $menu->getDefault(); $menu->setActive($activemenu->id); } /** @var $params JParameter */ $params =& $activemenu->params; foreach ($params->toArray() as $param_name => $param_value) { $this->assign($param_name, $param_value); } $document =& JFactory::getDocument(); $uri = JRequest::getURI(); // Get session variables $style = JRequest::getWord('style', $params->get('default_style')); $sort_direction = JRequest::getVar('sort_direction', $session->get('sort_direction', $params->get('default_sort_direction'), $session_namespace)); if ($params->get('show_sorts')) { $sort_by = JRequest::getVar('sort_by', $session->get('sort_by', $params->get('default_sort_by'), $session_namespace)); } else { $sort_by = JRequest::getVar('sort_by', $params->get('default_sort_by')); } if ($params->get('show_available_layouts', true)) { $layout = JRequest::getVar('layout', $session->get('layout', $this->getLayout(), $session_namespace)); } else { $layout = JRequest::getVar('layout', $this->getLayout()); } if ($layout == 'default') { $layout = $params->get('default_layout'); } $items_per_row = (int) $params->get($layout . '-items_per_row', 2); $items_per_page = (int) $params->get($layout . '-items_per_row', 2) * (int) $params->get($layout . '-rows_per_page', 2); $gallery_id = $params->get('gallery_id'); $current_page = JRequest::getInt('page', 1); $menu_item = JRequest::getInt('Itemid'); // Set session passed vars $session->set('gallery_id', $gallery_id, $session_namespace); $session->set('sort_by', $sort_by, $session_namespace); $session->set('sort_direction', $sort_direction, $session_namespace); $session->set('layout', $layout, $session_namespace); $session->set('last_page', $current_page, $session_namespace); $session->set('items_per_page', $items_per_page, $session_namespace); $base_page_url = RokCommon_URL::setParams('index.php', array('option' => 'com_rokgallery', 'view' => 'gallery')); $base_ajax_url = RokCommon_URL::setParams('index.php', array('option' => 'com_rokgallery', 'task' => 'ajax', 'format' => 'raw')); $model = new RokGallery_Site_GalleryModel($gallery_id, $sort_by, $sort_direction); $gallery = RokGallery_Model_GalleryTable::getSingle($gallery_id); if ($gallery == false) { return JError::raiseError(500, 'Gallery with ID "' . $params->get('gallery_id') . '" not found'); } $slices = $model->getPagedSlices($current_page, $items_per_page); $pager = $model->getPager(); if ($pager->getLastPage() < $current_page) { $current_page = $pager->getLastPage(); } $next_page = false; $prev_page = false; $pages = false; if ($pager->haveToPaginate()) { $ranger = $pager->getRange('Sliding', array('chunk' => $params->get('pages_in_shown_range'))); $pages = array(); foreach ($ranger->rangeAroundPage() as $page) { $page_class = new stdClass(); $page_class->page_num = $page; $page_class->active = $current_page == $page; if (!$page_class->active) { $page_class->link = JRoute::_(RokCommon_URL::updateParams($base_page_url, array('page' => $page))); } else { $page_class->link = '#'; } $pages[] = $page_class; if ($page == $pager->getNextPage() && $pager->getNextPage() != $current_page) { $next_page = $page_class; } if ($page == $pager->getPreviousPage() && $pager->getPreviousPage() != $current_page) { $prev_page = $page_class; } } } $images = array(); $passed_slices = array(); foreach ($slices as &$slice) { $images[] = $this->getPresentationImage($slice, $params, $base_page_url, $sort_by, $sort_direction); $passed_slices[$slice->id] = $slice; } $this->assignRef('images', $images); $this->assignRef('slices', $passed_slices); $layout_names = array('grid-3col' => rc__('ROKGALLERY_GRID_3COL'), 'grid-4col' => rc__('ROKGALLERY_GRID_4COL'), 'list-2col' => rc__('ROKGALLERY_LIST_2COL')); $layouts = $this->getList('layout', $layout, $current_page, $layout_names, $menu_item, $base_page_url); $this->assignRef('layouts', $layouts); $style_names = array('light' => rc__('ROKGALLERY_LIGHT'), 'dark' => rc__('ROKGALLERY_DARK')); $styles = $this->getList('style', $style, $current_page, $style_names, $menu_item, $base_page_url); $this->assignRef('styles', $styles); $sort_by_names = array('gallery_ordering' => rc__('ROKGALLERY_SORT_GALLERY_ORDERING'), 'file_created_at' => rc__('ROKGALLERY_SORT_CREATED'), 'slice_updated_at' => rc__('ROKGALLERY_SORT_UPDATED'), 'slice_title' => rc__('ROKGALLERY_SORT_TITLE'), 'loves' => rc__('ROKGALLERY_SORT_LOVES'), 'views' => rc__('ROKGALLERY_SORT_VIEWS')); $sort_bys = $this->getList('sort_by', $sort_by, $current_page, $sort_by_names, $menu_item, $base_page_url); $this->assignRef('sort_bys', $sort_bys); $sort_dir_names = array('ASC' => 'ascending', 'DESC' => 'descending'); $sort_directions = $this->getList('sort_direction', $sort_direction, $current_page, $sort_dir_names, $menu_item, $base_page_url); $this->assignRef('sort_directions', $sort_directions); $total_items = $pager->getNumResults(); $item_number = $pager->getFirstIndice(); $layout_context = 'com_rokgallery.gallery.' . $layout; $style_context = $layout_context . '.' . $style; // Assignments to JS namespaces $this->assign('base_ajax_url', $base_ajax_url); $this->assign('available_layouts', $params->get('available_layouts', array())); $this->assign('available_sorts', $params->get('available_sorts', array())); $sort_dir = false; foreach ($sort_bys as $sort_by_item) { if ($sort_by_item->active) { $sort_dir = new stdClass(); $sort_dir->field = $sort_by_item->name; $other_sort = $sort_direction == 'ASC' ? 'DESC' : 'ASC'; $sort_dir->link = $sort_directions[$other_sort]->link; $sort_dir->class = $other_sort == 'ASC' ? 'ascending' : 'descending'; break; } } // Joomla params $this->assign('show_page_heading', $params->get('show_page_heading', 1)); $this->assign('page_heading', $this->escape($params->get('page_heading'))); // Assignments to page passed vars $this->assign('pages', $pages); $this->assign('next_page', $next_page); $this->assign('prev_page', $prev_page); $this->assign('items_per_row', $items_per_row); $this->assign('total_items', $total_items); $this->assign('items_per_page', $items_per_page); $this->assign('item_number', $item_number); $this->assign('context', $layout_context); $this->assign('style_context', $style_context); $this->assign('current_page', $current_page); $this->assign('thumb_width', $gallery->thumb_xsize); $this->assign('thumb_height', $gallery->thumb_ysize); $this->assign('sort_by', $sort_by); $this->assign('sort_direction', $sort_direction); $this->assign('sort_dir', $sort_dir); $this->assign('style', $style); $this->assign('layout', $layout); // populate basic page render vars $this->assign('show_created_at', $params->get('gallery_show_created_at', true)); $this->assign('show_tags', $params->get('gallery_show_tags', false)); $this->assign('show_tags_count', $params->get('gallery_show_tags_count', false)); $this->assign('show_caption', $params->get('gallery_show_caption', false)); $this->assign('show_title', $params->get('gallery_show_title', false)); $this->assign('show_loves', $params->get('gallery_show_loves', false)); $this->assign('show_views', $params->get('gallery_show_views', false)); $this->assign('show_available_layouts', $params->get('show_available_layouts', true)); $this->setLayout('default'); parent::display($tpl); }