seeddms-code/inc/inc.Extension.php

58 lines
1.8 KiB
PHP
Raw Normal View History

2013-05-02 10:11:03 +00:00
<?php
/**
* Initialize extensions
*
* @category DMS
* @package SeedDMS
* @license GPL 2
* @version @version@
* @author Markus Westphal, Malcolm Cowe, Uwe Steinmann <uwe@steinmann.cx>
* @copyright Copyright (C) 2013 Uwe Steinmann
* @version Release: @package_version@
*/
require "inc.ClassExtensionMgr.php";
require_once "inc.ClassExtBase.php";
require_once "inc.Version.php";
require_once "inc.Utils.php";
2013-05-02 10:11:03 +00:00
2018-03-21 12:38:00 +00:00
$extMgr = new SeedDMS_Extension_Mgr($settings->_rootDir."/ext", $settings->_cacheDir, $settings->_repositoryUrl);
2018-03-13 13:38:49 +00:00
$EXT_CONF = $extMgr->getExtensionConfiguration();
2013-05-02 10:11:03 +00:00
$version = new SeedDMS_Version;
2013-05-02 10:11:03 +00:00
foreach($EXT_CONF as $extname=>$extconf) {
if(!isset($extconf['disable']) || $extconf['disable'] == false) {
/* check for requirements */
if(!empty($extconf['constraints']['depends']['seeddms'])) {
$t = explode('-', $extconf['constraints']['depends']['seeddms'], 2);
2018-03-13 13:38:49 +00:00
if(SeedDMS_Extension_Mgr::cmpVersion($t[0], $version->version()) > 0 || ($t[1] && SeedDMS_Extension_Mgr::cmpVersion($t[1], $version->version()) < 0))
$extconf['disable'] = true;
}
}
if(!isset($extconf['disable']) || $extconf['disable'] == false) {
$classfile = $settings->_rootDir."/ext/".$extname."/".$extconf['class']['file'];
if(file_exists($classfile)) {
include($classfile);
$obj = new $extconf['class']['name'];
if(method_exists($obj, 'init'))
$obj->init();
}
if(isset($extconf['language']['file'])) {
$langfile = $settings->_rootDir."/ext/".$extname."/".$extconf['language']['file'];
if(file_exists($langfile)) {
unset($__lang);
include($langfile);
2018-03-13 13:38:49 +00:00
if(isset($__lang) && $__lang) {
foreach($__lang as $lang=>&$data) {
if(isset($GLOBALS['LANG'][$lang]))
$GLOBALS['LANG'][$lang] = array_merge($GLOBALS['LANG'][$lang], $data);
else
$GLOBALS['LANG'][$lang] = $data;
}
}
}
}
2013-05-02 10:11:03 +00:00
}
}