예제 #1
0
 public function loadActiveModules($isAdmin)
 {
     $moduleManager = LuLu::getService('modularityService');
     
     $this->activeModules = $moduleManager->getActiveModules($isAdmin);
     
     $module = $isAdmin ? 'AdminModule' : 'HomeModule';
     foreach ($this->activeModules as $m)
     {
         $moduleId = $m['id'];
         $moduleDir = $m['dir'];
         $ModuleClassName = $m['dir_class'];
         
         $this->setModule($moduleId, [
             'class' => 'source\modules\\' . $moduleDir . '\\' . $module
         ]);
         
         
         $serviceFile= LuLu::getAlias('@source').'\modules\\' .$moduleDir.'\\'.$ModuleClassName.'Service.php';
         
         if(FileHelper::exist($serviceFile))
         {
             $serviceClass = 'source\modules\\' .$moduleDir.'\\'.$ModuleClassName.'Service.php';
             $serviceInstance = new $serviceClass();
             $this->set($serviceInstance->getServiceId(), $serviceInstance);
         }
     }
 }
예제 #2
0
 public static function checkHomeThemeFile($fileName, $checkDefault = true)
 {
     $currentTheme = Resource::getHomeTheme();
     $path = LuLu::getAlias('statics') . '/themes/' . $currentTheme . $fileName . '.php';
     if (!FileHelper::exist($path) && $checkDefault) {
         $currentTheme = 'd';
         $path = LuLu::getAlias('statics') . '/themes/' . $currentTheme . $fileName . '.php';
     } else {
         return $currentTheme;
     }
     if (!FileHelper::exist($path)) {
         return false;
     }
     return $currentTheme;
 }
예제 #3
0
 private function loadAllModules()
 {
     if ($this->allModules !== null) {
         return $this->allModules;
     }
     $this->allModules = [];
     $moduleRootPath = LuLu::getAlias('@source') . '/modules';
     if ($moduleRootDir = @dir($moduleRootPath)) {
         while (($moduleFolder = $moduleRootDir->read()) !== false) {
             $currentModuleDir = $moduleRootPath . '/' . $moduleFolder;
             if (preg_match('|^\\.+$|', $moduleFolder) || !is_dir($currentModuleDir)) {
                 continue;
             }
             $moduleClassName = ucwords($moduleFolder);
             if (FileHelper::exist($currentModuleDir . '/' . $moduleClassName . 'Info.php')) {
                 $class = 'source\\modules\\' . $moduleFolder . '\\' . $moduleClassName . 'Info';
             } else {
                 continue;
             }
             $instance = null;
             try {
                 // $moduleObj = LuLu::createObject($class);
                 $instance = new $class();
                 if (empty($instance->id)) {
                     $instance->id = $moduleFolder;
                 }
                 if (empty($instance->name)) {
                     $instance->name = $moduleFolder;
                 }
             } catch (Exception $e) {
                 $instance = null;
             }
             if ($instance !== null) {
                 $has_admin = FileHelper::exist($currentModuleDir . '/admin/AdminModule.php') ? true : false;
                 $has_home = FileHelper::exist($currentModuleDir . '/home/HomeModule.php') ? true : false;
                 $this->allModules[$instance->id] = ['id' => $instance->id, 'dir' => $moduleFolder, 'dir_class' => $moduleClassName, 'class' => $class, 'instance' => $instance, 'can_install' => true, 'can_uninstall' => true, 'has_admin' => $has_admin, 'has_home' => $has_home, 'can_active_admin' => false, 'can_active_home' => false];
             }
         }
     }
     return $this->allModules;
 }
예제 #4
0
 private function executeSql($db, $file)
 {
     $file = LuLu::getAlias('@data/sql') . '/' . $file . '.sql';
     if (!FileHelper::exist($file)) {
         self::_appendLog('SQL文件:' . $file . '不存在', true);
         return false;
     }
     $tbPre = $db->tablePrefix;
     $content = @file_get_contents($file);
     $sqls = self::_splitsql($content);
     if (is_array($sqls)) {
         foreach ($sqls as $sql) {
             if (trim($sql) != '') {
                 $db->createCommand(str_replace('#@__', $tbPre, $sql))->execute();
             }
         }
     } else {
         $db->createCommand(str_replace('#@__', $tbPre, $sql))->execute();
     }
     return true;
 }