Commit 0e22c9718bb70b99ee08ce0b43f27c639506cf15

Authored by Neil Blakey-Milner
1 parent b827a23d

Make it possible for plugins to register admin categories and admin

pages


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@4155 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing 1 changed file with 35 additions and 0 deletions
lib/plugins/plugin.inc.php
... ... @@ -8,6 +8,9 @@ class KTPlugin {
8 8 var $_aTriggers = array();
9 9 var $_aActions = array();
10 10 var $_aPages = array();
  11 + var $_aAuthenticationProviders = array();
  12 + var $_aAdminCategories = array();
  13 + var $_aAdminPages = array();
11 14  
12 15 function KTPlugin($sFilename = null) {
13 16 $this->sFilename = $sFilename;
... ... @@ -42,6 +45,22 @@ class KTPlugin {
42 45 return sprintf('/plugin.php/%s/%s', $this->sNamespace, $sPath);
43 46 }
44 47  
  48 + function registerAuthenticationProvider($sClass, $sNamespace, $sFilename = null) {
  49 + $sFilename = $this->_fixFilename($sFilename);
  50 + $this->_aAuthenticationProviders[$sNamespace] = array($sClass, $sNamespace, $sFilename, $this->sNamespace);
  51 + }
  52 +
  53 +//registerLocation($sName, $sClass, $sCategory, $sTitle, $sDescription, $sDispatcherFilePath = null, $sURL = null)
  54 + function registerAdminPage($sName, $sClass, $sCategory, $sTitle, $sDescription, $sFilename) {
  55 + $sFullname = $sCategory . '/' . $sName;
  56 + $sFilename = $this->_fixFilename($sFilename);
  57 + $this->_aAdminPages[$sFullname] = array($sName, $sClass, $sCategory, $sTitle, $sDescription, $sFilename, null, $this->sNamespace);
  58 + }
  59 +
  60 + function registerAdminCategories($sPath, $sName, $sDescription) {
  61 + $this->_aAdminCategories[$sPath] = array($sPath, $sName, $sDescription);
  62 + }
  63 +
45 64 function _fixFilename($sFilename) {
46 65 if (empty($sFilename)) {
47 66 $sFilename = $this->sFilename;
... ... @@ -59,11 +78,15 @@ class KTPlugin {
59 78 require_once(KT_LIB_DIR . '/actions/portletregistry.inc.php');
60 79 require_once(KT_LIB_DIR . '/triggers/triggerregistry.inc.php');
61 80 require_once(KT_LIB_DIR . '/plugins/pageregistry.inc.php');
  81 + require_once(KT_LIB_DIR . '/authentication/authenticationproviderregistry.inc.php');
  82 + require_once(KT_LIB_DIR . "/plugins/KTAdminNavigation.php");
62 83  
63 84 $oPRegistry =& KTPortletRegistry::getSingleton();
64 85 $oTRegistry =& KTTriggerRegistry::getSingleton();
65 86 $oARegistry =& KTActionRegistry::getSingleton();
66 87 $oPageRegistry =& KTPageRegistry::getSingleton();
  88 + $oAPRegistry =& KTAuthenticationProviderRegistry::getSingleton();
  89 + $oAdminRegistry =& KTAdminNavigationRegistry::getSingleton();
67 90  
68 91 foreach ($this->_aPortlets as $k => $v) {
69 92 call_user_func_array(array(&$oPRegistry, 'registerPortlet'), $v);
... ... @@ -80,6 +103,18 @@ class KTPlugin {
80 103 foreach ($this->_aPages as $k => $v) {
81 104 call_user_func_array(array(&$oPageRegistry, 'registerPage'), $v);
82 105 }
  106 +
  107 + foreach ($this->_aAuthenticationProviders as $k => $v) {
  108 + call_user_func_array(array(&$oAPRegistry, 'registerAuthenticationProvider'), $v);
  109 + }
  110 +
  111 + foreach ($this->_aAdminCategories as $k => $v) {
  112 + call_user_func_array(array(&$oAdminRegistry, 'registerCategory'), $v);
  113 + }
  114 +
  115 + foreach ($this->_aAdminPages as $k => $v) {
  116 + call_user_func_array(array(&$oAdminRegistry, 'registerLocation'), $v);
  117 + }
83 118 }
84 119 }
85 120  
... ...