/** * @param string $model * @param string $action * @param array $params * * @throws RokCommon_Ajax_Exception * @return string */ public static function run($model, $action, $params, $encoding = self::JSON_ENCODING) { // Set up an independent AJAX error handler set_error_handler(array('RokCommon_Ajax', 'error_handler')); set_exception_handler(array('RokCommon_Ajax', 'exception_handler')); while (@ob_end_clean()) { } // clean any pending output buffers ob_start(); // start a fresh one $result = null; try { // get a model class instance $modelInstance = self::getModel($model); if ($encoding == self::JSON_ENCODING) { $decoded_params = json_decode($params); if (null == $decoded_params && strlen($params) > 0) { throw new RokCommon_Ajax_Exception('Invalid JSON for params'); } $params = $decoded_params; } // set the result to the run $result = $modelInstance->run($action, $params); } catch (Exception $ae) { $result = new RokCommon_Ajax_Result(); $result->setAsError(); $result->setMessage($ae->getMessage()); } $encoded_result = json_encode($result); // restore normal error handling; restore_error_handler(); restore_exception_handler(); return $encoded_result; }
public function getall($params) { try { $result = new RokCommon_Ajax_Result(); $tags = array(); $query = Doctrine_Query::create()->select('ft.tag as tag')->from('RokGallery_Model_FileTags ft')->groupBy('tag')->orderBy('tag'); $file_tags = $query->execute(array(), Doctrine_Core::HYDRATE_ARRAY); $query->free(); foreach ($file_tags as $tag) { $tags[$tag['tag']] = $tag['tag']; } $query = Doctrine_Query::create()->select('st.tag as tag')->from('RokGallery_Model_SliceTags st')->groupBy('tag')->orderBy('tag'); $slice_tags = $query->execute(array(), Doctrine_Core::HYDRATE_ARRAY); $query->free(); foreach ($slice_tags as $tag) { $tags[$tag['tag']] = $tag['tag']; } $tags = array_keys($tags); sort($tags); $result->setPayload(array('tags' => $tags)); } catch (Exception $e) { throw $e; } return $result; }
/** * */ public function ajax() { $app = JFactory::getApplication(); $input = $app->input; try { $container = RokCommon_Service::getContainer(); foreach ($container['roksprocket.layouts'] as $layout) { if (isset($layout->paths) && isset($layout->ajax->dir)) { $paths = $layout->paths; $ajax_dir = $layout->ajax->dir; foreach ($paths as $priority => $path) { $ajax_path = $path . '/' . $ajax_dir; if (is_dir($ajax_path)) { RokCommon_Ajax::addModelPath($ajax_path, 'RokSprocketSiteLayoutAjaxModel', $priority); } } } } $model = $input->get('model', null, 'word'); $action = $input->get('model_action', $input->get('action', null, 'word'), 'word'); if (isset($_REQUEST['params'])) { $params = RokCommon_Ajax::smartStripSlashes($_REQUEST['params']); } echo RokCommon_Ajax::run($model, $action, $params); } catch (Exception $e) { $result = new RokCommon_Ajax_Result(); $result->setAsError(); $result->setMessage($e->getMessage()); echo json_encode($result); } }
/** * Get the basic profile info * $params object should be a json like * <code> * { * 'id': 1 * } * </code> * * @param $params * @return RokCommon_Ajax_Result */ public function get($params) { $result = new RokCommon_Ajax_Result(); try { $q = Doctrine_Query::create()->select('p.*')->from('RokGallery_Model_Profile p')->where('p.id = ?', $params->id)->orderBy('p.name'); $profile = $q->fetchOne(); $q->free(); $result->setPayload(array('profile' => $profile->toJsonableArray())); } catch (Exception $e) { throw $e; } return $result; }
/** * @param $params * { * "page":1, * "moduleid": 86 * } * * @return RokCommon_Ajax_Result */ public function getPage($params) { $result = new RokCommon_Ajax_Result(); try { $html = ''; $container = RokCommon_Service::getContainer(); /** @var $platformHelper RokSprocket_PlatformHelper */ $platformHelper = $container->roksprocket_platformhelper; $module_params = $platformHelper->getModuleParameters($params->moduleid); // add the layout classpath $layout_lib_path = $container['roksprocket.layouts.grids.library.paths']; foreach ($layout_lib_path as $lib_path) { RokCommon_ClassLoader::addPath($lib_path); } $container = RokCommon_Service::getContainer(); /** @var $platformHelper RokSprocket_PlatformHelper */ $platformHelper = $container->roksprocket_platformhelper; $items = $platformHelper->getFromCache(array('RokSprocket', 'getItemsWithParams'), array($params->moduleid, $module_params, true), $module_params, $params->moduleid); /** @var $layout RokSprocket_Layout_Grids */ $layout = $container->getService('roksprocket.layout.grids'); $layout->initialize($items, $module_params); $items = $layout->getItems(); $provider_type = $module_params->get('provider', 'joomla'); $sort_type = $module_params->get($provider_type . '_sort', 'automatic'); if ($sort_type == RokSprocket_ItemCollection::SORT_METHOD_RANDOM) { $items->sort($sort_type); } $limit = $module_params->get('display_limit', '∞'); if ($limit != '∞' && (int) $limit > 0) { $items = $items->trim($limit); } $offset = ($params->page - 1) * $module_params->get('grids_items_per_page', 1); $items = $items->slice($offset, $module_params->get('grids_items_per_page', 1)); $items = $platformHelper->processItemsForEvents($items, $module_params); $themecontext = $layout->getThemeContent(); ob_start(); $index = 0; foreach ($items as $item) { echo $themecontext->load('item.php', array('item' => $item, 'parameters' => $module_params, 'index' => $index)); $index++; } $html .= ob_get_clean(); $html = $platformHelper->processOutputForEvents($html, $module_params); $result->setPayload(array('html' => $html, 'page' => $params->page)); } catch (Exception $e) { throw $e; } return $result; }
public function ajax() { try { RokCommon_Ajax::addModelPath(JPATH_SITE . '/components/com_rokgallery/lib/RokGallery/Site/Ajax/Model', 'RokGallerySiteAjaxModel'); $model = JRequest::getString('model'); $action = JRequest::getString('action'); $params = JRequest::getString('params'); echo RokCommon_Ajax::run($model, $action, $params); } catch (Exception $e) { $result = new RokCommon_Ajax_Result(); $result->setAsError(); $result->setMessage($e->getMessage()); echo json_encode($result); } }
public function ajax() { try { RokCommon_Ajax::addModelPath(JPATH_SITE . '/components/com_rokgallery/lib/RokGallery/Admin/Ajax/Model', 'RokGalleryAdminAjaxModel'); $model = JRequest::getString('model'); $action = JRequest::getString('action'); if (isset($_REQUEST['params'])) { $params = $this->smartstripslashes($_REQUEST['params']); } echo RokCommon_Ajax::run($model, $action, $params); } catch (Exception $e) { $result = new RokCommon_Ajax_Result(); $result->setAsError(); $result->setMessage($e->getMessage()); echo json_encode($result); } }
/** * $params object should be a json like * <code> * { * "id": 1 // this is the slice ID displayed * } * @throws Exception|RokCommon_Ajax_Exception * @param $params * @return RokCommon_Ajax_Result */ public function remove($params) { try { $result = new RokCommon_Ajax_Result(); $slice = RokGallery_Model_SliceTable::getSingle($params->id); if ($slice === false) { throw new RokCommon_Ajax_Exception('No Slice Found'); } if (RokCommon_Session::get(self::CONTEXT_ROOT . $slice->file_id, false)) { $slice->decrementLoves(); RokCommon_Session::clear(self::CONTEXT_ROOT . $slice->file_id); } $result->setPayload(array('loves' => $slice->File->Loves->count, 'new_action' => 'love', 'text' => rc__(RokGallery_Config::getOption(RokGallery_Config::OPTION_LOVE_TEXT)))); } catch (Exception $e) { throw $e; } return $result; }
public function saveandclose($params) { $result = new RokCommon_Ajax_Result(); try { $container = RokCommon_Service::getContainer(); /** @var $platforminfo RokCommon_IPlatformInfo */ $platforminfo = $container->getService('platforminfo'); /** @var $model RokSprocket_Model_Edit */ $model = $container->getService('roksprocket.edit.model'); if (($id = $model->save($params)) === false) { throw new Exception($model->getLastError()); } $result->setPayload(array('redirect' => $platforminfo->getRootUrl() . '/wp-admin/admin.php?page=roksprocket-list')); return $result; } catch (Exception $e) { throw $e; } }
/** * Get the basic file info and supporting slices/tags * $params object should be a json like * <code> * { * } * </code> * * @param $params * @return RokCommon_Ajax_Result */ public function get($params) { $result = new RokCommon_Ajax_Result(); try { $q = Doctrine_Query::create()->select('j.*')->from('RokGallery_Model_Gallery j')->orderBy('j.name DESC'); /** @var Doctrine_Collection $galleries */ $galleries = $q->execute(array(), Doctrine_Core::HYDRATE_RECORD); $outgalleries = array(); foreach ($galleries as $gallery) { /** @var RokGallery_Model_Gallery $gallery */ $outgalleries[] = $gallery->toJsonableArray(); } $html = RokCommon_Composite::get('com_rokgallery.galleries')->load('default.php', array('galleries' => $galleries)); $result->setPayload(array('galleries' => $outgalleries, 'html' => $html, 'delete_slices' => RokGallery_Config::getOption(RokGallery_Config::OPTION_GALLERY_REMOVE_SLICES, 0))); } catch (Exception $e) { throw $e; } return $result; }
/** * */ public function ajax() { try { $app = JFactory::getApplication(); $input = $app->input; RokCommon_Ajax::addModelPath(JPATH_SITE . '/components/com_roksprocket/lib/RokSprocket/Admin/Ajax/Model', 'RokSprocketAdminAjaxModel'); $model = $input->get('model', null, 'word'); $action = $input->get('action', null, 'word'); if (isset($_REQUEST['params'])) { $params = $this->smartstripslashes($_REQUEST['params']); } echo RokCommon_Ajax::run($model, $action, $params); } catch (Exception $e) { $result = new RokCommon_Ajax_Result(); $result->setAsError(); $result->setMessage($e->getMessage()); echo json_encode($result); } }
/** * Get the full list of jobs * <code> * { * 'orberby': 'xxxx-x-x-x-x-x-x' * } * </code> * @param $params * @return RokCommon_Ajax_Result */ public function get($params) { $result = new RokCommon_Ajax_Result(); try { $q = Doctrine_Query::create()->select('j.*')->from('RokGallery_Model_Job j')->orderBy('j.created_at DESC'); $jobs = $q->execute(array(), Doctrine_Core::HYDRATE_RECORD); $outjobs = array(); foreach ($jobs as $job) { unset($job->properties); unset($job->sm); $outjobs[] = $job->toJsonableArray(); } $html = RokCommon_Composite::get('com_rokgallery.jobs')->load('default.php', array('jobs' => $jobs)); $result->setPayload(array('jobs' => $outjobs, 'html' => $html)); } catch (Exception $e) { throw $e; } return $result; }
/** * Delete the file and all associated rows (done by foreign keys) and files * $params object should be a json like * <code> * { * "pathsref": "roksprocket.providers.registered.joomla.path", * "file": "filters.xml" * } * </code> * * @param $params * * @throws #C\Exception|? * @throws RokSprocket_Exception * @return \RokCommon_Ajax_Result * * */ public function getFilters($params) { /* After everything fine, i'll handle via js and domready the call to filters ajax model Something along these lines: model: 'Filters', action: 'getData', params: JSON.encoded( [{ id1: {pathrefs: .., file: ..} }], [{ id2: {pathrefs: .., file: ..} }], [{ id3: {pathrefs: .., file: ..} }], ... ) */ $result = new RokCommon_Ajax_Result(); try { $container = RokCommon_Service::getContainer(); $filters = $params->filters; $output = array(); foreach ($filters as $filterid => $filter) { $filter_file = $container[$filter->pathsref] . '/' . $filter->file; if (!file_exists($filter_file)) { throw new RokSprocket_Exception(rc__('Unable to find filter file %s', $filter_file)); } $xmlfile = simplexml_load_file($filter_file); $outfilter = new RokCommon_Filter($xmlfile); $output[$filterid] = $outfilter->getJson(); } $result->setPayload(array('json' => $output)); } catch (Exception $e) { throw $e; } return $result; }
/** * create a new Job and return the Job Info * * @param $params * @return RokCommon_Ajax_Result */ public function createJob($params) { $result = new RokCommon_Ajax_Result(); $tx = RokGallery_Doctrine::getConnection()->transaction; $tx->setIsolation('REPEATABLE READ'); try { $tx->beginTransaction(); $job = new RokGallery_Model_Job(); $job->id = RokCommon_UUID::generate(); $job->type = RokGallery_Model_Job::TYPE_UPLOAD; $job->state = RokGallery_Model_Job::STATE_PENDING; $job->percent = 0; $job->save(); $result->setPayload(array('job' => $job->id)); $tx->commit(); } catch (Exception $e) { $tx->rollback(); throw $e; } return $result; }
public function save($key = null) { $ret = true; $app = JFactory::getApplication(); $input = $app->input; $task = $input->get('task', null, 'CMD'); if ($task == 'apply') { // Set up an independent AJAX error handler set_error_handler(array('RokCommon_Ajax', 'error_handler')); set_exception_handler(array('RokCommon_Ajax', 'exception_handler')); } $ret = parent::save($key); if ($task == 'apply') { $result = new RokCommon_Ajax_Result(); if (!$ret) { $errors = $app->getMessageQueue(); $result->setAsError(); foreach ($errors as $error) { $result->setMessage($error['message']); } } else { $result->setPayload(array('module_id' => $app->getUserState('com_roksprocket.module_id', 0))); $app->setUserState('com_roksprocket.module_id', null); } $encoded_result = json_encode($result); // restore normal error handling; restore_error_handler(); restore_exception_handler(); echo $encoded_result; } return true; }
/** * Publish all slices for the gallery * $params object should be a json like * <code> * { * "id": 1 * } * </code> * @param $params */ public function publish($params) { $result = new RokCommon_Ajax_Result(); $tx = RokGallery_Doctrine::getConnection()->transaction; $tx->setIsolation('REPEATABLE READ'); try { $tx->beginTransaction(); $gallery = RokGallery_Model_GalleryTable::getSingle($params->id); if ($gallery === false) { throw new RokCommon_Ajax_Exception('No gallery with id ' . $params->id); } $ret = RokGallery_Model_GalleryTable::publishSlices($params->id); $result->setPayload(array('id' => $params->id)); $tx->commit(); } catch (Exception $e) { $tx->rollback(); throw $e; } return $result; }
/** * @param $params * { * "page":1, * "moduleid": 86 * } * * @return RokCommon_Ajax_Result */ public function getPage($params) { $result = new RokCommon_Ajax_Result(); try { $html = ''; $container = RokCommon_Service::getContainer(); /** @var $platformHelper RokSprocket_PlatformHelper */ $platformHelper = $container->roksprocket_platformhelper; $module_params = $platformHelper->getModuleParameters($params->moduleid); // add the layout classpath $layout_lib_path = $container['roksprocket.layouts.mosaic.library.paths']; foreach ($layout_lib_path as $lib_path) { RokCommon_ClassLoader::addPath($lib_path); } $container = RokCommon_Service::getContainer(); /** @var $platformHelper RokSprocket_PlatformHelper */ $platformHelper = $container->roksprocket_platformhelper; $items = $platformHelper->getFromCache(array('RokSprocket', 'getItemsWithParams'), array($params->moduleid, $module_params, true), $module_params, $params->moduleid); /** @var $layout RokSprocket_Layout_Mosaic */ $layout = $container->getService('roksprocket.layout.mosaic'); $layout->initialize($items, $module_params); $items = $layout->getItems(); if (isset($params->filter) && $params->filter && $params->filter != 'all') { $filtered = new RokSprocket_ItemCollection(); foreach ($items as $item) { $tags = $item->getParam('mosaic_item_tags', ''); $tags = explode(",", $tags); foreach ($tags as $i => $tag) { $cleanName = trim($tag); $tags[$i] = str_replace(' ', '-', str_replace(array("'", '"'), '', $cleanName)); } if (in_array($params->filter, $tags)) { $filtered->addItem($item); } } $items = $filtered; } $total_items = count($items); $provider_type = $module_params->get('provider', 'joomla'); $sort_type = $module_params->get($provider_type . '_sort', 'automatic'); if ($sort_type == RokSprocket_ItemCollection::SORT_METHOD_RANDOM) { $items->sort($sort_type); } $limit = $module_params->get('display_limit', '∞'); if ($limit != '∞' && (int) $limit > 0) { $items = $items->trim($limit); } $per_page = $module_params->get('mosaic_items_per_page', 1); $offset = ($params->page - 1) * $per_page; if (isset($params->all) && $params->all) { $items = $items->slice($offset, $total_items); } else { $items = $items->slice($offset, $per_page); } $items = $platformHelper->processItemsForEvents($items, $module_params); $more = isset($params->all) && $params->all ? false : $params->page < ceil($total_items / $per_page); $themecontext = $layout->getThemeContent(); ob_start(); $index = 0; foreach ($items as $item) { echo $themecontext->load('item.php', array('item' => $item, 'parameters' => $module_params, 'index' => $index)); $index++; } $html .= ob_get_clean(); $result->setPayload(array('page' => $params->page, 'more' => $more, 'behavior' => $params->behavior, 'html' => $html)); } catch (Exception $e) { throw $e; } return $result; }
/** * Returns the preview of an article * $params object should be a json like * <code> * { * "id":"joomla-71" * } * </code> * * @param $params * * @throws Exception * @return \RokCommon_Ajax_Result */ public function getPreview($params) { $result = new RokCommon_Ajax_Result(); try { $html = ''; list($provider_type, $id) = explode('-', $params->id); $container = RokCommon_Service::getContainer(); //$provider_type = $params->provider; /** @var $provider RokSprocket_IProvider */ $provider_service = $container['roksprocket.providers.registered.' . $provider_type . '.service']; $provider = $container->{$provider_service}; if (isset($params->extras)) { $extras = new RokCommon_Registry($params->extras); $provider->setParams($extras); } $article = $provider->getArticlePreview($id); ob_start(); echo RokCommon_Composite::get('roksprocket.module.edit')->load('edit_article_preview.php', array('article' => $article)); $html .= ob_get_clean(); $result->setPayload(array('html' => $html)); } catch (Exception $e) { throw $e; } return $result; }
/** * @param $params * { * "page":1, * "moduleid": 86 * } * * @return RokCommon_Ajax_Result */ public function getPage($params) { $result = new RokCommon_Ajax_Result(); try { $html = ''; $container = RokCommon_Service::getContainer(); /** @var $platformHelper RokSprocket_PlatformHelper */ $platformHelper = $container->roksprocket_platformhelper; $module_params = $platformHelper->getModuleParameters($params->moduleid); // add the layout classpath $layout_lib_path = $container['roksprocket.layouts.mosaic.library.paths']; foreach ($layout_lib_path as $lib_path) { RokCommon_ClassLoader::addPath($lib_path); } $container = RokCommon_Service::getContainer(); /** @var $platformHelper RokSprocket_PlatformHelper */ $platformHelper = $container->roksprocket_platformhelper; $items = $platformHelper->getFromCache(array('RokSprocket', 'getItemsWithParams'), array($params->moduleid, $module_params, true, false, $params->displayed), $module_params, $params->moduleid); /** @var $layout RokSprocket_Layout_Mosaic */ $layout = $container->getService('roksprocket.layout.mosaic'); $layout->initialize($items, $module_params); $items = $layout->getItems(); if (isset($params->filter) && $params->filter && $params->filter != 'all') { $filtered = new RokSprocket_ItemCollection(); foreach ($items as $item) { if ($this->in_arrayi($params->filter, $item->getTags())) { $filtered->addItem($item); } } $items = $filtered; } $total_items = count($items); $limit = $module_params->get('display_limit', '∞'); $per_page = $module_params->get('mosaic_items_per_page', 1); $displayed_items = isset($params->displayed) ? count($params->displayed) : 0; $new_limit = (int) $limit > (int) $displayed_items ? (int) $limit - (int) $displayed_items : 0; $original_total = $displayed_items + $total_items; //trim to allowed limit if ($limit != '∞' && (int) $new_limit > 0 && $total_items > $new_limit) { $items = $items->trim($new_limit); } //trim if showing only next page if (!isset($params->all) && count($items) > $per_page) { $items = $items->trim($per_page); } $items = $platformHelper->processItemsForEvents($items, $module_params); $more = true; if (isset($params->all) && $params->all) { //showing all $more = false; } if ($limit != '∞' && $displayed_items + count($items) >= $limit) { //limit is met $more = false; } if ($displayed_items + count($items) >= $original_total) { //all have been shown $more = false; } $provider_type = $module_params->get('provider', 'joomla'); $sort_type = $module_params->get($provider_type . '_sort', 'automatic'); if ($sort_type == RokSprocket_ItemCollection::SORT_METHOD_RANDOM) { $items->sort($sort_type); } $themecontext = $layout->getThemeContent(); ob_start(); $index = 0; $displayed = $params->displayed; foreach ($items as $item_id => &$item) { echo $themecontext->load('item.php', array('item' => $item, 'parameters' => $module_params, 'index' => $index)); array_push($displayed, (int) $item->getId()); $index++; } $html .= ob_get_clean(); $html = $platformHelper->processOutputForEvents($html, $module_params); $result->setPayload(array('page' => $params->page, 'more' => $more, 'behavior' => $params->behavior, 'displayed' => $displayed, 'html' => $html)); } catch (Exception $e) { throw $e; } return $result; }
/** * Gets all tags for a {@link RokGallery_Model_File} object * $params object should be a json like * <code> * { * 'id': 1 * } * </code> * * @param $params * @return RokCommon_Ajax_Result */ public function getTags($params) { $result = new RokCommon_Ajax_Result(); try { $id = $params->id; $query = Doctrine_Query::create()->from('RokGallery_Model_SliceTags st')->where('st.slice_id = ?', $id)->orderby('st.tag'); $tags = $query->execute(array(), Doctrine_Core::HYDRATE_ARRAY); $query->free(); if ($tags === false) { throw new RokCommon_Ajax_Exception('Unable to find tags for slice'); } $payload = array(); foreach ($tags as $tag) { $payload[] = $tag['tag']; } $result->setPayload(array('tags' => $payload)); } catch (Exception $e) { throw $e; } return $result; }
/** * Gets all tags for a {@link RokGallery_Model_File} object * $params object should be a json like * <code> * { * 'id': 1 * } * </code> * * @param $params * @return RokCommon_Ajax_Result */ public function getTags($params) { $result = new RokCommon_Ajax_Result(); try { $id = $params->id; $query = Doctrine_Query::create()->from('RokGallery_Model_FileTags ft')->where('ft.file_id = ?', $id)->orderby('ft.tag'); $tags = $query->execute(array(), Doctrine_Core::HYDRATE_ARRAY); if ($tags === false) { throw new RokCommon_Ajax_Exception(rc__('ROKGALLERY_UNABLE_TO_FIND_TAGS_FOR_FILE')); } $payload = array(); foreach ($tags as $tag) { $payload[] = $tag['tag']; } $result->setPayload(array('tags' => $payload)); } catch (Exception $e) { throw $e; } return $result; }
/** * 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; }
/** * resume a paused job * $params object should be a json like * <code> * { * 'id': 'xxxx-x-x-x-x-x-x' * } * </code> * * @param $params * @return RokCommon_Ajax_Result */ public function resume($params) { $result = new RokCommon_Ajax_Result(); try { $job = RokGallery_Job::get($params->id); if ($job === false) { throw new RokCommon_Ajax_Exception(rc__('ROKGALLERY_UNABLE_TO_FIND_JOB_ID_N', $params->id)); } $result->setMessage(rc__('ROKGALLERY_STARTING_N_JOB', ucfirst($job->getType()))); $this->sendDisconnectingReturn($result); $job->Resume('Resuming Processing'); $job->process(); die; } catch (Exception $e) { throw $e; } }
jimport('joomla.utilities.date'); jimport('joomla.utilities.utility'); jimport('joomla.event.dispatcher'); jimport('joomla.utilities.arrayhelper'); jimport('joomla.user.user'); //It's an application, so let's get the application helper. jimport('joomla.application.helper'); $app = JFactory::getApplication('administrator'); $app->initialise(); // no direct access defined('_JEXEC') or die('Restricted access'); require_once dirname(__FILE__) . '/lib/include.php'; $container = RokUpdater_ServiceProvider::getInstance(); /** @var RokUpdater_Ajax $ajax_handler */ $ajax_handler = $container->ajax_handler; $input = $app->input; try { $model = $input->get('ajax_model', null, 'word'); if (null == $model) { throw new RokUpdater_Exception('No Ajax Model passed.'); } $results = $ajax_handler->run($model); if ($results !== false) { echo $results; } } catch (Exception $e) { $result = new RokCommon_Ajax_Result(); $result->setAsError(); $result->setMessage($e->getMessage()); echo json_encode($result); }