93 lines
2.4 KiB
PHP
93 lines
2.4 KiB
PHP
<?php
|
|
|
|
namespace mt;
|
|
|
|
use phpcommon;
|
|
|
|
class Parameter {
|
|
|
|
public static function get($id)
|
|
{
|
|
return array_key_exists($id, self::getMetaList()) ? self::getMetaList()[$id] : null;
|
|
}
|
|
|
|
public static function getOldParam($id)
|
|
{
|
|
$meta = self::get($id);
|
|
return array(
|
|
'id' => $meta['id'],
|
|
'name' => $meta['param_name'],
|
|
'value' => $meta['param_value'],
|
|
'param_name' => $meta['param_name'],
|
|
'param_value' => $meta['param_value'],
|
|
);
|
|
}
|
|
|
|
public static function getByName($name)
|
|
{
|
|
self::mustBeNameHash();
|
|
$meta = array_key_exists($name, self::$nameHash) ? self::$nameHash[$name] : null;
|
|
return $meta;
|
|
}
|
|
|
|
public static function getVal($name, $defVal)
|
|
{
|
|
$meta = self::getByName($name);
|
|
return $meta ? $meta['param_value'] : $defVal;
|
|
}
|
|
|
|
public static function getListValue($name, $defVal = array())
|
|
{
|
|
$val = self::getVal($name, null);
|
|
if ($val == null) {
|
|
return $defVal;
|
|
}
|
|
$values = explode('|', $val);
|
|
return $values;
|
|
}
|
|
|
|
public static function parseList($name, $separators)
|
|
{
|
|
$values = array();
|
|
$val = self::getVal($name, null);
|
|
if (!empty($val) && count($separators) > 0) {
|
|
function parse($data, $separators, $i, &$arr) {
|
|
$strs = explode($separators[$i], $data);
|
|
foreach ($strs as $str) {
|
|
if ($i + 1 < count($separators)) {
|
|
$item = array();
|
|
parse($str, $separators, $i + 1, $item);
|
|
array_push($arr, $item);
|
|
} else {
|
|
array_push($arr, $str);
|
|
}
|
|
}
|
|
}
|
|
parse($val, $separators, 0, $values);
|
|
}
|
|
return $values;
|
|
}
|
|
|
|
protected static function getMetaList()
|
|
{
|
|
if (!self::$metaList) {
|
|
self::$metaList = getMetaTable('parameter@parameter.php');
|
|
}
|
|
return self::$metaList;
|
|
}
|
|
|
|
protected static function mustBeNameHash()
|
|
{
|
|
if (!self::$nameHash) {
|
|
self::$nameHash = array();
|
|
foreach (self::getMetaList() as $meta) {
|
|
self::$nameHash[$meta['param_name']] = $meta;
|
|
}
|
|
}
|
|
}
|
|
|
|
protected static $nameHash;
|
|
protected static $metaList;
|
|
|
|
}
|