1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
<?php
# Movable Type (r) Open Source (C) 2001-2012 Six Apart, Ltd.
# This program is distributed under the terms of the
# GNU General Public License, version 2.
#
# $Id$
require_once("class.baseobject.php");
/***
* Class for mt_config
*/
class Config extends BaseObject
{
public $_table = 'mt_config';
protected $_prefix = "config_";
private $_data = array();
public function data($name = null) {
if (empty($this->_data)) {
$data = $this->data;
$data = preg_split('/[\r?\n]/', $data);
foreach ($data as $line) {
// search through the file
if (!preg_match('/^\s*\#/i',$line)) {
// ignore lines starting with the hash symbol
if (preg_match('/^\s*(\S+)\s+(.*)$/', $line, $regs)) {
$key = strtolower(trim($regs[1]));
$value = trim($regs[2]);
//TODO un-specialize for hash
if (($key === 'pluginswitch') || ($key === 'pluginschemaversion')) { # special case for hash
if (preg_match('/^(.+)=(.+)$/', $value, $match))
$this->_data[$key][trim($match[1])] = trim($match[2]);
} else {
if (!isset($this->_data[$key]))
$this->_data[$key] = $value;
}
}
}
}
}
if (!empty($name)) {
$name = strtolower($name);
return isset($this->_data[$name]) ? $this->_data[$name] : null;
} else
return $this->_data;
}
}
?>
|