Esempio n. 1
0
 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();
 }
Esempio n. 2
0
 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'));
 }
Esempio n. 3
0
 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));
 }