private function _install_module(CmsModule &$module_obj)
 {
     debug_buffer('install_module ' . $module_obj->GetName());
     $gCms = cmsms();
     // preserve the global.
     $db = $gCms->GetDb();
     // todo, check to make sure the module isn't already installed.
     $result = $module_obj->Install();
     if (!isset($result) || $result === FALSE) {
         // install returned nothing, or FALSE
         $query = 'DELETE FROM ' . cms_db_prefix() . 'modules WHERE module_name = ?';
         $dbr = $db->Execute($query, array($module_obj->GetName()));
         $lazyload_fe = method_exists($module_obj, 'LazyLoadFrontend') && $module_obj->LazyLoadFrontend() ? 1 : 0;
         $lazyload_admin = method_exists($module_obj, 'LazyLoadAdmin') && $module_obj->LazyLoadAdmin() ? 1 : 0;
         $query = 'INSERT INTO ' . cms_db_prefix() . 'modules 
                (module_name,version,status,admin_only,active,allow_fe_lazyload,allow_admin_lazyload)
                VALUES (?,?,?,?,?,?,?)';
         $dbr = $db->Execute($query, array($module_obj->GetName(), $module_obj->GetVersion(), 'installed', $module_obj->IsAdminOnly() == true ? 1 : 0, 1, $lazyload_fe, $lazyload_admin));
         $deps = $module_obj->GetDependencies();
         if (is_array($deps)) {
             $query = 'INSERT INTO ' . cms_db_prefix() . 'module_deps
                        (parent_module,child_module,minimum_version,create_date,modified_date)
                        VALUES (?,?,?,NOW(),NOW())';
             foreach ($deps as $depname => $depversion) {
                 if (!$depname || !$depversion) {
                     continue;
                 }
                 $dbr = $db->Execute($query, array($depname, $module_obj->GetName(), $depversion));
             }
         }
         $this->_moduleinfo[$module_obj->GetName()] = array('module_name' => $module_obj->GetName(), 'version' => $module_obj->GetVersion(), 'status' => 'installed', 'active' => 1, 'admn_only' => $module_obj->IsAdminOnly() == true ? 1 : 0, 'allow_fe_lazyload' => $module_obj->LazyLoadFrontend() == TRUE ? 1 : 0, 'allow_admin_lazyload' => $module_obj->LazyLoadAdmin() == TRUE ? 1 : 0);
         Events::SendEvent('Core', 'ModuleInstalled', array('name' => $module_obj->GetName(), 'version' => $module_obj->GetVersion()));
         audit('', $module_obj->GetName(), 'Installed version ' . $module_obj->GetVersion());
         $gCms->clear_cached_files();
         return array(TRUE, $module_obj->InstallPostMessage());
     }
     return array(FALSE, $result);
 }
Beispiel #2
0
 public function beforeControllerAction($controller, $action)
 {
     if (parent::beforeControllerAction($controller, $action)) {
         // this method is called before any module controller action is performed
         // you may place customized code here
         return true;
     } else {
         return false;
     }
 }