00001 <?php
00008 class TKSDRResourceResultMetadata extends TKNullBox {
00009
00010 private $metadata = null;
00011 private $params;
00012 const NEWTAB = true;
00013
00014 const VALUE_TYPE_LINK = 1;
00015 const VALUE_TYPE_SCALAR = 2;
00016 const VALUE_TYPE_LIST = 3;
00017
00022 public function __construct($metadata, $params = array()) {
00023 parent::__construct();
00024 $this->metadata = $metadata;
00025 $this->params = $params;
00026 }
00027
00031 protected function layoutMetadata() {
00032 $metadata = $this->metadata;
00033 $tbl = new TKTable();
00034 SErrorManager::redirectPush('error', 'devnull');
00035 $this->mdRow($tbl, $metadata, 'Url');
00036 $this->mdRow($tbl, $metadata, 'Creator');
00037 $this->mdRow($tbl, $metadata, 'Contributor');
00038 $this->mdRow($tbl, $metadata, 'Publisher');
00039 $this->mdRow($tbl, $metadata, 'Description');
00040 $this->mdRow($tbl, $metadata, 'Format');
00041 $this->mdRow($tbl, $metadata, 'Language');
00042 $this->mdRow($tbl, $metadata, 'Subject');
00043 $this->mdRow($tbl, $metadata, 'Keyword');
00044 $this->mdRow($tbl, $metadata, 'Audience');
00045 $this->mdRow($tbl, $metadata, 'Education_Level');
00046 $this->mdRow($tbl, $metadata, 'HPCU_Subject');
00047 $this->mdRow($tbl, $metadata, 'Type');
00048 SErrorManager::redirectPop('error');
00049 $this->add($tbl);
00050 }
00051
00062 protected function formatValues($key, $values) {
00063 if (is_array($values)){
00064 if (count($values) == 0)
00065 $values = '';
00066 else
00067 $values = implode(", ", $values);
00068 }
00069 if ($key == 'Url') {
00070 $values = $this->wrapLink($values);
00071 } else if ($values == '') {
00072 $values = '<i>None listed</i>';
00073 }
00074 return $values;
00075 }
00076
00086 protected function wrapLink($link) {
00087 if(self::NEWTAB)
00088 return "<a href=\"$link\"target='_blank'>$link</a>";
00089 else
00090 return "<a href=\"$link\">$link</a>";
00091 }
00092
00100 protected function mdRow($tbl, $metadata, $key) {
00101 $tbl->addLabel(str_replace('_', ' ', $key), array('class' => array('mdKey')));
00102 $tbl->addLabel($this->formatValues($key, $metadata->$key));
00103 $tbl->addRow();
00104 }
00105
00106 public function render() {
00107 $this->layoutMetadata();
00108 return parent::render();
00109 }
00110 }
00111 ?>