24 private $modules = array();
29 private static $installing =
false;
45 $this->context = $context;
46 $modulesRoot = $context->router->modulesPath;
49 foreach ($modules as $i)
51 $modulePath =
"{$modulesRoot}{$i->directory}/main.php";
52 if (file_exists($modulePath) && $this->loadModule($modulePath, $i))
62 $context->hookManager->loadHooks(\
Entity\ModuleHook::getModules($ids));
71 $mod = include_once($path);
74 $mod->setContext($this->context);
90 $mod = $this->loadModuleFile($path);
93 $mod->setEntity($module);
94 $this->modules[] = $mod;
105 $entity = new \Entity\Module();
106 $entity->name = $modulename;
107 $entity->directory = $modulename;
108 $entity->active =
true;
109 $module = $this->loadModuleFile($this->context->router->modulesPath.$modulename.
'/main.php');
110 if ($module ===
false)
112 $entity->name = $module->getName();
113 $entity->description = $module->getDescription();
115 $module->setEntity($entity);
116 self::$installing =
true;
117 if ($module->install() ==
false)
119 self::$installing =
false;
121 foreach ($hooks as $i)
126 self::$installing =
false;
137 $modulesRoot = $context->router->modulesPath;
139 $modules = scandir($modulesRoot, SCANDIR_SORT_NONE);
140 foreach ($modules as $i)
142 $path = $modulesRoot.$i;
143 if ($i ==
'.' || $i ==
'..' || !is_dir($path))
145 $this->loadModule($path);
156 foreach ($this->modules as $i)
158 if ($i->entity->id == $id)
168 {
return self::$installing; }
178 return $this->modules;
break;
180 if (substr($key, 0, 4) ==
"_id_")
181 return $this->getModuleFromId((
int) substr($key, 4));
182 throw new \Exception(
"Cannot access attribute {$key}");
static getModules($moduleIds)