Exemple #1
0
 /**
  * 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);
    }