Lithron.LMetaData
[ class tree: Lithron.LMetaData ] [ index: Lithron.LMetaData ] [ all elements ]

Source for file LMetaDataContainer.php

Documentation is available at LMetaDataContainer.php

  1. <?php
  2.  
  3.  
  4. /**
  5. * class file.
  6. *
  7. * @license http://opensource.org/licenses/mozilla1.1.php Mozilla Public License
  8. * @copyright 2005, diemeisterei GmbH. All rights reserved.
  9. * @author $Author: schmunk $
  10. * @version $Revision: 270 $ $Date: 2006-06-12 23:41:45 +0200 (Mo, 12 Jun 2006) $
  11. * @package Lithron.LMetaData
  12. * @subpackage WebControls
  13. */
  14.  
  15. /**
  16. * Wrapper for displaying IMetaData components
  17. *
  18. * @package System.Web.UI.WebControls
  19. * @subpackage MetaData
  20. */
  21. class LMetaDataContainer extends LMetaDataBase
  22. {
  23.  
  24. /**
  25. * creates controls, if defined in config
  26. */
  27. function onLoad($param)
  28. {
  29. $meta_data= $this->Application->getModule("meta_data");
  30. $config= $meta_data->getConfiguration();
  31.  
  32. $key= $this->getMetaId() . ":Container";
  33. if (isset ($config[$key]))
  34. {
  35. $controls= $config[$key];
  36. if (is_array($controls))
  37. foreach ($controls AS $c)
  38. {
  39. $new= new $c['class'];
  40. $new->setId($c['id']);
  41. $new->setMetaId($c['id']);
  42. $this->Controls[]= $new;
  43. }
  44. }
  45. parent :: onLoad($param);
  46. }
  47.  
  48. /**
  49. * fills the controls with data
  50. */
  51. function onPreRender($param)
  52. {
  53. $_obj= $this->getDataObject();
  54. #var_dump($_obj);
  55. if (isset ($_obj[self :: DATA_KEY]) && is_array($_obj[self :: DATA_KEY]))
  56. foreach ($_obj[self :: DATA_KEY] AS $id => $data)
  57. {
  58. #echo "<hr>$id";
  59. $control= $this->findControl($id);
  60. #echo $control= $this->findControlByMetaId($id);
  61. if (method_exists($control, "setData"))
  62. {
  63. #echo "<hr>";
  64. #var_dump($data);
  65. $control->setData($data);
  66. }
  67.  
  68. }
  69. else
  70. $this->setVisible("false");
  71. parent :: onPreRender($param);
  72. }
  73.  
  74. private function findControlByMetaId($metaId)
  75. {
  76. foreach ($this->Controls AS $c)
  77. {
  78. $cMetaId= null;
  79. try
  80. {
  81. if ($c instanceof LMetaDataContent)
  82. $cMetaId= $c->getMetaId();
  83. }
  84. catch (Exception $e)
  85. {
  86.  
  87. }
  88. if ($cMetaId == $metaId)
  89. {
  90. #echo "found";
  91. return $c;
  92. }
  93. }
  94. }
  95. }
  96. ?>

Documentation generated on Tue, 20 Jun 2006 05:15:17 +0200 by phpDocumentor 1.3.0RC4