Commit 782e0175250990b32a74dfc781b8dd43edef1629

Authored by nbm
1 parent 1dce675a

Add some accessors to allow easy use of actions via templates.

Add getAllDocumentActions and getDocumentActionsByNames to help workflow
mappings to actions.


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@3728 c91229c3-7414-0410-bfa2-8a42b809f60b
lib/actions/documentaction.inc.php
@@ -66,19 +66,31 @@ class KTDocumentAction { @@ -66,19 +66,31 @@ class KTDocumentAction {
66 return $this->customiseInfo($aInfo); 66 return $this->customiseInfo($aInfo);
67 } 67 }
68 68
  69 + function getName() {
  70 + return $this->sName;
  71 + }
  72 +
  73 + function getDisplayName() {
  74 + return $this->sDisplayName;
  75 + }
  76 +
  77 + function getDescription() {
  78 + return $this->sDescription;
  79 + }
  80 +
69 function customiseInfo($aInfo) { 81 function customiseInfo($aInfo) {
70 return $aInfo; 82 return $aInfo;
71 } 83 }
72 } 84 }
73 85
74 class KTDocumentActionUtil { 86 class KTDocumentActionUtil {
75 - function getDocumentActions() { 87 + function getDocumentActionInfo() {
76 $oRegistry =& KTActionRegistry::getSingleton(); 88 $oRegistry =& KTActionRegistry::getSingleton();
77 return $oRegistry->getActions('documentaction'); 89 return $oRegistry->getActions('documentaction');
78 } 90 }
79 function &getDocumentActionsForDocument($oDocument, $oUser) { 91 function &getDocumentActionsForDocument($oDocument, $oUser) {
80 $aObjects = array(); 92 $aObjects = array();
81 - foreach (KTDocumentActionUtil::getDocumentActions() as $aAction) { 93 + foreach (KTDocumentActionUtil::getDocumentActionInfo() as $aAction) {
82 list($sClassName, $sPath) = $aAction; 94 list($sClassName, $sPath) = $aAction;
83 if (!empty($sPath)) { 95 if (!empty($sPath)) {
84 // require_once(KT_DIR . 96 // require_once(KT_DIR .
@@ -88,6 +100,39 @@ class KTDocumentActionUtil { @@ -88,6 +100,39 @@ class KTDocumentActionUtil {
88 } 100 }
89 return $aObjects; 101 return $aObjects;
90 } 102 }
  103 +
  104 + function getAllDocumentActions() {
  105 + $aObjects = array();
  106 + $oDocument = null;
  107 + $oUser = null;
  108 + foreach (KTDocumentActionUtil::getDocumentActionInfo() as $aAction) {
  109 + list($sClassName, $sPath, $sName) = $aAction;
  110 + if (!empty($sPath)) {
  111 + // require_once(KT_DIR .
  112 + // Or something...
  113 + }
  114 + $aObjects[] =& new $sClassName($oDocument, $oUser);
  115 + }
  116 + return $aObjects;
  117 + }
  118 +
  119 + function getDocumentActionsByNames($aNames) {
  120 + $aObjects = array();
  121 + $oDocument = null;
  122 + $oUser = null;
  123 + foreach (KTDocumentActionUtil::getDocumentActionInfo() as $aAction) {
  124 + list($sClassName, $sPath, $sName) = $aAction;
  125 + if (!in_array($sName, $aNames)) {
  126 + continue;
  127 + }
  128 + if (!empty($sPath)) {
  129 + // require_once(KT_DIR .
  130 + // Or something...
  131 + }
  132 + $aObjects[] =& new $sClassName($oDocument, $oUser);
  133 + }
  134 + return $aObjects;
  135 + }
91 } 136 }
92 137
93 class KTBuiltInDocumentAction extends KTDocumentAction { 138 class KTBuiltInDocumentAction extends KTDocumentAction {