diff --git a/php/classes/CatalogCacheMgr.php b/php/classes/CatalogCacheMgr.php index cd0d591..8cc4963 100644 --- a/php/classes/CatalogCacheMgr.php +++ b/php/classes/CatalogCacheMgr.php @@ -24,7 +24,7 @@ class CatalogCacheMgr extends TimeTableCacheMgr $this->cache = new CatalogCacheObject(); if (!empty($options['nparams'])) { for ($i = 0; $i < (int)$options['nparams']; $i++) { - $this->cache->addParameter(CatalogCacheMgr::DEFAULT_PARAM_ID_PREFIX.(string)($i+1), 'column_'.(string)($i+1), 1, 0); + $this->cache->addParameter(CatalogCacheMgr::DEFAULT_PARAM_ID_PREFIX.(string)($i+1), 'column_'.(string)($i+1), 1, 0, ""); } } else if (!empty($options['parameters'])) { @@ -39,7 +39,11 @@ class CatalogCacheMgr extends TimeTableCacheMgr else { $id = 'cat_param_id_'.$index; } - $this->cache->addParameter($id, $parameter['name'], intval($parameter['size']), intval($parameter['type'])); + $description = ""; + if (isset($parameter['description'])) { + $description = $parameter['description']; + } + $this->cache->addParameter($id, $parameter['name'], intval($parameter['size']), intval($parameter['type']), $description); ++$index; } } @@ -64,7 +68,11 @@ class CatalogCacheMgr extends TimeTableCacheMgr $info = $this->objectMgr->getUploadedObject($name, $format,TRUE); foreach ($info['parameters'] as $parameter) { - $this->cache->addParameter($parameter['id'], $parameter['name'], intval($parameter['size']), intval($parameter['type'])); + $description = ""; + if (isset($parameter['description'])) { + $description = $parameter['description']; + } + $this->cache->addParameter($parameter['id'], $parameter['name'], intval($parameter['size']), intval($parameter['type']), $parameter['description']); } return $result+ array('parameters' => $info['parameters']); diff --git a/php/classes/CatalogCacheObject.php b/php/classes/CatalogCacheObject.php index 5b8eb38..ebc84c3 100644 --- a/php/classes/CatalogCacheObject.php +++ b/php/classes/CatalogCacheObject.php @@ -26,13 +26,14 @@ class CatalogCacheObject extends TimeTableCacheObject return $intervalObj; } - public function addParameter($id, $name, $size, $type) + public function addParameter($id, $name, $size, $type, $description) { $this->parameters[] = array( 'id' => $id, 'name' => $name, 'size' => $size, 'type' => $type, + 'description' => $description, ); } @@ -49,46 +50,56 @@ class CatalogCacheObject extends TimeTableCacheObject fwrite($handle,pack('L',strlen($parameter['id']))); //Param name length fwrite($handle,pack('L',strlen($parameter['name']))); - //Param Size + //Param Size fwrite($handle,pack('L',$parameter['size'])); - //Param Type + //Param Type fwrite($handle,pack('L',$parameter['type'])); - //Param Id + //Description Size + fwrite($handle,pack('L',strlen($parameter['description']))); + //Param Id for ($i = 0; $i < strlen($parameter['id']); ++$i) - fwrite($handle,pack('C',ord($parameter['id'][$i]))); - //Param name: + fwrite($handle,pack('C',ord($parameter['id'][$i]))); + //Param name: for ($i = 0; $i < strlen($parameter['name']); ++$i) - fwrite($handle,pack('C',ord($parameter['name'][$i]))); + fwrite($handle,pack('C',ord($parameter['name'][$i]))); + //Param description + for ($i = 0; $i < strlen($parameter['description']); ++$i) + fwrite($handle,pack('C',ord($parameter['description'][$i]))); } } protected function loadAdditionalHeaderBin($handle) { - //Params Number + //Params Number if (!$res = unpack('Lnumber',fread($handle,4))) return false; $nbParams = $res['number']; for ($i = 0; $i < $nbParams; ++$i) { - //Param Id length + //Param Id length if (!$res = unpack('Lidlength',fread($handle,4))) return false; $idlength = $res['idlength']; - //Param Name length - if (!$res = unpack('Lnamelength',fread($handle,4))) + //Param Name length + if (!$res = unpack('Lnamelength',fread($handle,4))) return false; $namelength = $res['namelength']; - //Param Size - if (!$res = unpack('Lsize',fread($handle,4))) - return false; - $size = $res['size']; + //Param Size + if (!$res = unpack('Lsize',fread($handle,4))) + return false; + $size = $res['size']; //Param Type if (!$res = unpack('Ltype',fread($handle,4))) return false; $type = $res['type']; + //Param Description lenfth + if (!$res = unpack('Ldescriptionlength',fread($handle,4))) + return false; + $descriptionlength = $res['descriptionlength']; + //Param Id $id = ""; for ($j = 0; $j < $idlength; ++$j) @@ -98,7 +109,7 @@ class CatalogCacheObject extends TimeTableCacheObject $id .= chr($res['id']); } - //Param Name + //Param Name $name = ""; for ($j = 0; $j < $namelength; ++$j) { @@ -107,7 +118,16 @@ class CatalogCacheObject extends TimeTableCacheObject $name .= chr($res['name']); } - $this->addParameter($id, $name, $size, $type); + //Param description + $description = ""; + for ($j = 0; $j < $descriptionlength; ++$j) + { + if (!$res = unpack('Cdescription',fread($handle,1))) + return false; + $description .= chr($res['description']); + } + + $this->addParameter($id, $name, $size, $type, $description); } return true; } @@ -137,7 +157,7 @@ class CatalogCacheObject extends TimeTableCacheObject echo " => Parameters : ".PHP_EOL; foreach ($this->parameters as $parameter) { - echo " * id = ".$parameter['id'].", name = ".$parameter['name'].", size = ".$parameter['size'].", type = ".$parameter['type'].PHP_EOL; + echo " * id = ".$parameter['id'].", name = ".$parameter['name'].", size = ".$parameter['size'].", type = ".$parameter['type'].", description = ".$parameter['description'].PHP_EOL; } echo PHP_EOL; diff --git a/php/classes/TimeTableMgr.php b/php/classes/TimeTableMgr.php index ff496cd..2f81d86 100644 --- a/php/classes/TimeTableMgr.php +++ b/php/classes/TimeTableMgr.php @@ -84,7 +84,12 @@ class TimeTableMgr extends AmdaObjectMgr else $attributesToReturn[$attribute->tagName] = $attribute->nodeValue;*/ //BRE - load all except intervals - Intervals will be loaded later with 'loadIntervalsFromObject' function - if ($attribute->tagName != 'intervals') { + if ($attribute->tagName == 'parameters' && method_exists($this,'getCatalogParamDescription')) { + $parameters_desc = $this->getCatalogParamDescription(array('id' => $id, 'type' => $nodeType)); + if ($parameters_desc['success']) + $attributesToReturn[$attribute->tagName] = $parameters_desc['parameters']; + } + else if ($attribute->tagName != 'intervals') { $attributesToReturn[$attribute->tagName] = $attribute->nodeValue; } else { -- libgit2 0.21.2