<?php

$status = array
(
	1 => '发布',
	2 => '下线',
);

# 每页的数据量
$page = 10;

$cate = function()
{
	$array = array();
	$info = Dever::db('main/cate')->state();
	if($info)
	{
		$array += $info;
	}
	return $array;
};

$source = function()
{
	$array = array();
	$info = Dever::db('main/source')->state();
	if($info)
	{
		$array += $info;
	}
	return $array;
};

$share = array
(
	1 => '显示',
	2 => '不显示',
);

# 常用的col
$col = 'id,cate_id,name,pic_cover,num_add_view+num_view as num_view,content,source_id,`desc`,cdate,pdate';

return array
(
	# 表名
	'name' => 'info',
	# 显示给用户看的名称
	'lang' => '文章管理',
	'order' => 100,

	# 数据结构
	'struct' => array
	(
		'id' 		=> array
		(
			'type' 		=> 'int-11',
			'name' 		=> 'ID',
			'default' 	=> '',
			'desc' 		=> '',
			'match' 	=> 'is_numeric',
			'list'		=> true,
		),
		
		'name'		=> array
		(
			'type' 		=> 'varchar-80',
			'name' 		=> '标题-文章标题,同时也用于分享标题',
			'default' 	=> '',
			'desc' 		=> '标题',
			'match' 	=> 'is_string',
			'update'	=> 'text',
			'list'		=> true,
			'search'	=> 'fulltext',
			//增加预览
			'preview'	=> true,
		),

		'desc'		=> array
		(
			'type' 		=> 'varchar-500',
			'name' 		=> '摘要-文章摘要,同时也用于分享内容',
			'default' 	=> '',
			'desc' 		=> '摘要',
			'match' 	=> 'is_string',
			'update'	=> 'textarea',
		),
		
		'cate_id'		=> array
		(
			'type' 		=> 'int-11',
			'name' 		=> '所属分类',
			'default' 	=> '1',
			'desc' 		=> '所属分类',
			'match' 	=> 'is_numeric',
			'update'	=> 'select',
			'option'	=> $cate,
			'search'	=> 'select',
			'list'		=> 'Dever::load("main/cate-one#name", {cate_id})',
		),

		'source_id'		=> array
		(
			'type' 		=> 'int-11',
			'name' 		=> '来源',
			'default' 	=> '1',
			'desc' 		=> '来源',
			'match' 	=> 'is_numeric',
			'update'	=> 'select',
			'option'	=> $source,
			'search'	=> 'select',
			'list'		=> 'Dever::load("main/source-one#name", {source_id})',
		),

  		'pic_cover'		=> array
		(
			'type' 		=> 'text-255',
			'name' 		=> '封面图',
			'default' 	=> '',
			'desc' 		=> '封面图',
			'match' 	=> 'option',
			'update'	=> 'image',
			'key' 		=> '1',
			'place'		=> '378*224',
			//直接上传到云端
			//'upload'	=> 'qiniu',
			//上传大数据
			//'large' 	=> true,
		),

		'num_add_view'		=> array
		(
			'type' 		=> 'int-11',
			'name' 		=> '浏览量基数',
			'default' 	=> '0',
			'desc' 		=> '浏览量基数',
			'match' 	=> 'option',
			//'update'	=> 'text',
		),

		'num_view'		=> array
		(
			'type' 		=> 'int-11',
			'name' 		=> '浏览量',
			'default' 	=> '0',
			'desc' 		=> '请填写浏览量',
			'match' 	=> 'option',
			//'search'	=> 'order',
			//'list'		=> '{num_view}+{num_add_view}',
		),

		'pdate'		=> array
		(
			'type' 		=> 'int-11',
			'name' 		=> '发布时间',
			'match' 	=> array('is_numeric', time()),
			'default'	=> '',
			'desc' 		=> '',
			'update'	=> 'date',
			'callback'	=> 'maketime',
			'insert'	=> true,
			//'list'		=> 'date("Y-m-d H:i:s", {pdate})',
			'auth'		=> '"{pdate}" > 0',
		),

		'reorder'		=> array
		(
			'type' 		=> 'int-11',
			'name' 		=> '排序(数值越大越靠前)',
			'default' 	=> '1',
			'desc' 		=> '请输入排序',
			'match' 	=> 'option',
			//'update'	=> 'text',
			//'search'	=> 'order',
			//'list'		=> true,
			//'order'		=> 'desc',
			//'edit'		=> true,
		),

		'udate'		=> array
		(
			'type' 		=> 'int-11',
			'name' 		=> '更新时间',
			'match' 	=> array('is_numeric', time()),
			'desc' 		=> '',
		),

		'content'		=> array
		(
			'type' 		=> 'text-255',
			'name' 		=> '内容',
			'default' 	=> '',
			'desc' 		=> '请输入内容',
			'match' 	=> 'is_string',
			'update'	=> 'editor',
			'key'		=> '1',
			//'media'		=> '5',//下面的音视频已经做到了
			//直接上传到云端
			//'upload'	=> 'qiniu',
			//上传大数据
			//'large' 	=> true,
			//自定义编辑器右侧按钮
			'editors'	=> array
			(
				'name' => '选择插入模块',
				'button' => array
				(
					array
					(
						'name' => '视频',
						'key' => 'article/lib/article.vod',
					),
				),
			),
		),

		'status'		=> array
		(
			'type' 		=> 'int-11',
			'name' 		=> '发布状态',
			'default' 	=> '1',
			'desc' 		=> '发布状态',
			'match' 	=> 'is_numeric',
			//'update'	=> 'select',
			'option'	=> $status,
			'search'	=> 'select',
			'list'		=> true,
			'edit'		=> true,
		),

		'state'		=> array
		(
			'type' 		=> 'tinyint-1',
			'name' 		=> '状态',
			'default' 	=> '1',
			'desc' 		=> '请选择状态',
			'match' 	=> 'is_numeric',
		),

		'cdate'		=> array
		(
			'type' 		=> 'int-11',
			'name' 		=> '录入时间',
			'match' 	=> array('is_numeric', time()),
			'desc' 		=> '',
			# 只有insert时才生效
			'insert'	=> true,
		),
	),

	# 索引
	'index' => array
	(
		'version' => 1,
		
		1 => array
		(
			'i1' => 'cate_id,reorder',
		)
	),
	
	# 管理功能
	'manage' => array
	(
		'button' => array
        (
        	'分类管理' => array('list', 'cate&oper_parent=news&oper_project=main'),
        	'来源管理' => array('list', 'source&oper_parent=news&oper_project=main'),
        ),

		//'insert' => false,
		# 列表
		'list_button' => array
		(
			//'edit' => array('预览', str_replace('https://api.', 'http://www.', Dever::url('main/preview.get?type=1'))),
		),
	),

	# request 请求接口定义
	'request' => array
	(
		'search' => array
		(
			# 匹配的正则或函数 选填项
			'option' => array
			(
				'ids' => array('yes-id', 'in'),
				'cate_id' => 'yes',
				'name' => array('yes', 'like'),
				'id' => 'yes',
				'state' => 1,
			),
			'type' => 'all',
			'order' => array('reorder' => 'desc', 'pdate' => 'desc'),
			'limit' => '0,1000',
			'col' => 'name as name, id, id as value, "" as selected, "" as disabled|id',
		),

		'getAll' => array
		(
			# 匹配的正则或函数 选填项
			'option' => array
			(
				'cate_id' => 'yes',
				'cate_ids' => array('yes-cate_id', 'in'),
				'id' => 'yes',
				'status' => 1,
				'state' => 1,
			),
			'type' => 'all',
			'order' => array('reorder' => 'desc','pdate' => 'desc'),
			'page' => array($page, 'list'),
			'col' => $col,
		),

		'getList' => array
		(
			# 匹配的正则或函数 选填项
			'option' => array
			(
				'cate_id' => 'yes',
				'status' => 1,
				'state' => 1,
			),
			'type' => 'all',
			'order' => array('reorder' => 'desc','pdate' => 'desc'),
			'limit' => '0,3',
			'col' => $col,
		),

		'getRelation' => array
		(
			# 匹配的正则或函数 选填项
			'option' => array
			(
				'cate_id' => 'yes',
				'cate_ids' => array('yes-cate_id', 'in'),
				'noid' => array('yes-id', '!='),
				'status' => 1,
				'state' => 1,
			),
			'type' => 'all',
			'order' => array('reorder' => 'desc','pdate' => 'desc'),
			'limit' => '0,2',
			'col' => $col,
		),

		'getOne' => array
		(
			# 匹配的正则或函数 选填项
			'where' => array
			(
				'id' => 'yes',
				'state' => 1,
				'status' => 1,
			),
			'type' => 'one',
			'col' => $col,
		),

		'findPrev' => array
		(
			# 匹配的正则或函数 选填项
			'where' => array
			(
				'cate_id' => 'yes',
				'id' => array('yes', '<'),
				'state' => 1,
				'status' => 1,
			),
			'type' => 'one',
			'order' => array('reorder' => 'desc','pdate' => 'desc'),
			'col' => $col,
		),

		'findNext' => array
		(
			# 匹配的正则或函数 选填项
			'where' => array
			(
				'cate_id' => 'yes',
				'id' => array('yes', '>'),
				'state' => 1,
				'status' => 1,
			),
			'order' => array('reorder' => 'asc','pdate' => 'asc'),
			'type' => 'one',
			'col' => $col,
		),
		
		# 更新浏览量
		'addView' => array
		(
			'type' => 'update',
			'where' => array
			(
				'id' => 'yes',
			),
			'set' => array
			(
				'num_view' => array('1', '+='),
			),
		),
	),
);