/** * 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); }
/** * 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); }