%PDF- %PDF-
Direktori : /home/lightco1/www/plugins/system/jsnframework/libraries/joomlashine/base/compat/ |
Current File : /home/lightco1/www/plugins/system/jsnframework/libraries/joomlashine/base/compat/controller_j30.php |
<?php /** * @version $Id$ * @package JSN_Framework * @author JoomlaShine Team <support@joomlashine.com> * @copyright Copyright (C) 2012 JoomlaShine.com. All Rights Reserved. * @license GNU/GPL v2 or later http://www.gnu.org/licenses/gpl-2.0.html * * Websites: http://www.joomlashine.com * Technical Support: Feedback - http://www.joomlashine.com/contact-us/get-support.html */ // No direct access to this file defined('_JEXEC') or die('Restricted access'); /** * Base controller class for use across JSN libraries and extensions. * * Below is a sample use of <b>JSNBaseController</b> class: * * <code>class JSNConfigController extends JSNBaseController * { * function save() * { * // Get input object * $input = JFactory::getApplication()->input; * * // Validate request * $this->initializeRequest($input); * * // Initialize variables * $this->model = $this->getModel( * $input->getCmd('controller') ? $input->getCmd('controller') : $input->getCmd('view') * ); * $config = $this->model->getForm(); * $data = $input->getVar('jsnconfig', array(), 'post', 'array'); * * // Attempt to save the configuration * $return = true; * * try * { * $this->model->save($data); * } * catch (Exception $e) * { * $return = $e; * } * * // Complete request * $this->finalizeRequest($return, $input); * } * }</code> * * @method initializeRequest(&$input, $checkToken) Validate form token and user permission. * @method finalizeRequest($return, &$input) Redirect based on the value returned by apprpriate model method. * * @package JSN_Framework * @since 1.0.0 */ class JSNBaseController extends JControllerLegacy { /** * Method for hiding a message. * * @return void */ public function hideMsg() { jexit(JSNUtilsMessage::hideMessage(JFactory::getApplication()->input->getInt('msgId'))); } /** * Validate task request. * * @param object &$input JInput object. * @param booealn $checkToken Check token by default, set to false to disable token checking. * * @return void */ protected function initializeRequest(&$input, $checkToken = true) { // Validate token if ($checkToken AND ! JSession::checkToken()) { jexit(JText::_('JINVALID_TOKEN')); } // Validate user permission if ( ! JFactory::getUser()->authorise('core.admin', $input->getCmd('option'))) { if ($input->getInt('ajax') == 1) { jexit(JText::_('JERROR_ALERTNOAUTHOR')); } else { JFactory::getApplication()->redirect(JRoute::_('index.php'), JText::_('JERROR_ALERTNOAUTHOR'), 'error'); } } } /** * Finalize task request. * * @param mixed $return Model execution results. * @param object &$input JInput object. * @param string $successMsg Success message. * @param string $failMsg Fail message. * * @return void */ protected function finalizeRequest($return, &$input, $successMsg = 'JSN_EXTFW_CONFIG_SAVE_SUCCESS', $failMsg = 'JERROR_SAVE_FAILED') { $app = JFactory::getApplication(); // Check the return value if ($return instanceof Exception) { if ($input->getInt('ajax') == 1) { jexit(JText::_($return->getMessage())); } else { // Save failed, go back to the screen and display a notice. $app->enqueueMessage(JText::_($return->getMessage()), 'error'); $app->redirect(JRoute::_('index.php?option=' . $input->getCmd('option') . '&view=' . $input->getCmd('view'))); } } // Save successed, complete the task if ($input->getInt('ajax') == 1) { jexit(JText::_($successMsg)); } else { $app->enqueueMessage(JText::_($successMsg)); $app->redirect(JRoute::_('index.php?option=' . $input->getCmd('option') . '&view=' . $input->getCmd('view'))); } } }