/** * Delete the file and all associated rows (done by foreign keys) and files * $params object should be a json like * <code> * { * "page": 3, * "items_per_page":6 * "filters": [{ type: "title", operator: "is not", query: "example"},{ type: "title", operator: "is not", query: "example"}] * "get_remaining": true * } * </code> * * @param $params * @return RokCommon_Ajax_Result */ public function getPage($params) { $result = new RokCommon_Ajax_Result(); try { $html = ''; $filters = array(); foreach ($params->filters as $filter) { $filters[] = RokGallery_Filter_Item::createFromJson($filter); } $model = new RokGallery_Admin_MainPage(); $order_by = isset($params->order->order_by) ? $params->order->order_by : null; $order_direction = isset($params->order->order_direction) ? $params->order->order_direction : null; $files = $model->getFiles($params->page, $params->items_per_page, $filters, $order_by, $order_direction); $pager = $model->getPager($params->page, $params->items_per_page, $filters, $order_by, $order_direction); $model->clearPager(); $total_items_count = $pager->getResultsInPage(); $current_page = $params->page; $next_page = $current_page == 1 ? 3 : $current_page + 1; $next_page = $current_page == $pager->getLastPage() ? false : $next_page; $remaining_pages = $next_page ? $pager->getLastPage() - $current_page : 0; $items_per_page = RokGallery_Config::getOption(RokGallery_Config::OPTION_ADMIN_ITEMS_PER_PAGE, 6); $passed_items_per_page = $items_per_page; $items_per_page = $current_page == 1 ? $items_per_page * 2 : $items_per_page; $items_per_row = RokGallery_Config::getOption(RokGallery_Config::OPTION_ADMIN_ITEMS_PER_ROW, 3); $that->files =& $files; $that->items_per_page = $items_per_page; $that->items_per_row = $items_per_row; ob_start(); $that->row_entry_number = 0; $that->item_number = 1; $that->items_to_be_rendered = $pager->getResultsInPage(); foreach ($that->files as $that->file) { if (!isset($params->composite) || !isset($params->composite->context) || !isset($params->composite->layout)) { echo RokCommon_Composite::get('com_rokgallery.default')->load('default_row.php', array('that' => $that)); } else { echo RokCommon_Composite::get($params->composite->context)->load($params->composite->layout . '.php', array('that' => $that)); } $that->row_entry_number++; $that->item_number++; } $html .= ob_get_clean(); if (isset($params->get_remaining) && $params->get_remaining) { for ($params->page++; $params->page <= $pager->getLastPage(); $params->page++) { $more_files = $model->getFiles($params->page, $params->items_per_page, $filters, $order_by, $order_direction); $pager = $model->getPager($params->page, $params->items_per_page, $filters, $order_by, $order_direction); $model->clearPager(); $total_items_count = $total_items_count + $pager->getResultsInPage(); $current_page = $params->page; $next_page = $current_page == 1 ? 3 : $current_page + 1; $next_page = $current_page == $pager->getLastPage() ? false : $next_page; $remaining_pages = $next_page ? $pager->getLastPage() - $current_page : 0; $items_per_page = RokGallery_Config::getOption(RokGallery_Config::OPTION_ADMIN_ITEMS_PER_PAGE, 6); $passed_items_per_page = $items_per_page; $items_per_page = $current_page == 1 ? $items_per_page * 2 : $items_per_page; $items_per_row = RokGallery_Config::getOption(RokGallery_Config::OPTION_ADMIN_ITEMS_PER_ROW, 3); $that->files =& $more_files; $that->items_per_page = $items_per_page; $that->items_per_row = $items_per_row; ob_start(); $that->row_entry_number = 0; $that->item_number = 1; $that->items_to_be_rendered = $pager->getResultsInPage(); foreach ($that->files as $that->file) { if (!isset($params->composite) || !isset($params->composite->context) || !isset($params->composite->layout)) { echo RokCommon_Composite::get('com_rokgallery.default')->load('default_row.php', array('that' => $that)); } else { echo RokCommon_Composite::get($params->composite->context)->load($params->composite->layout . '.php', array('that' => $that)); } $that->row_entry_number++; $that->item_number++; } $html .= ob_get_clean(); } } $result->setPayload(array('next_page' => $next_page, 'last_page' => $pager->getLastPage(), 'items_per_page' => $passed_items_per_page, 'items_returned' => $total_items_count, 'more_pages' => $next_page == false ? false : true, 'remaining_pages' => $remaining_pages, 'total_items_in_filter' => $pager->getNumResults(), 'total_items_shown' => $pager->getLastIndice(), 'total_items' => RokGallery_Model_FileTable::getTotalFileCount(), 'html' => $html)); } catch (Exception $e) { throw $e; } return $result; }
function display($tpl = null) { JHTML::_('behavior.mootools'); JHTML::_('behavior.keepalive'); $option = JRequest::getCmd('option'); $document =& JFactory::getDocument(); $session =& JFactory::getSession(); $model = new RokGallery_Admin_MainPage(); $current_page = 1; $items_per_page = RokGallery_Config::getOption(RokGallery_Config::OPTION_ADMIN_ITEMS_PER_PAGE, 6); $items_per_row = RokGallery_Config::getOption(RokGallery_Config::OPTION_ADMIN_ITEMS_PER_ROW, 3); $files = $model->getFiles($current_page, $items_per_page * 2); $pager = $model->getPager($current_page, $items_per_page * 2); $next_page = $current_page == 1 ? 3 : $current_page + 1; $next_page = $current_page == $pager->getLastPage() ? false : $next_page; $more_pages = $next_page == false ? "false" : "true"; $application = JURI::root(true) . '/administrator/components/' . $option . '/assets/application/'; $images = JURI::root(true) . '/administrator/components/' . $option . '/assets/images/'; $url = JURI::root(true) . '/administrator/index.php?option=com_rokgallery&task=ajax&format=raw'; // debug: &XDEBUG_SESSION_START=default $document->addScriptDeclaration('var RokGallerySettings = { application: "' . $application . '", images: "' . $images . '", next_page: "' . $next_page . '", last_page: "' . $pager->getLastPage() . '", more_pages: ' . $more_pages . ', items_per_page: "' . $items_per_page . '", total_items: ' . $pager->getNumResults() . ', url: "' . $url . '", token: "' . JUtility::getToken() . '", session: { name: "' . $session->getName() . '", id: "' . $session->getId() . '" }, order: ["order-created_at", "order-desc"] };'); $document->addStyleSheet('components/' . $option . '/assets/styles/master.css'); if (RokCommon_Browser::getShortName() == 'ie8') { $document->addStyleSheet('components/' . $option . '/assets/styles/internet-explorer-8.css'); } $document->addScript('components/' . $option . '/assets/application/Common.js'); $document->addScript('components/' . $option . '/assets/application/RokGallery.js'); $document->addScript('components/' . $option . '/assets/application/RokGallery.Filters.js'); $document->addScript('components/' . $option . '/assets/application/RokGallery.Blocks.js'); $document->addScript('components/' . $option . '/assets/application/RokGallery.FileSettings.js'); $document->addScript('components/' . $option . '/assets/application/RokGallery.Edit.js'); $document->addScript('components/' . $option . '/assets/application/MainPage.js'); $document->addScript('components/' . $option . '/assets/application/Tags.js'); $document->addScript('components/' . $option . '/assets/application/Tags.Slice.js'); $document->addScript('components/' . $option . '/assets/application/Tags.Ajax.js'); $document->addScript('components/' . $option . '/assets/application/Scrollbar.js'); $document->addScript('components/' . $option . '/assets/application/Popup.js'); $document->addScript('components/' . $option . '/assets/application/Progress.js'); $document->addScript('components/' . $option . '/assets/application/Job.js'); $document->addScript('components/' . $option . '/assets/application/JobsManager.js'); $document->addScript('components/' . $option . '/assets/application/MassTags.js'); $document->addScript('components/' . $option . '/assets/application/GalleriesManager.js'); $document->addScript('components/' . $option . '/assets/application/Swiff.Uploader.js'); $document->addScript('components/' . $option . '/assets/application/Uploader.js'); $document->addScript('components/' . $option . '/assets/application/Rubberband.js'); $document->addScript('components/' . $option . '/assets/application/Marquee.js'); $document->addScript('components/' . $option . '/assets/application/Marquee.Crop.js'); $galleries = RokGallery_Model_GalleryTable::getAll(); if ($galleries === false) { $galleries = array(); } $this->assign('total_items_in_filter', $pager->getNumResults()); $this->assign('items_to_be_rendered', $pager->getResultsInPage()); $this->assign('next_page', $next_page); $this->assign('items_per_page', $items_per_page); $this->assign('items_per_row', $items_per_row); $this->assign('currently_shown_items', $pager->getLastIndice()); $this->assign('totalFilesCount', $pager->getNumResults()); $this->assignRef('files', $files); $this->assignRef('galleries', $galleries); parent::display($tpl); }