/** * Method to display module editing. * * @return bool True on success, false on failure. * * @since 3.2 */ public function execute() { // Get the application $app = $this->getApplication(); // Get the document object. $document = JFactory::getDocument(); $viewName = $this->input->getWord('view', 'modules'); $viewFormat = $document->getType(); $layoutName = $this->input->getWord('layout', 'default'); $returnUri = $this->input->get->get('return', null, 'base64'); // Construct redirect URI if (!empty($returnUri)) { $redirect = base64_decode(urldecode($returnUri)); // Don't redirect to an external URL. if (!JUri::isInternal($redirect)) { $redirect = JUri::base(); } } else { $redirect = JUri::base(); } // Access back-end com_module JLoader::register('ModulesController', JPATH_ADMINISTRATOR . '/components/com_modules/controller.php'); JLoader::register('ModulesViewModule', JPATH_ADMINISTRATOR . '/components/com_modules/views/module/view.json.php'); JLoader::register('ModulesModelModule', JPATH_ADMINISTRATOR . '/components/com_modules/models/module.php'); $displayClass = new ModulesController(); // Get the parameters of the module with Id $document->setType('json'); // Execute back-end controller if (!($serviceData = json_decode($displayClass->display(), true))) { $app->redirect($redirect); } // Reset params back after requesting from service $document->setType('html'); $app->input->set('view', $viewName); // Register the layout paths for the view $paths = new SplPriorityQueue(); $paths->insert(JPATH_COMPONENT . '/view/' . $viewName . '/tmpl', 'normal'); $viewClass = 'ConfigView' . ucfirst($viewName) . ucfirst($viewFormat); $modelClass = 'ConfigModel' . ucfirst($viewName); if (class_exists($viewClass)) { $model = new $modelClass(); // Access check. $user = JFactory::getUser(); if (!$user->authorise('module.edit.frontend', 'com_modules.module.' . $serviceData['id']) && !$user->authorise('module.edit.frontend', 'com_modules')) { $app->enqueueMessage(JText::_('JERROR_ALERTNOAUTHOR'), 'error'); $app->redirect($redirect); } // Need to add module name to the state of model $model->getState()->set('module.name', $serviceData['module']); $view = new $viewClass($model, $paths); $view->setLayout($layoutName); // Push document object into the view. $view->document = $document; // Load form and bind data $form = $model->getForm(); if ($form) { $form->bind($serviceData); } // Set form and data to the view $view->form =& $form; $view->item =& $serviceData; // Render view. echo $view->render(); } return true; }
/** * display method used to links all part of html web page * @access public * @return */ public function display() { global $oSmarty, $settings_vars, $config_urls, $js_modules_scripts, $css_modules_styles; parent::display(); self::$datas = self::getSettingModule($this->moduleName); self::$fields = self::$datas['fields']; self::$fieldsValidations = self::$datas['validation']; if (self::$datas['mode_jquery']) { self::$is_jquery = true; } //Add Module styles $oSmarty->assign('aModuleStyles', ''); //Add Module scripts $oSmarty->assign('aModuleScripts', $js_modules_scripts[$this->moduleName]); // Get data $oSmarty->assign('datas', self::$datas); $oSmarty->assign('is_jquery', self::$is_jquery); $oSmarty->assign('PATH', $config_urls['MODULE_IMG_DIR'] . $this->moduleName . "/"); // Assign template for index file $html = $oSmarty->fetch('loginForm.tpl'); return $html; }