コード例 #1
0
ファイル: ExtensionsController.php プロジェクト: noikiy/PD
 public function uninstallAction()
 {
     $request = $this->getRequest();
     $extensions = array();
     $files = glob(dirname(__FILE__) . '/Extensions/*.php');
     if ($files) {
         foreach ($files as $file) {
             if (preg_match('/^([\\w]{1,})Controller$/i', basename($file, '.php'), $match)) {
                 $extensions[] = mb_strtolower($match[1], 'utf-8');
             }
         }
     }
     $extension = $request->getQuery('extension');
     if (in_array($extension, $extensions)) {
         $res = Model_Extensions::uninstall($extension);
         if ($res) {
             $module_name = JO_Front::getInstance()->formatModuleName('model_extensions_' . $extension);
             $file_model = APPLICATION_PATH . '/modules/' . $request->getModule() . '/' . JO_Front::getInstance()->classToFilename($module_name);
             if (file_exists($file_model)) {
                 if (!class_exists($module_name, false)) {
                     JO_Loader::loadFile($file_model);
                 }
                 if (method_exists($module_name, 'uninstall')) {
                     call_user_func(array($module_name, 'uninstall'));
                 }
             } else {
                 $module_name = JO_Front::getInstance()->formatControllerName('extensions_' . $extension);
                 $file_model = APPLICATION_PATH . '/modules/' . $request->getModule() . '/controllers/' . JO_Front::getInstance()->classToFilename($module_name);
                 if (file_exists($file_model)) {
                     if (!class_exists($module_name, false)) {
                         JO_Loader::loadFile($file_model);
                     }
                     if (method_exists($module_name, 'uninstall')) {
                         call_user_func(array($module_name, 'uninstall'));
                     }
                 }
             }
             $this->session->set('successfu_edite', true);
         }
     }
     $this->redirect($this->getRequest()->getBaseUrl() . $this->getRequest()->getModule() . '/extensions/');
 }