SloodlePluginManager.html 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398
  1. <?xml version="1.0" encoding="iso-8859-1"?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <!-- template designed by Marco Von Ballmoos -->
  6. <title>Docs For Class SloodlePluginManager</title>
  7. <link rel="stylesheet" href="../media/stylesheet.css" />
  8. <script src="../media/lib/classTree.js"></script>
  9. <script language="javascript" type="text/javascript">
  10. var imgPlus = new Image();
  11. var imgMinus = new Image();
  12. imgPlus.src = "../media/images/plus.png";
  13. imgMinus.src = "../media/images/minus.png";
  14. function showNode(Node){
  15. switch(navigator.family){
  16. case 'nn4':
  17. // Nav 4.x code fork...
  18. var oTable = document.layers["span" + Node];
  19. var oImg = document.layers["img" + Node];
  20. break;
  21. case 'ie4':
  22. // IE 4/5 code fork...
  23. var oTable = document.all["span" + Node];
  24. var oImg = document.all["img" + Node];
  25. break;
  26. case 'gecko':
  27. // Standards Compliant code fork...
  28. var oTable = document.getElementById("span" + Node);
  29. var oImg = document.getElementById("img" + Node);
  30. break;
  31. }
  32. oImg.src = imgMinus.src;
  33. oTable.style.display = "block";
  34. }
  35. function hideNode(Node){
  36. switch(navigator.family){
  37. case 'nn4':
  38. // Nav 4.x code fork...
  39. var oTable = document.layers["span" + Node];
  40. var oImg = document.layers["img" + Node];
  41. break;
  42. case 'ie4':
  43. // IE 4/5 code fork...
  44. var oTable = document.all["span" + Node];
  45. var oImg = document.all["img" + Node];
  46. break;
  47. case 'gecko':
  48. // Standards Compliant code fork...
  49. var oTable = document.getElementById("span" + Node);
  50. var oImg = document.getElementById("img" + Node);
  51. break;
  52. }
  53. oImg.src = imgPlus.src;
  54. oTable.style.display = "none";
  55. }
  56. function nodeIsVisible(Node){
  57. switch(navigator.family){
  58. case 'nn4':
  59. // Nav 4.x code fork...
  60. var oTable = document.layers["span" + Node];
  61. break;
  62. case 'ie4':
  63. // IE 4/5 code fork...
  64. var oTable = document.all["span" + Node];
  65. break;
  66. case 'gecko':
  67. // Standards Compliant code fork...
  68. var oTable = document.getElementById("span" + Node);
  69. break;
  70. }
  71. return (oTable && oTable.style.display == "block");
  72. }
  73. function toggleNodeVisibility(Node){
  74. if (nodeIsVisible(Node)){
  75. hideNode(Node);
  76. }else{
  77. showNode(Node);
  78. }
  79. }
  80. </script>
  81. </head>
  82. <body>
  83. <div class="page-body">
  84. <h2 class="class-name"><img src="../media/images/Class_logo.png"
  85. alt=" Class"
  86. title=" Class"
  87. style="vertical-align: middle"> SloodlePluginManager</h2>
  88. <a name="sec-description"></a>
  89. <div class="info-box">
  90. <div class="info-box-title">Description</div>
  91. <div class="nav-bar">
  92. <span class="disabled">Description</span> |
  93. <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
  94. | <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
  95. </div>
  96. <div class="info-box-body">
  97. <!-- ========== Info from phpDoc block ========= -->
  98. <p class="short-description">A class to load SLOODLE plugins, and provide a means to access them.</p>
  99. <p class="notes">
  100. Located in <a class="field" href="_lib---plugins.php.html">/lib/plugins.php</a> (line <span class="field"><a href="../__filesource/fsource_sloodle__libplugins.php.html#a25">25</a></span>)
  101. </p>
  102. <pre></pre>
  103. </div>
  104. </div>
  105. <a name="sec-var-summary"></a>
  106. <div class="info-box">
  107. <div class="info-box-title">Variable Summary</span></div>
  108. <div class="nav-bar">
  109. <a href="#sec-description">Description</a> |
  110. <span class="disabled">Vars</span> (<a href="#sec-vars">details</a>)
  111. |
  112. <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
  113. </div>
  114. <div class="info-box-body">
  115. <div class="var-summary">
  116. <div class="var-title">
  117. <img src="../media/images/Variable.png" alt=" " />
  118. <span class="var-type">array</span>
  119. <a href="#$plugin_cache" title="details" class="var-name">$plugin_cache</a>
  120. </div>
  121. <div class="var-title">
  122. <img src="../media/images/Variable.png" alt=" " />
  123. <span class="var-type">object</span>
  124. <a href="#$_session" title="details" class="var-name">$_session</a>
  125. </div>
  126. </div>
  127. </div>
  128. </div>
  129. <a name="sec-method-summary"></a>
  130. <div class="info-box">
  131. <div class="info-box-title">Method Summary</span></div>
  132. <div class="nav-bar">
  133. <a href="#sec-description">Description</a> |
  134. <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
  135. |
  136. <span class="disabled">Methods</span> (<a href="#sec-methods">details</a>)
  137. </div>
  138. <div class="info-box-body">
  139. <div class="method-summary">
  140. <div class="method-definition">
  141. <img src="../media/images/Constructor.png" alt=" "/>
  142. <span class="method-result">SloodlePluginManager</span>
  143. <a href="#SloodlePluginManager" title="details" class="method-name">SloodlePluginManager</a>
  144. (<span class="var-type">object</span>&nbsp;<span class="var-name">&$_session</span>)
  145. </div>
  146. <div class="method-definition">
  147. <img src="../media/images/Method.png" alt=" "/>
  148. <span class="method-result">object|bool</span>
  149. <a href="#get_plugin" title="details" class="method-name">get_plugin</a>
  150. (<span class="var-type">string</span>&nbsp;<span class="var-name">$name</span>, [<span class="var-type">bool</span>&nbsp;<span class="var-name">$forcenew</span> = <span class="var-default">false</span>])
  151. </div>
  152. <div class="method-definition">
  153. <img src="../media/images/Method.png" alt=" "/>
  154. <span class="method-result">array</span>
  155. <a href="#get_plugin_names" title="details" class="method-name">get_plugin_names</a>
  156. ([<span class="var-type">string</span>&nbsp;<span class="var-name">$type</span> = <span class="var-default">'SloodlePluginBase'</span>])
  157. </div>
  158. <div class="method-definition">
  159. <img src="../media/images/Method.png" alt=" "/>
  160. <span class="method-result">bool</span>
  161. <a href="#load_plugins" title="details" class="method-name">load_plugins</a>
  162. (<span class="var-type">string</span>&nbsp;<span class="var-name">$folder</span>)
  163. </div>
  164. </div>
  165. </div>
  166. </div>
  167. <a name="sec-vars"></a>
  168. <div class="info-box">
  169. <div class="info-box-title">Variables</div>
  170. <div class="nav-bar">
  171. <a href="#sec-description">Description</a> |
  172. <a href="#sec-var-summary">Vars</a> (<span class="disabled">details</span>)
  173. |
  174. <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
  175. </div>
  176. <div class="info-box-body">
  177. <a name="var$plugin_cache" id="$plugin_cache"><!-- --></A>
  178. <div class="oddrow">
  179. <div class="var-header">
  180. <img src="../media/images/Variable.png" />
  181. <span class="var-title">
  182. <span class="var-type">array</span>
  183. <span class="var-name">$plugin_cache</span>
  184. = <span class="var-default">array()</span> (line <span class="line-number"><a href="../__filesource/fsource_sloodle__libplugins.php.html#a44">44</a></span>)
  185. </span>
  186. </div>
  187. <!-- ========== Info from phpDoc block ========= -->
  188. <p class="short-description">Plugin instance cache.</p>
  189. <p class="description"><p>Stores the plugins which have already been created, to prevent new ones being instantiated unnecessarily. Is an associative array of plugin names to plugin objects.</p></p>
  190. <ul class="tags">
  191. <li><span class="field">access:</span> protected</li>
  192. </ul>
  193. </div>
  194. <a name="var$_session" id="$_session"><!-- --></A>
  195. <div class="evenrow">
  196. <div class="var-header">
  197. <img src="../media/images/Variable.png" />
  198. <span class="var-title">
  199. <span class="var-type">object</span>
  200. <span class="var-name">$_session</span>
  201. = <span class="var-default"> null</span> (line <span class="line-number"><a href="../__filesource/fsource_sloodle__libplugins.php.html#a35">35</a></span>)
  202. </span>
  203. </div>
  204. <!-- ========== Info from phpDoc block ========= -->
  205. <p class="short-description">Internal only - reference to the containing <a href="../sloodle/SloodleSession.html">SloodleSession</a> object.</p>
  206. <p class="description"><p>Note: always check that it is not null before use!</p></p>
  207. <ul class="tags">
  208. <li><span class="field">access:</span> protected</li>
  209. </ul>
  210. </div>
  211. </div>
  212. </div>
  213. <a name="sec-methods"></a>
  214. <div class="info-box">
  215. <div class="info-box-title">Methods</div>
  216. <div class="nav-bar">
  217. <a href="#sec-description">Description</a> |
  218. <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
  219. <a href="#sec-method-summary">Methods</a> (<span class="disabled">details</span>)
  220. </div>
  221. <div class="info-box-body">
  222. <A NAME='method_detail'></A>
  223. <a name="methodSloodlePluginManager" id="SloodlePluginManager"><!-- --></a>
  224. <div class="oddrow">
  225. <div class="method-header">
  226. <img src="../media/images/Constructor.png" />
  227. <span class="method-title">Constructor SloodlePluginManager</span> (line <span class="line-number"><a href="../__filesource/fsource_sloodle__libplugins.php.html#a54">54</a></span>)
  228. </div>
  229. <!-- ========== Info from phpDoc block ========= -->
  230. <p class="short-description">Class constructor.</p>
  231. <ul class="tags">
  232. <li><span class="field">access:</span> public</li>
  233. </ul>
  234. <div class="method-signature">
  235. <span class="method-result">SloodlePluginManager</span>
  236. <span class="method-name">
  237. SloodlePluginManager
  238. </span>
  239. (<span class="var-type">object</span>&nbsp;<span class="var-name">&$_session</span>)
  240. </div>
  241. <ul class="parameters">
  242. <li>
  243. <span class="var-type">object</span>
  244. <span class="var-name">&$_session</span><span class="var-description">: Reference to the containing <a href="../sloodle/SloodleSession.html">SloodleSession</a> object, if available.</span> </li>
  245. </ul>
  246. </div>
  247. <a name="methodget_plugin" id="get_plugin"><!-- --></a>
  248. <div class="evenrow">
  249. <div class="method-header">
  250. <img src="../media/images/Method.png" />
  251. <span class="method-title">get_plugin</span> (line <span class="line-number"><a href="../__filesource/fsource_sloodle__libplugins.php.html#a128">128</a></span>)
  252. </div>
  253. <!-- ========== Info from phpDoc block ========= -->
  254. <p class="short-description">Gets an instance of the specified plugin type.</p>
  255. <p class="description"><p>This only works if the plugin has been loaded, and if it is derived from SloodlePluginBase.</p></p>
  256. <ul class="tags">
  257. <li><span class="field">return:</span> An object descended from SloodlePluginBase if successful, or false on failure.</li>
  258. </ul>
  259. <div class="method-signature">
  260. <span class="method-result">object|bool</span>
  261. <span class="method-name">
  262. get_plugin
  263. </span>
  264. (<span class="var-type">string</span>&nbsp;<span class="var-name">$name</span>, [<span class="var-type">bool</span>&nbsp;<span class="var-name">$forcenew</span> = <span class="var-default">false</span>])
  265. </div>
  266. <ul class="parameters">
  267. <li>
  268. <span class="var-type">string</span>
  269. <span class="var-name">$name</span><span class="var-description">: Name of the plugin type to get. If it does not start with &quot;SloodlePlugin&quot;, then that is added to the start.</span> </li>
  270. <li>
  271. <span class="var-type">bool</span>
  272. <span class="var-name">$forcenew</span><span class="var-description">: If false (default) then a cached instance of the plugin will be returned. Set this to true to force the manager to create a new plugin instance.</span> </li>
  273. </ul>
  274. </div>
  275. <a name="methodget_plugin_names" id="get_plugin_names"><!-- --></a>
  276. <div class="oddrow">
  277. <div class="method-header">
  278. <img src="../media/images/Method.png" />
  279. <span class="method-title">get_plugin_names</span> (line <span class="line-number"><a href="../__filesource/fsource_sloodle__libplugins.php.html#a96">96</a></span>)
  280. </div>
  281. <!-- ========== Info from phpDoc block ========= -->
  282. <p class="short-description">Gets an array of the names of all SLOODLE plugins derived from the specified type.</p>
  283. <p class="description"><p>By default, this gets all plugins. Specify a different base class to get others. NOTE: this will search all plugins loaded by all plugin managers in the current PHP script. (There is no way to tell which manager loaded which plugins.) Plugin names correspond to class names, with the 'SloodlePlugin' prefix.</p></p>
  284. <ul class="tags">
  285. <li><span class="field">return:</span> Numeric array of plugin names. These names correspond to class names.</li>
  286. </ul>
  287. <div class="method-signature">
  288. <span class="method-result">array</span>
  289. <span class="method-name">
  290. get_plugin_names
  291. </span>
  292. ([<span class="var-type">string</span>&nbsp;<span class="var-name">$type</span> = <span class="var-default">'SloodlePluginBase'</span>])
  293. </div>
  294. <ul class="parameters">
  295. <li>
  296. <span class="var-type">string</span>
  297. <span class="var-name">$type</span><span class="var-description">: Name of a plugin base class.</span> </li>
  298. </ul>
  299. </div>
  300. <a name="methodload_plugins" id="load_plugins"><!-- --></a>
  301. <div class="evenrow">
  302. <div class="method-header">
  303. <img src="../media/images/Method.png" />
  304. <span class="method-title">load_plugins</span> (line <span class="line-number"><a href="../__filesource/fsource_sloodle__libplugins.php.html#a64">64</a></span>)
  305. </div>
  306. <!-- ========== Info from phpDoc block ========= -->
  307. <p class="short-description">Loads all available plugins from the specified folder.</p>
  308. <ul class="tags">
  309. <li><span class="field">return:</span> True if successful, or false if it fails. (It will only report failure if the folder does not exist, or there is an error accessing it.)</li>
  310. </ul>
  311. <div class="method-signature">
  312. <span class="method-result">bool</span>
  313. <span class="method-name">
  314. load_plugins
  315. </span>
  316. (<span class="var-type">string</span>&nbsp;<span class="var-name">$folder</span>)
  317. </div>
  318. <ul class="parameters">
  319. <li>
  320. <span class="var-type">string</span>
  321. <span class="var-name">$folder</span><span class="var-description">: Name of the folder to load plugins from. This is a sub-folder of the 'sloodle/plugin' folder. It will only load files which are directly contained inside it.</span> </li>
  322. </ul>
  323. </div>
  324. </div>
  325. </div>
  326. <p class="notes" id="credit">
  327. Documentation generated on Fri, 17 Jul 2009 11:02:22 +0100 by <a href="http://www.phpdoc.org" target="_blank">phpDocumentor 1.4.0</a>
  328. </p>
  329. </div></body>
  330. </html>