You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

95 lines
2.3 KiB

<?php
if (!defined('__TYPECHO_ROOT_DIR__')) exit;
/**
* 全局选项
*
* @link typecho
* @package Widget
* @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
* @license GNU General Public License 2.0
* @version $Id$
*/
/**
* 全局选项组件
*
* @link typecho
* @package Widget
* @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
* @license GNU General Public License 2.0
*/
class Widget_Abstract_Options extends Widget_Abstract
{
/**
* 以checkbox选项判断是否某个值被启用
*
* @access protected
* @param mixed $settings 选项集合
* @param string $name 选项名称
* @return integer
*/
protected function isEnableByCheckbox($settings, $name)
{
return is_array($settings) && in_array($name, $settings) ? 1 : 0;
}
/**
* 获取原始查询对象
*
* @access public
* @return Typecho_Db_Query
*/
public function select()
{
return $this->db->select()->from('table.options');
}
/**
* 插入一条记录
*
* @access public
* @param array $options 记录插入值
* @return integer
*/
public function insert(array $options)
{
return $this->db->query($this->db->insert('table.options')->rows($options));
}
/**
* 更新记录
*
* @access public
* @param array $options 记录更新值
* @param Typecho_Db_Query $condition 更新条件
* @return integer
*/
public function update(array $options, Typecho_Db_Query $condition)
{
return $this->db->query($condition->update('table.options')->rows($options));
}
/**
* 删除记录
*
* @access public
* @param Typecho_Db_Query $condition 删除条件
* @return integer
*/
public function delete(Typecho_Db_Query $condition)
{
return $this->db->query($condition->delete('table.options'));
}
/**
* 获取记录总数
*
* @access public
* @param Typecho_Db_Query $condition 计算条件
* @return integer
*/
public function size(Typecho_Db_Query $condition)
{
return $this->db->fetchObject($condition->select(array('COUNT(name)' => 'num'))->from('table.options'))->num;
}
}