module.php : first commit !
git-svn-id: https://svn.fournier38.fr/svn/ProgSVN/trunk@2064 bf3deb0d-5f1a-0410-827f-c0cc1f45334c
This commit is contained in:
78
module.php
Normal file
78
module.php
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
<?php
|
||||||
|
/** DomFramework
|
||||||
|
@package domframework
|
||||||
|
@author Dominique Fournier <dominique@fournier38.fr> */
|
||||||
|
|
||||||
|
/** Module management */
|
||||||
|
class module
|
||||||
|
{
|
||||||
|
/** The modules are not allowed if $toplevel=0
|
||||||
|
The modules can be in a module directory if $toplevel=1
|
||||||
|
The modules can be in the parent directory if $toplevel=2
|
||||||
|
The modules can be in the local directory if $toplevel=4
|
||||||
|
The values can be added to allow multiple possibilities */
|
||||||
|
public $toplevel = 0;
|
||||||
|
|
||||||
|
/** List all the available (enable or disable) modules
|
||||||
|
@return array The list of the available modules names with the path */
|
||||||
|
public function listAvailable ()
|
||||||
|
{
|
||||||
|
$list = array ();
|
||||||
|
$tmp = array ();
|
||||||
|
if ($this->toplevel%2 >= 1 )
|
||||||
|
$tmp = array_merge ($tmp, glob ("modules/*"));
|
||||||
|
if ($this->toplevel%4 >= 2 )
|
||||||
|
$tmp = array_merge ($tmp, glob ("../*"));
|
||||||
|
if ($this->toplevel%8 >= 4 )
|
||||||
|
$tmp = array_merge ($tmp, glob ("*"));
|
||||||
|
foreach ($tmp as $path)
|
||||||
|
{
|
||||||
|
$name = basename ($path);
|
||||||
|
if (! is_dir ($path)) continue;
|
||||||
|
if ($name === ".") continue;
|
||||||
|
if ($name === "..") continue;
|
||||||
|
if ($name === "cli") continue;
|
||||||
|
if ($name === "controllers") continue;
|
||||||
|
if ($name === "data") continue;
|
||||||
|
if ($name === "datas") continue;
|
||||||
|
if ($name === "locale") continue;
|
||||||
|
if ($name === "models") continue;
|
||||||
|
if ($name === "modules") continue;
|
||||||
|
if ($name === "public") continue;
|
||||||
|
if ($name === "views") continue;
|
||||||
|
$list[$name] = $path;
|
||||||
|
}
|
||||||
|
ksort ($list);
|
||||||
|
return $list;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** List all the enable modules coming from the configuration and available
|
||||||
|
in the system
|
||||||
|
@param $confModules array the list of the available modules coming from
|
||||||
|
the configuration. Can have some non available modules.
|
||||||
|
@return array the list of the available modules names with the path */
|
||||||
|
public function listEnable ($confModules)
|
||||||
|
{
|
||||||
|
$listAvailable = $this->listAvailable ();
|
||||||
|
$list = array ();
|
||||||
|
foreach ($confModules as $module)
|
||||||
|
{
|
||||||
|
if (array_key_exists ($module, $listAvailable))
|
||||||
|
$list[$module] = $listAvailable[$module];
|
||||||
|
}
|
||||||
|
ksort ($list);
|
||||||
|
return $list;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Return the name of the module translated in the provided language
|
||||||
|
The module name must be defined in the translation under the "modulename"
|
||||||
|
item
|
||||||
|
*/
|
||||||
|
public function translateName ($modulepath, $lang)
|
||||||
|
{
|
||||||
|
// TODO : Do really the function ! With the language selection, and
|
||||||
|
// searching in the directories
|
||||||
|
return basename ($modulepath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Reference in New Issue
Block a user