Dotclear 2.24
Loading...
Searching...
No Matches
dcModules Class Reference
Inheritance diagram for dcModules:
dcPlugins dcThemes

Public Member Functions

 checkDependencies ()
 
 disableDepModules (string $redirect_url)
 
 safeMode ()
 
 loadModules (string $path, ?string $ns=null, ?string $lang=null)
 
 requireDefine (string $dir, string $id)
 
 registerModule (string $name, string $desc, string $author, string $version, $properties=[])
 
 resetModulesList ()
 
 installModules ()
 
 installModule (string $id, string &$msg)
 
 deleteModule (string $id, bool $disabled=false)
 
 deactivateModule (string $id)
 
 activateModule (string $id)
 
 cloneModule (string $id)
 
 loadModuleL10N (string $id, ?string $lang, string $file)
 
 loadModuleL10Nresources (string $id, ?string $lang)
 
 getModules (?string $id=null)
 
 getAnyModules (?string $id=null)
 
 moduleExists (string $id)
 
 getDisabledModules ()
 
 getHardDisabledModules ()
 
 getSoftDisabledModules ()
 
 moduleRoot (string $id)
 
 moduleInfo (string $id, string $info)
 
 loadNsFiles (?string $ns=null)
 
 loadNsFile (string $id, ?string $ns=null)
 
 getErrors ()
 

Static Public Member Functions

static installPackage (string $zip_file, dcModules &$modules)
 

Data Fields

const PACKAGE_INSTALLED = 1
 
const PACKAGE_UPDATED = 2
 
const DEFAULT_PRIORITY = 1000
 
const MODULE_FILE_INSTALL = '_install.php'
 
const MODULE_FILE_INIT = '_init.php'
 
const MODULE_FILE_DEFINE = '_define.php'
 
const MODULE_FILE_PREPEND = '_prepend.php'
 
const MODULE_FILE_ADMIN = '_admin.php'
 
const MODULE_FILE_PUBLIC = '_public.php'
 
const MODULE_FILE_XMLRPC = '_xmlrpc.php'
 
const MODULE_FILE_DISABLED = '_disabled'
 
 $safe_mode = false
 

Protected Member Functions

 parsePathModules (string $root)
 
 loadModuleFile (string $________, bool $catch=true)
 

Protected Attributes

 $path
 
 $ns
 
 $modules = []
 
 $disabled = []
 
 $hard_disabled = []
 
 $soft_disabled = []
 
 $errors = []
 
 $modules_names = []
 
 $all_modules = []
 
 $disabled_mode = false
 
 $disabled_meta = []
 
 $to_disable = []
 
 $id
 
 $mroot
 

Static Protected Attributes

static $superglobals
 
static $_k
 
static $_n
 
static $type = null
 

Member Function Documentation

◆ checkDependencies()

checkDependencies ( )

Checks all modules dependencies

Fills in the following information in module :

  • cannot_enable : list reasons why module cannot be enabled. Not set if module can be enabled
  • cannot_disable : list reasons why module cannot be disabled. Not set if module can be disabled
  • implies : reverse dependencies

References DC_VERSION.

Referenced by loadModules().

◆ disableDepModules()

disableDepModules ( string  $redirect_url)

Checks all modules dependencies, and disable unmet dependencies Disables the dep modules.

Parameters
string$redirect_urlURL to redirect if modules are to disable
Returns
bool true if a redirection has been performed

References $message, dcPage\addWarningNotice(), deactivateModule(), and http\redirect().

◆ safeMode()

safeMode ( )

Should run in safe mode?

Returns
bool

Reimplemented in dcPlugins, and dcThemes.

References $safe_mode.

◆ parsePathModules()

parsePathModules ( string  $root)
protected

Get list of modules in a directory

Parameters
string$rootThe root modules directory to parse
Returns
array List of modules, may be an empty array

Referenced by loadModules().

◆ loadModules()

loadModules ( string  $path,
?string  $ns = null,
?string  $lang = null 
)

Loads modules. $path could be a separated list of paths (path separator depends on your OS).

$ns indicates if an additionnal file needs to be loaded on plugin load, value could be:

  • admin (loads module's _admin.php)
  • public (loads module's _public.php)
  • xmlrpc (loads module's _xmlrpc.php)

$lang indicates if we need to load a lang file on plugin loading.

Parameters
string$pathThe path
string$nsThe namespace (context as 'public', 'admin', ...)
string$langThe language

References $disabled_meta, $id, $ns, $path, $safe_mode, dcCore\app(), checkDependencies(), loadModuleFile(), loadModuleL10N(), loadModuleL10Nresources(), loadNsFile(), MODULE_FILE_DEFINE, MODULE_FILE_INIT, and parsePathModules().

◆ requireDefine()

requireDefine ( string  $dir,
string  $id 
)

Load the _define.php file of the given module

Parameters
string$dirThe dir
string$idThe module identifier

References $id, MODULE_FILE_DEFINE, and MODULE_FILE_INIT.

◆ registerModule()

registerModule ( string  $name,
string  $desc,
string  $author,
string  $version,
  $properties = [] 
)

This method registers a module in modules list. You should use this to register a new module.

$permissions is a comma separated list of permissions for your module. If $permissions is null, only super admin has access to this module.

$priority is an integer. Modules are sorted by priority and name. Lowest priority comes first.

Parameters
string$nameThe module name
string$descThe module description
string$authorThe module author
string$versionThe module version
mixed$propertiesThe properties

Reimplemented in dcPlugins, and dcThemes.

References $id, $version, dcCore\app(), DEFAULT_PRIORITY, html\escapeHTML(), moduleInfo(), and path\real().

◆ resetModulesList()

resetModulesList ( )

Reset modules list

◆ installPackage()

static installPackage ( string  $zip_file,
dcModules $modules 
)
static

Install a Package

Parameters
string$zip_fileThe zip file
dcModules$modulesThe modules
Exceptions
Exception
Returns
int

References $id, $modules, files\deltree(), files\makeDir(), MODULE_FILE_DEFINE, PACKAGE_INSTALLED, PACKAGE_UPDATED, and dcUtils\versionsCompare().

Referenced by dcStore\install().

◆ installModules()

installModules ( )

This method installs all modules having a _install file.

See also
dcModules::installModule
Returns
array

References $id, $ret, and installModule().

◆ installModule()

installModule ( string  $id,
string &  $msg 
)

This method installs module with ID $id and having a _install file. This file should throw exception on failure or true if it installs successfully.

$msg is an out parameter that handle installer message.

Parameters
string$idThe identifier
string$msgThe message
Returns
mixed

References $id, and loadModuleFile().

Referenced by installModules().

◆ deleteModule()

deleteModule ( string  $id,
bool  $disabled = false 
)

Delete a module

Parameters
string$idThe module identifier
bool$disabledIs module disabled
Exceptions
Exception

References $disabled, $id, $modules, and files\deltree().

◆ deactivateModule()

deactivateModule ( string  $id)

Deactivate a module

Parameters
string$idThe identifier
Exceptions
Exception

References $id, $modules, and $soft_disabled.

Referenced by disableDepModules().

◆ activateModule()

activateModule ( string  $id)

Activate a module

Parameters
string$idThe identifier
Exceptions
Exception

References $id.

◆ cloneModule()

cloneModule ( string  $id)

Clone a module

Parameters
string$idThe module identifier

Reimplemented in dcThemes.

◆ loadModuleL10N()

loadModuleL10N ( string  $id,
?string  $lang,
string  $file 
)

This method will search for file $file in language $lang for module $id.

$file should not have any extension.

Parameters
string$idThe module identifier
string$langThe language code
string$fileThe filename (without extension)

References $id, and l10n\set().

Referenced by loadModules().

◆ loadModuleL10Nresources()

loadModuleL10Nresources ( string  $id,
?string  $lang 
)

Loads module l10n resources.

Parameters
string$idThe module identifier
string$langThe language code

References $id, l10n\getFilePath(), and loadModuleFile().

Referenced by loadModules().

◆ getModules()

getModules ( ?string  $id = null)

Returns all modules associative array or only one module if $id is present.

Parameters
string$idThe optionnal module identifier
Returns
array The module(s).

References $id, $modules, and $soft_disabled.

◆ getAnyModules()

getAnyModules ( ?string  $id = null)

Gets all modules (whatever are their statuses) or only one module if $id is present.

Parameters
string$idThe optionnal module identifier
Returns
array The module(s).

References $all_modules, and $id.

◆ moduleExists()

moduleExists ( string  $id)

Determines if module exists.

Parameters
string$idThe module identifier
Returns
bool True if module exists, False otherwise.

References $id.

◆ getDisabledModules()

getDisabledModules ( )

Gets the disabled modules.

Returns
array The disabled modules.

References $disabled.

◆ getHardDisabledModules()

getHardDisabledModules ( )

Gets the hard disabled modules.

Returns
array The hard disabled modules.

References $hard_disabled.

◆ getSoftDisabledModules()

getSoftDisabledModules ( )

Gets the soft disabled modules (safe mode and not hard disabled).

Returns
array The soft disabled modules.

References $soft_disabled.

◆ moduleRoot()

moduleRoot ( string  $id)

Returns root path for module with ID $id.

Parameters
string$idThe module identifier
Returns
mixed

References moduleInfo().

◆ moduleInfo()

moduleInfo ( string  $id,
string  $info 
)

Returns a module information that could be:

  • root
  • name
  • desc
  • author
  • version
  • permissions
  • priority
Parameters
string$idThe module identifier
string$infoThe information
Returns
mixed

References $id.

Referenced by moduleRoot(), and registerModule().

◆ loadNsFiles()

loadNsFiles ( ?string  $ns = null)

Loads namespace $ns specific files for all modules.

Parameters
string$ns

References $ns, and loadNsFile().

◆ loadNsFile()

loadNsFile ( string  $id,
?string  $ns = null 
)

Loads namespace $ns specific file for module with ID $id

Parameters
string$idThe module identifier
string$nsNamespace name

Reimplemented in dcThemes.

References $id, $ns, and loadModuleFile().

Referenced by loadModules(), and loadNsFiles().

◆ getErrors()

getErrors ( )

Gets the errors.

Returns
array The errors.

References $errors.

◆ loadModuleFile()

loadModuleFile ( string  $________,
bool  $catch = true 
)
protected

Loads a module file.

Parameters
string$________Module filename
bool$catchShould catch output to prevent hacked/corrupted modules
Returns
mixed

References $ret.

Referenced by installModule(), loadModuleL10Nresources(), loadModules(), loadNsFile(), and dcThemes\loadNsFile().

Field Documentation

◆ PACKAGE_INSTALLED

const PACKAGE_INSTALLED = 1

Referenced by installPackage().

◆ PACKAGE_UPDATED

const PACKAGE_UPDATED = 2

Referenced by installPackage().

◆ DEFAULT_PRIORITY

const DEFAULT_PRIORITY = 1000

◆ MODULE_FILE_INSTALL

const MODULE_FILE_INSTALL = '_install.php'

◆ MODULE_FILE_INIT

const MODULE_FILE_INIT = '_init.php'

Referenced by loadModules(), and requireDefine().

◆ MODULE_FILE_DEFINE

const MODULE_FILE_DEFINE = '_define.php'

◆ MODULE_FILE_PREPEND

const MODULE_FILE_PREPEND = '_prepend.php'

◆ MODULE_FILE_ADMIN

const MODULE_FILE_ADMIN = '_admin.php'

◆ MODULE_FILE_PUBLIC

const MODULE_FILE_PUBLIC = '_public.php'

◆ MODULE_FILE_XMLRPC

const MODULE_FILE_XMLRPC = '_xmlrpc.php'

◆ MODULE_FILE_DISABLED

const MODULE_FILE_DISABLED = '_disabled'

◆ $safe_mode

$safe_mode = false

◆ $path

$path
protected

Referenced by loadModules().

◆ $ns

◆ $modules

$modules = []
protected

◆ $disabled

$disabled = []
protected

Referenced by deleteModule(), and getDisabledModules().

◆ $hard_disabled

$hard_disabled = []
protected

Referenced by getHardDisabledModules().

◆ $soft_disabled

$soft_disabled = []
protected

◆ $errors

$errors = []
protected

Referenced by getErrors().

◆ $modules_names

$modules_names = []
protected

◆ $all_modules

$all_modules = []
protected

Referenced by getAnyModules().

◆ $disabled_mode

$disabled_mode = false
protected

◆ $disabled_meta

$disabled_meta = []
protected

Referenced by loadModules().

◆ $to_disable

$to_disable = []
protected

◆ $id

◆ $mroot

$mroot
protected

◆ $superglobals

$superglobals
staticprotected
Initial value:
= [
'GLOBALS',
'_SERVER',
'_GET',
'_POST',
'_COOKIE',
'_FILES',
'_ENV',
'_REQUEST',
'_SESSION',
]

◆ $_k

$_k
staticprotected

◆ $_n

$_n
staticprotected

◆ $type

$type = null
staticprotected

The documentation for this class was generated from the following file: