Example #1
0
 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);
 }
Example #2
0
 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);
 }