Lithron.LMetaData
[ class tree: Lithron.LMetaData ] [ index: Lithron.LMetaData ] [ 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: 249 $ $Date: 2006-06-05 21:32:47 +0200 (Mo, 05 Jun 2006) $
  11. * @package Lithron.LMetaData
  12. * @subpackage Modules
  13. */
  14.  
  15. /**
  16. * Core functionality for LMetaData
  17. *
  18. * @package Lithron.LMetaData
  19. * @subpackage Modules
  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. $xmlObjs= $config->getElements();
  43. foreach ($xmlObjs as $obj)
  44. {
  45. $_attr= $obj->getAttributes();
  46. $pkg= $obj->getTagName();
  47. $id= $_attr->itemAt("id");
  48. $class= $_attr->itemAt("class");
  49. $type= ($opt= $_attr->itemAt("type")) ? $opt : "Selection";
  50. $this->_configuration[$pkg . ":" . $type][]= array (
  51. "id" => $id,
  52. "class" => $class
  53. );
  54. }
  55. #var_dump($this->Config);
  56. }
  57.  
  58. /**
  59. * updates the metadata-database for a specified record
  60. */
  61. function updateMetaData($ownerRecordId, $metaData)
  62. {
  63. $conn= $this->Application->getModule("database")->getConnection("l_meta_data", "propel");
  64.  
  65. $c= new Criteria();
  66. $c->add(LMetaDataPeer :: OWNER_ID, $metaData->getMetaId());
  67. $c->add(LMetaDataPeer :: OWNER_RECORD_ID, $ownerRecordId);
  68. LMetaDataPeer :: doDelete($c, $conn);
  69. $_do= $metaData->getDataObject();
  70. foreach ($_do[LMetaDataBase::DATA_KEY] AS $metaId => $classMetaData)
  71. {
  72.  
  73. if (is_array($classMetaData))
  74. foreach ($classMetaData AS $metaRecord)
  75. {
  76. #var_dump($metaRecord);
  77. $record= new LMetaData;
  78. $record->setOwnerId($metaData->getMetaId());
  79. $record->setOwnerRecordId($ownerRecordId);
  80. $record->setMetaId($metaId);
  81. $record->setMetaRecordId($metaRecord['MetaRecordId']);
  82. if (isset($metaRecord['Description'])) $record->setDescription($metaRecord['Description']);
  83. if (isset($metaRecord['Rank'])) $record->setRank($metaRecord['Rank']);
  84. $record->save($conn);
  85. }
  86. }
  87. }
  88.  
  89. /**
  90. * retuns data from database
  91. */
  92. function getMetaData($ownerId, $ownerRecordId)
  93. {
  94. $conn= $this->Application->getModule("database")->getConnection("l_meta_data", "propel");
  95. $c= new Criteria();
  96. $c->add(LMetaDataPeer :: OWNER_ID, $ownerId);
  97. $c->add(LMetaDataPeer :: OWNER_RECORD_ID, $ownerRecordId);
  98. $c->addAscendingOrderByColumn(LMetaDataPeer :: RANK);
  99. $records= LMetaDataPeer :: doSelect($c, $conn);
  100. #var_dump($records);
  101. $return[0]['ApiRevision']= "2";
  102. foreach ($records AS $record)
  103. {
  104. $r['MetaId'] = $record->getMetaId();
  105. $r['MetaRecordId'] = $record->getMetaRecordId();
  106. $r['Description'] = $record->getDescription();
  107. $r['Rank'] = $record->getRank();
  108. $return[0][LMetaDataBase::DATA_KEY][$record->getMetaId()][]= $r;
  109. }
  110. Prado :: log("Queried meta data for $ownerId($ownerRecordId)", 1, "Lithron.LMetaData");
  111. return $return;
  112. }
  113.  
  114. }
  115.  
  116. /**
  117. * Interface for LMetaData controls
  118. *
  119. * @package Lithron.LMetaData
  120. * @subpackage Interfaces
  121. */
  122. interface IMetaData
  123. {
  124. /**
  125. * Returns selected items
  126. * @return array
  127. */
  128. public function getSelection();
  129. /**
  130. * Sets selected items
  131. * @param array
  132. */
  133. public function setSelection($array = null);
  134. }
  135. ?>

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