Source for file interfaces.php

Documentation is available at interfaces.php

  1. <?php
  2.  
  3. /* Interface classes between midcom.application and the component */
  4.  
  5. class net_nemein_downloads_midcom {
  6.  
  7. function initialize() {
  8.  
  9. global $midcom;
  10. global $net_nemein_downloads_nap_activeid;
  11. global $net_nemein_downloads_layouts;
  12.  
  13. // include code snippets
  14. $prefix = MIDCOM_ROOT . "/net/nemein/downloads";
  15. require("{$prefix}/viewer.php");
  16. require("{$prefix}/admin.php");
  17. require("{$prefix}/navigation.php");
  18. require("{$prefix}/helpers.php");
  19.  
  20. // load pure code libraries (if needed)
  21. //$midcom->load_library("...");
  22. $midcom->load_library("midcom.helper.datamanager");
  23. //...
  24.  
  25. // default configuration
  26. debug_add("Loading default configuration", MIDCOM_LOG_DEBUG);
  27. $snippet = mgd_get_snippet_by_path("/net/nemein/downloads/_config/config_default");
  28. $data = file_get_contents("${prefix}/config/config_default.dat");
  29. eval("\$component_default = Array ( {$data} );");
  30. $default_config = new midcom_helper_configuration($component_default);
  31. if (mgd_snippet_exists("/sitegroup-config/net.nemein.downloads/config")) {
  32. $snippet = mgd_get_snippet_by_path("/sitegroup-config/net.nemein.downloads/config");
  33. eval("\$local_default = Array ( " . $snippet->code . ");");
  34. if (!$default_config->store($local_default)) {
  35. debug_add("Sitegroup configuration is invalid, configuration management failed, aborting", MIDCOM_LOG_CRIT);
  36. debug_pop();
  37. return false;
  38. }
  39. }
  40. $GLOBALS["net_nemein_downloads__default_config"] = new midcom_helper_configuration($default_config->get_all());
  41.  
  42. // Schema Database
  43. debug_add("Loading Schema Database", MIDCOM_LOG_DEBUG);
  44. $path = $GLOBALS["net_nemein_downloads__default_config"]->get("schemadb");
  45. $data = midcom_get_snippet_content($path);
  46. eval("\$net_nemein_downloads_layouts = Array (\n{$data}\n);");
  47.  
  48. // set active id for nap class
  49. $net_nemein_downloads_nap_activeid = false;
  50.  
  51. return true;
  52. }
  53.  
  54.  
  55. function properties() {
  56.  
  57. $i18n =& $GLOBALS["midcom"]->get_service("i18n");
  58. $l10n = $i18n->get_l10n("net.nemein.downloads");
  59.  
  60. return array(
  61. MIDCOM_PROP_NAME => $l10n->get("net.nemein.downloads"),
  62. MIDCOM_PROP_VERSION => "0.1"
  63. );
  64. }
  65.  
  66. } // midcom
  67.  
  68.  
  69.  
  70. class net_nemein_downloads_component {
  71.  
  72. var $configs;
  73. var $components;
  74.  
  75.  
  76. function configure($configuration, $contextid) {
  77.  
  78. // initalize configuration instance for this context
  79. $tmp = new midcom_helper_configuration($configuration);
  80. if ($tmp === false)
  81. return false;
  82. else {
  83. $this->configs[$contextid] = $tmp;
  84. return true;
  85. }
  86. }
  87.  
  88.  
  89. function can_handle($topic, $argc, $argv, $contextid) {
  90.  
  91. // initialize component instance for this context
  92. $this->components[$contextid] = new net_nemein_downloads_viewer
  93. ($topic, $this->configs[$contextid]);
  94. return $this->components[$contextid]->can_handle($argc, $argv);
  95. }
  96.  
  97.  
  98. function handle($topic, $argc, $argv, $contextid) {
  99.  
  100. return $this->components[$contextid]->handle($argc, $argv);
  101. }
  102.  
  103. function errcode($contextid) {
  104.  
  105. return $this->components[$contextid]->errcode;
  106. }
  107.  
  108. function errstr($contextid) {
  109.  
  110. return $this->components[$contextid]->errstr;
  111. }
  112.  
  113.  
  114. function get_metadata ($contextid) {
  115.  
  116. return $this->components[$contextid]->get_metadata ();
  117. }
  118.  
  119.  
  120. function show_content ($contextid) {
  121.  
  122. $this->components[$contextid]->show();
  123. }
  124.  
  125. } // component
  126.  
  127.  
  128.  
  129. class net_nemein_downloads_contentadmin {
  130.  
  131. var $configs;
  132. var $components;
  133.  
  134.  
  135. function net_nemein_downloads_contentadmin() {
  136.  
  137. $this->configs = array ();
  138. $this->components = array ();
  139. }
  140.  
  141.  
  142. function configure($configuration, $contextid) {
  143.  
  144. $tmp = new midcom_helper_configuration($configuration);
  145. if ($tmp === false)
  146. return false;
  147. else {
  148. $this->configs[$contextid] = $tmp;
  149. return true;
  150. }
  151. }
  152.  
  153.  
  154. function can_handle($topic, $argc, $argv, $contextid) {
  155.  
  156. $this->components[$contextid] = new net_nemein_downloads_admin
  157. ($topic, $this->configs[$contextid]);
  158.  
  159. return $this->components[$contextid]->can_handle($argc, $argv);
  160. }
  161.  
  162. function handle($topic, $argc, $argv, $contextid) {
  163.  
  164. return $this->components[$contextid]->handle($argc, $argv);
  165. }
  166.  
  167. function errcode($contextid) {
  168.  
  169. return $this->components[$contextid]->errcode;
  170. }
  171.  
  172. function errstr($contextid) {
  173.  
  174. return $this->components[$contextid]->errstr;
  175. }
  176.  
  177.  
  178. function get_metadata($contextid) {
  179.  
  180. return $this->components[$contextid]->get_metadata();
  181. }
  182.  
  183.  
  184. function show_content($contextid) {
  185.  
  186. $this->components[$contextid]->show();
  187. }
  188.  
  189. } // contentadmin
  190.  
  191.  
  192.  
  193. class net_nemein_downloads_nap {
  194.  
  195. var $napclass;
  196.  
  197.  
  198. function net_nemein_downloads_nap() {
  199.  
  200. $this->napclass = new net_nemein_downloads_navigation();
  201. }
  202.  
  203.  
  204. function is_internal() {
  205.  
  206. return $this->napclass->is_internal();
  207. }
  208.  
  209.  
  210. function set_object($object) {
  211.  
  212. return $this->napclass->set_object($object);
  213. }
  214.  
  215.  
  216. function get_node() {
  217.  
  218. return $this->napclass->get_node();
  219. }
  220.  
  221.  
  222. function get_current_leaf() {
  223.  
  224. return $this->napclass->get_current_leaf();
  225. }
  226.  
  227.  
  228. function get_leaves() {
  229.  
  230. return $this->napclass->get_leaves();
  231. }
  232.  
  233. } // nap
  234.  
  235. ?>

Documentation generated on Mon, 21 Nov 2005 18:16:48 +0100 by phpDocumentor 1.3.0RC3