模块

Model_Forum_Moderator
继承自 Model

论坛版主模型

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

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

属性

protected $_db

private $_loaded

private $_values

方法

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

创建新节点

参数

  • 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('nodes', $values);
	}
	return false;
}

public delete( ) (在 Model_Forum_Moderator 中定义)

删除节点

返回值

  • mixed - 执行结果

源代码

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

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

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

返回值

  • 对象

源代码

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

public findByForum( ) (在 Model_Forum_Moderator 中定义)

根据版块ID取得版主列表

源代码

public function findByForum($fid = 0)
{
	$result = array();
	if (is_int($fid))
	{
		$sql = "SELECT u.id, u.displayed_name, u.level FROM {$this->_db->tablePrefix}bb_members u, {$this->_db->tablePrefix}bb_moderators m WHERE m.forum_id = $forumId AND m.user_id = u.id ORDER BY u.displayed_name";
		$result = $this->_db->selectArray($sql);
	}
	return $result;
}

public findInForum( [ array $forumIds = array(0) ] ) (在 Model_Forum_Moderator 中定义)

取得指定版块ID的版主列表

参数

  • array $forumIds = array(0) - 版块ID

返回值

  • array - 版主列表

源代码

public function findInForum($forumIds = array())
{
	$sqlIn = '';
	foreach ($forumIds as $fid)
	{
		if ($fid)
			$sqlIn.= $fid . ',';
	}
	$sqlIn = substr($sqlIn, 0, -1);
	if ($sqlIn)
	{
		$sql = "SELECT m.forum_id, u.id, u.displayed_name, u.level FROM {$this->_db->tablePrefix}bb_moderators m, {$this->_db->tablePrefix}bb_members u WHERE m.forum_id IN(" . $sqlIn . ") AND m.user_id = u.id ORDER BY u.displayed_name";
		return $this->_db->selectArray($sql);
	}
	return array();
}

public getForumsByUser( [ integer $userId = integer 0 ] ) (在 Model_Forum_Moderator 中定义)

取得某用户管理的所有论坛ID

参数

  • integer $userId = integer 0 - 用户ID

返回值

  • array - 论坛ID数组

源代码

public function getForumsByUser($userId = 0)
{
	$result = array();
	if (is_int($userId))
	{
		$sql = "SELECT `forum_id` FROM `{$this->_db->tablePrefix}moderators` WHERE `user_id` = $userId";
		$result = $this->_db->selectArray($sql);
	}
	return $result;
}

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

数据验证

参数

  • array $values required - $values

返回值

  • Validation

源代码

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

public load( ) (在 Model_Forum_Moderator 中定义)

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

返回值

  • 对象

源代码

public function load($id = 0)
{
	if (is_numeric($id) && $id > 0)
	{
		$sql = "SELECT * FROM `" . $this->_db->tablePrefix . "moderators` WHERE `id` = $id";
		$this->_values = $this->_db->select($sql);
		$this->_loaded = true;
	}
	return $this->_values;
}

public update( ) (在 Model_Forum_Moderator 中定义)

更新节点

返回值

  • 执行结果

源代码

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 = "`id` = {$this->_values->id}";
		return $this->_db->update('nodes', $this->_values, $where);
	}
	return false;
}

public __construct( ) (在 Model 中定义)

源代码

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