Phundament-Packages
[ class tree: Phundament-Packages ] [ index: Phundament-Packages ] [ all elements ]

Source for file LMetaDataCore.php

Documentation is available at LMetaDataCore.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: 601 $  $Date: 2007-02-24 23:49:30 +0100 (Sa, 24 Feb 2007) $
  11.  * @package Phundament.Packages
  12.  * @subpackage LMetaData
  13.  */
  14.  
  15. /**
  16.  * Core functionality for LMetaData
  17.  *
  18.  * @package System.Util
  19.  * @subpackage Cores
  20.  */
  21.  
  22. Prado :: setPathOfAlias("LMetaData"dirname(__FILE__));
  23. Prado :: using("LMetaData.db.propel.*");
  24. Prado :: using("LMetaData.db.propel.l_meta_data.*");
  25. class LMetaDataCore extends TModule
  26. {
  27.     public $_configuration;
  28.  
  29.     /**
  30.      * @return array parsed configuration
  31.      */
  32.     public function getConfiguration()
  33.     {
  34.         return $this->_configuration;
  35.     }
  36.  
  37.     /**
  38.      * parses configuration
  39.      */
  40.     public function init($config)
  41.     {
  42.         Prado::trace("Initializing meta data module ...""Lithron.LMetaData");
  43.         $xmlObjs$config->getElements();
  44.         foreach ($xmlObjs as $obj)
  45.         {
  46.             $_attr$obj->getAttributes();
  47.             $pkg$obj->getTagName();
  48.             $id$_attr->itemAt("id");
  49.             $class$_attr->itemAt("class");
  50.             $type($opt$_attr->itemAt("type")) $opt "Selection";
  51.             $this->_configuration[$pkg ":" $type][]array (
  52.                 "id" => $id,
  53.                 "class" => $class,
  54.                 "custom_data" => $_attr->itemAt("custom_data")
  55.             );
  56.         }
  57.         #var_dump($this->Config);
  58.     }
  59.  
  60.     /**
  61.      * updates the metadata-database for a specified record
  62.      */
  63.     function updateMetaData($ownerRecordId$metaData)
  64.     {
  65.         $conn$this->Application->getModule("database")->getConnection("l_meta_data""propel");
  66.  
  67.         $cnew Criteria();
  68.         $c->add(LMetaDataPeer :: OWNER_ID$metaData->getMetaId());
  69.         $c->add(LMetaDataPeer :: OWNER_RECORD_ID$ownerRecordId);
  70.         LMetaDataPeer :: doDelete($c$conn);
  71.         $_do$metaData->getDataObject();
  72.         foreach ($_do[LMetaDataBase::DATA_KEYAS $metaId => $classMetaData)
  73.         {
  74.  
  75.             if (is_array($classMetaData))
  76.                 foreach ($classMetaData AS $metaRecord)
  77.                 {
  78.                     #var_dump($metaRecord);
  79.                     $recordnew LMetaData;
  80.                     $record->setOwnerId($metaData->getMetaId());
  81.                     $record->setOwnerRecordId($ownerRecordId);
  82.                     $record->setMetaId($metaId);
  83.                     $record->setMetaRecordId($metaRecord['MetaRecordId']);
  84.                     if (isset($metaRecord['Description'])) $record->setDescription($metaRecord['Description']);
  85.                     if (isset($metaRecord['Rank'])) $record->setRank($metaRecord['Rank']);
  86.                     $record->save($conn);
  87.                 }
  88.         }
  89.     }
  90.  
  91.     /**
  92.      * retuns data from database
  93.      */
  94.     function getMetaData($ownerId$ownerRecordId)
  95.     {
  96.         $conn$this->Application->getModule("database")->getConnection("l_meta_data""propel");
  97.         $cnew Criteria();
  98.         $c->add(LMetaDataPeer :: OWNER_ID$ownerId);
  99.         $c->add(LMetaDataPeer :: OWNER_RECORD_ID$ownerRecordId);
  100.         $c->addAscendingOrderByColumn(LMetaDataPeer :: RANK);
  101.         $recordsLMetaDataPeer :: doSelect($c$conn);
  102.         #var_dump($records);
  103.         $return[0]['ApiRevision']"2";
  104.         foreach ($records AS $record)
  105.         {
  106.             $r['MetaId'$record->getMetaId();
  107.             $r['MetaRecordId'$record->getMetaRecordId();
  108.             $r['Description'$record->getDescription();
  109.             $r['Rank'$record->getRank();
  110.             $return[0][LMetaDataBase::DATA_KEY][$record->getMetaId()][]$r;
  111.         }
  112.         Prado :: log("Queried meta data for $ownerId ($ownerRecordId)"1"Lithron.LMetaData");
  113.         return $return;
  114.     }
  115.  
  116. }
  117.  
  118. /**
  119.  * Interface for LMetaData controls
  120.  *
  121.  * @package System
  122.  * @subpackage Interfaces
  123.  */
  124. interface IMetaData
  125. {
  126.     /**
  127.      * Returns selected items
  128.      * @return array 
  129.      */
  130.     public function getSelection();
  131.     /**
  132.      * Sets selected items
  133.      * @param array 
  134.      */
  135.     public function setSelection($array null);
  136. }
  137. ?>

Documentation generated on Sun, 25 Feb 2007 16:11:11 +0100 by phpDocumentor 1.3.1