public function prepareParams() { if (!empty($this->_params['addOn']) && empty($this->_params['serverFile'])) { $addOn = $this->_params['addOn']; $this->_params['serverFile'] = DevHelper_Generator_File::getAddOnXmlPath($addOn); } parent::prepareParams(); }
public function actionDevHelperSync() { if (DevHelper_Installer::checkAddOnVersion()) { return $this->responseNoPermission(); } /** @var XenForo_Model_AddOn $addOnModel */ $addOnModel = $this->getModelFromCache('XenForo_Model_AddOn'); $addOn = $addOnModel->getAddOnById('devHelper'); $xmlPath = DevHelper_Generator_File::getAddOnXmlPath($addOn); $addOnModel->installAddOnXmlFromFile($xmlPath, $addOn['addon_id']); return $this->responseRedirect(XenForo_ControllerResponse_Redirect::SUCCESS, XenForo_Link::buildAdminLink('index')); }
public function actionGenerateInstaller() { $addOnId = $this->_input->filterSingle('addon_id', XenForo_Input::STRING); $addOn = $this->_getAddOnOrError($addOnId); $config = $this->_getConfigModel()->loadAddOnConfig($addOn); list($className, $contents) = DevHelper_Generator_Code_Installer::generate($addOn, $config); DevHelper_Generator_File::writeClass($className, $contents); $dw = XenForo_DataWriter::create('XenForo_DataWriter_AddOn'); $dw->setExistingData($addOn); $dw->set('install_callback_class', $className); $dw->set('install_callback_method', 'install'); $dw->set('uninstall_callback_class', $className); $dw->set('uninstall_callback_method', 'uninstall'); $dw->save(); $xmlPath = DevHelper_Generator_File::getAddOnXmlPath($addOn, null, $config); $this->_getAddOnModel()->getAddOnXml($addOn)->save($xmlPath); if ($this->_input->filterSingle('run', XenForo_Input::UINT)) { call_user_func(array($className, 'install'), $dw->getMergedData(), $dw->getMergedData()); } return $this->responseRedirect(XenForo_ControllerResponse_Redirect::RESOURCE_CREATED, XenForo_Link::buildAdminLink('add-ons/data-manager', $addOn)); }