- <?php
-
-
- /**
- * class file.
- *
- * @license http://opensource.org/licenses/mozilla1.1.php Mozilla Public License
- * @copyright 2005, diemeisterei GmbH. All rights reserved.
- * @author $Author: schmunk $
- * @version $Revision: 270 $ $Date: 2006-06-12 23:41:45 +0200 (Mo, 12 Jun 2006) $
- * @package Lithron.LMetaData
- * @subpackage WebControls
- */
-
- /**
- * Wrapper for displaying IMetaData components
- *
- * @package System.Web.UI.WebControls
- * @subpackage MetaData
- */
- class LMetaDataContainer extends LMetaDataBase
- {
-
- /**
- * creates controls, if defined in config
- */
- function onLoad($param)
- {
- $meta_data= $this->Application->getModule("meta_data");
- $config= $meta_data->getConfiguration();
-
- $key= $this->getMetaId() . ":Container";
- if (isset ($config[$key]))
- {
- $controls= $config[$key];
- if (is_array($controls))
- foreach ($controls AS $c)
- {
- $new= new $c['class'];
- $new->setId($c['id']);
- $new->setMetaId($c['id']);
- $this->Controls[]= $new;
- }
- }
- parent :: onLoad($param);
- }
-
- /**
- * fills the controls with data
- */
- function onPreRender($param)
- {
- $_obj= $this->getDataObject();
- #var_dump($_obj);
- if (isset ($_obj[self :: DATA_KEY]) && is_array($_obj[self :: DATA_KEY]))
- foreach ($_obj[self :: DATA_KEY] AS $id => $data)
- {
- #echo "<hr>$id";
- $control= $this->findControl($id);
- #echo $control= $this->findControlByMetaId($id);
- if (method_exists($control, "setData"))
- {
- #echo "<hr>";
- #var_dump($data);
- $control->setData($data);
- }
-
- }
- else
- $this->setVisible("false");
- parent :: onPreRender($param);
- }
-
- private function findControlByMetaId($metaId)
- {
- foreach ($this->Controls AS $c)
- {
- $cMetaId= null;
- try
- {
- if ($c instanceof LMetaDataContent)
- $cMetaId= $c->getMetaId();
- }
- catch (Exception $e)
- {
-
- }
- if ($cMetaId == $metaId)
- {
- #echo "found";
- return $c;
- }
- }
- }
- }
- ?>