Example #1
0
 /**
  * @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;
 }
Example #2
0
 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);
     }
 }
Example #4
0
 /**
  * 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;
 }
Example #5
0
 /**
  * @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;
 }
Example #6
0
 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);
     }
 }
Example #7
0
 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);
     }
 }
Example #8
0
 /**
  * $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;
 }
Example #9
0
 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;
     }
 }
Example #10
0
 /**
  * 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;
 }
Example #11
0
 /**
  *
  */
 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);
     }
 }
Example #12
0
 /**
  * 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;
 }
Example #13
0
 /**
  * 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;
 }
Example #14
0
 /**
  * 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;
 }
Example #15
0
 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;
 }
Example #16
0
 /**
  * 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;
 }
Example #17
0
 /**
  * @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;
 }
Example #18
0
 /**
  * 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;
 }
Example #19
0
 /**
  * @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;
 }
Example #20
0
 /**
  * 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;
 }
Example #21
0
 /**
  * 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;
 }
Example #22
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;
 }
Example #23
0
 /**
  * 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;
     }
 }
Example #24
0
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);
}