/**
  * Register the service provider.
  *
  * @return  void
  */
 public function register()
 {
     $this->app['menu.manager'] = function ($app) {
         return $manager = new Manager();
     };
     $this->app['menu'] = function ($app) {
         $options = ['language_filter' => null, 'language' => null, 'access' => \User::getAuthorisedViewLevels()];
         $options['db'] = $app->get('db');
         if ($app->has('language.filter')) {
             $options['language_filter'] = $app->get('language.filter');
             $options['language'] = $app->get('language')->getTag();
         }
         return $app['menu.manager']->menu($app['client']->name, $options);
     };
     $this->app['menu.params'] = function ($app) {
         $params = new Registry();
         $menu = $app['menu']->getActive();
         if (is_object($menu)) {
             $params->parse($menu->params);
         } else {
             if ($app->has('component')) {
                 $temp = clone $app['component']->params('com_menus');
                 $params->merge($temp);
             }
         }
         return $params;
     };
 }
 /**
  * Register the service provider.
  *
  * @return  void
  */
 public function register()
 {
     $this->app['menu.manager'] = function ($app) {
         return $manager = new Manager();
     };
     $this->app['menu'] = function ($app) {
         return $app['menu.manager']->menu($app['client']->name);
     };
     $this->app['menu.params'] = function ($app) {
         $params = new Registry();
         $menu = $app['menu']->getActive();
         if (is_object($menu)) {
             $params->parse($menu->params);
         } else {
             if ($app->has('component')) {
                 $temp = clone $app['component']->params('com_menus');
                 $params->merge($temp);
             }
         }
         return $params;
     };
 }
 /**
  * Saves an asset group
  *
  * @apiMethod POST
  * @apiUri    /courses/assetgroup/save
  * @apiParameter {
  * 		"name":        "id",
  * 		"description": "Asset group ID to edit",
  * 		"type":        "integer",
  * 		"required":    false,
  * 		"default":     null
  * }
  * @apiParameter {
  * 		"name":        "title",
  * 		"description": "Asset group title",
  * 		"type":        "string",
  * 		"required":    false,
  * 		"default":     "New asset group"
  * }
  * @apiParameter {
  * 		"name":        "state",
  * 		"description": "State of asset group",
  * 		"type":        "integer",
  * 		"required":    false,
  * 		"default":     null
  * }
  * @apiParameter {
  * 		"name":        "description",
  * 		"description": "Short description",
  * 		"type":        "string",
  * 		"required":    false,
  * 		"default":     null
  * }
  * @apiParameter {
  * 		"name":        "unit_id",
  * 		"description": "ID of parent unit",
  * 		"type":        "integer",
  * 		"required":    false,
  * 		"default":     null
  * }
  * @apiParameter {
  * 		"name":        "parent",
  * 		"description": "ID of parent asset group",
  * 		"type":        "integer",
  * 		"required":    false,
  * 		"default":     null
  * }
  * @apiParameter {
  * 		"name":        "params",
  * 		"description": "Parameters related to the asset group",
  * 		"type":        "array",
  * 		"required":    false,
  * 		"default":     null
  * }
  * @return    void
  */
 public function saveTask()
 {
     // Require authentication and authorization
     $this->authorizeOrFail();
     // Check for an incoming 'id'
     $id = Request::getInt('id', null);
     // Create an asset group instance
     $assetGroup = new Assetgroup($id);
     // Check to make sure we have an asset group object
     if (!is_object($assetGroup)) {
         App::abort(500, 'Failed to create an asset group object');
     }
     // We'll always save the title again, even if it's just to the same thing
     $title = $assetGroup->get('title');
     $title = !empty($title) ? $title : 'New asset group';
     // Set our variables
     $assetGroup->set('title', Request::getString('title', $title));
     $assetGroup->set('alias', strtolower(str_replace(' ', '', $assetGroup->get('title'))));
     // Save the asset group
     if (!$assetGroup->get('title')) {
         App::abort(400, 'No title provided');
     }
     $state = Request::getInt('state', null);
     if (!is_null($state)) {
         $assetGroup->set('state', $state);
     }
     $assetGroup->set('description', Request::getVar('description', $assetGroup->get('description')));
     // When creating a new asset group
     if (!$id) {
         $assetGroup->set('unit_id', Request::getInt('unit_id', 0));
         $assetGroup->set('parent', Request::getInt('parent', 0));
         $assetGroup->set('created', Date::toSql());
         $assetGroup->set('created_by', App::get('authn')['user_id']);
     }
     if (($params = Request::getVar('params', false, 'post')) || !$id) {
         $p = new Registry('');
         $db = App::get('db');
         $query = $db->getQuery(true);
         $query->select('folder AS type, element AS name, params')->from('#__extensions')->where('enabled >= 1')->where('type =' . $db->quote('plugin'))->where('state >= 0')->where('folder =' . $db->quote('courses'))->order('ordering');
         if ($plugins = $db->setQuery($query)->loadObjectList()) {
             foreach ($plugins as $plugin) {
                 $default = new Registry($plugin->params);
                 foreach ($default->toArray() as $k => $v) {
                     if (substr($k, 0, strlen('default_')) == 'default_') {
                         $p->set(substr($k, strlen('default_')), $default->get($k, $v));
                     }
                 }
             }
         }
         if ($params) {
             $p->parse($params);
         }
         $assetGroup->set('params', $p->toString());
     }
     // Save the asset group
     if (!$assetGroup->store()) {
         App::abort(500, 'Asset group save failed');
     }
     // Return message
     $this->send(['assetgroup_id' => $assetGroup->get('id'), 'assetgroup_title' => $assetGroup->get('title'), 'assetgroup_state' => (int) $assetGroup->get('state'), 'assetgroup_style' => 'display:none', 'course_id' => $this->course_id, 'offering_alias' => $this->offering_alias], $id ? 200 : 201);
 }
Example #4
0
 /**
  * Save an Import
  *
  * @param   boolean  $redirect  Redirect after save?
  * @return  void
  */
 public function saveTask($redirect = true)
 {
     // check token
     Session::checkToken();
     // Get request vars
     $import = Request::getVar('import', array());
     $hooks = Request::getVar('hooks', array());
     $params = Request::getVar('params', array());
     $fields = Request::getVar('mapping', array());
     $file = Request::getVar('file', array(), 'FILES');
     // Create import model object
     $model = Import::oneOrNew(isset($import['id']) ? $import['id'] : 0);
     // Set our hooks
     $model->set('hooks', json_encode($hooks));
     // Set our fields
     $model->set('fields', json_encode($fields));
     // Load current params
     $iparams = new Registry($model->get('params'));
     // Bind incoming params
     $iparams->parse($params);
     // Set params on import object
     $model->set('params', $iparams->toString());
     // Bind input to model
     if (!$model->set($import)) {
         $this->setError($model->getError());
         return $this->editTask($model);
     }
     // Is this a new import?
     $isNew = false;
     if ($model->isNew()) {
         $isNew = true;
         // Set the created by/at
         $model->set('created_by', User::get('id'));
         $model->set('created_at', Date::toSql());
     }
     // Attempt to save
     if (!$model->save()) {
         $this->setError($model->getError());
         return $this->editTask();
     }
     // create folder for files
     if (!$this->_createImportFilespace($model)) {
         return $this->editTask();
     }
     // If we have a file
     if (is_array($file) && !empty($file) && $file['size'] > 0 && $file['error'] == 0) {
         move_uploaded_file($file['tmp_name'], $model->fileSpacePath() . DS . $file['name']);
         $model->set('file', $file['name']);
         $model->set('fields', '');
         // Force into the field map view
         $isNew = true;
     }
     // Do we have a data file?
     if ($model->get('file')) {
         // get record count
         $importImporter = new Importer();
         $model->set('count', $importImporter->count($model));
     }
     // Save again with import count
     if (!$model->save()) {
         $this->setError($model->getError());
         return $this->editTask($model);
     }
     Notify::success(Lang::txt('COM_MEMBERS_IMPORT_CREATED'));
     // Inform user & redirect
     if ($redirect) {
         if ($isNew) {
             $this->view->set('import', $model)->setLayout('fields')->display();
             return;
         }
         return $this->cancelTask();
     }
     $this->editTask($model);
 }