模块

Model_Forum_Config
继承自 Model

论坛设置模型。

package
BootCMS
category
论坛/模型
author
Tinsh
copyright
© 2005-2016 Kilofox Studio

该类在 APPPATH/classes/model/forum/config.php 第 13 行声明。

属性

protected $_db

private $_loaded

private $_values

方法

public create( array $data ) (在 Model_Forum_Config 中定义)

创建新设置。

参数

  • array $data required - 键值对

返回值

  • mixed - 插入的数据ID 或 false

源代码

public function create($data)
{
	if (is_object($data))
	{
		// 对象转数组(将来将 Validation 改写成操作对象后,就可以省略此步)
		$_arr = get_object_vars($data);
		foreach ($_arr as $key => $val)
		{
			$values[$key] = $val;
		}
		// 验证数据
		$validation = self::getValidation($values);
		if (!$validation->check())
		{
			throw new Validation_Exception('user', $validation);
		}
		return $this->_db->insert('bb_config', $values);
	}
	return false;
}

public delete( ) (在 Model_Forum_Config 中定义)

删除设置。

返回值

  • mixed - 执行结果

源代码

public function delete()
{
	if ($this->_loaded)
	{
		$where = "`id` = {$this->_values->id}";
		return $this->_db->delete('bb_config', $where);
	}
	return false;
}

public static factory( ) (在 Model_Forum_Config 中定义)

创建并返回一个新的模型对象。

返回值

  • 对象

源代码

public static function factory($name)
{
	return parent::factory($name);
}

public findAll( ) (在 Model_Forum_Config 中定义)

取得所有设置。

返回值

  • array - 数据

源代码

public function findAll()
{
	$sql = "SELECT * FROM `{$this->_db->tablePrefix}bb_config`";
	$result = $this->_db->selectArray($sql);
	$configs = array();
	foreach ($result as &$node)
	{
		$configs[$node->name] = $node->content;
	}
	return $configs;
}

public findByName( [ mixed $names = array(0) ] ) (在 Model_Forum_Config 中定义)

根据名称取得设置值。

参数

  • mixed $names = array(0) - 名称列表

返回值

  • array - 设置值列表

源代码

public function findByName($names = array())
{
	if (!$names)
		return array();
	$condition = "= '$names'";
	if (is_array($names))
	{
		$condition = '';
		foreach ($names as $val)
		{
			$condition .= '\'' . $val . '\',';
		}
		$condition = substr($condition, 0, -1);
		$condition = "IN ($condition)";
	}
	$sql = "SELECT `name`, `content` FROM `{$this->_db->tablePrefix}bb_config` WHERE `name` $condition";
	return $this->_db->selectArray($sql);
}

public static getValidation( array $values ) (在 Model_Forum_Config 中定义)

数据验证。

参数

  • array $values required - 要验证的数据

返回值

  • Validation

源代码

public static function getValidation($values)
{
	return Validation::factory($values)
			->rule('name', 'not_empty');
}

public loadByName( [ 名称 $name = string(0) "" ] ) (在 Model_Forum_Config 中定义)

根据主键加载数据,并返回对象。

参数

  • 名称 $name = string(0) ""

返回值

  • 对象

源代码

public function loadByName($name = '')
{
	if ($name)
	{
		$sql = "SELECT * FROM `{$this->_db->tablePrefix}bb_config` WHERE `name` = '$name'";
		$this->_values = $this->_db->select($sql);
		$this->_loaded = true;
	}
	return $this->_values;
}

public setByName( string $name , mixed $value [, bool $add = bool false ] ) (在 Model_Forum_Config 中定义)

根据名称设置配置项。

参数

  • string $name required - 要设置的配置项
  • mixed $value required - 新的值
  • bool $add = bool false - 是否与当前值相加

返回值

  • mixed - 执行结果

源代码

public function setByName($name, $value, $add = false)
{
	if (!$name)
		return false;
	if ($add)
	{
		$sql = "SELECT `content` FROM `{$this->_db->tablePrefix}bb_config` WHERE `name` = '$name'";
		$values = $this->_db->select($sql);
		$value += $values->content;
	}
	$where = "`name` = '$name'";
	return $this->_db->update('bb_config', array('content' => $value), $where);
}

public update( ) (在 Model_Forum_Config 中定义)

更新设置。

返回值

  • 执行结果

源代码

public function update()
{
	if ($this->_loaded)
	{
		// 对象转数组(将来将 Validation 改写成操作对象后,就可以省略此步)
		$_arr = get_object_vars($this->_values);
		foreach ($_arr as $key => $val)
		{
			$values[$key] = $val;
		}
		// 验证数据
		$validation = self::getValidation($values);
		if (!$validation->check())
		{
			throw new Validation_Exception('user', $validation);
		}
		$where = "`name` = '{$this->_values->name}'";
		return $this->_db->update('bb_config', $this->_values, $where);
	}
	return false;
}

public __construct( ) (在 Model 中定义)

源代码

public function __construct()
{
	if (!is_object($this->_db))
	{
		$this->_db = Database::instance();
	}
}