<?php

$audit = Dever::config('base')->audit;

$status = Dever::config('base')->status;

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

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

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

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

$template = array
(
	1 => '图文',
	2 => '视频',
);

# 常用的col
$col = 'id,cate_id,name,pic_cover,pic_index,num_add_view+num_view as num_view,content,author_id,template,`desc`,video';

return array
(
	# 表名
	'name' => 'article',
	# 显示给用户看的名称
	'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("content/cate-one#name", {cate_id})',
		),

		'author_id'		=> array
		(
			'type' 		=> 'int-11',
			'name' 		=> '编辑',
			'default' 	=> '1',
			'desc' 		=> '编辑',
			'match' 	=> 'is_numeric',
			'update'	=> 'select',
			//'option'	=> $author,
			'search'	=> 'select',
			'update_search'	=> 'content/lib/author.search',
		),

  		'pic_cover'		=> array
		(
			'type' 		=> 'varchar-150',
			'name' 		=> '1:1封面图-图片尺寸380*380px或等比尺寸，上传大小不能超过2M，支持JPG、PNG、GIF格式，建议上传JPG格式，同时用于分享图片',
			'default' 	=> '',
			'desc' 		=> '封面图',
			'match' 	=> 'is_string',
			'update'	=> 'image',
			'key' 		=> '1',
			'place'		=> '150',
			//直接上传到云端
			//'upload'	=> 'qiniu',
			//上传大数据
			//'large' 	=> true,
		),

		'pic_index'		=> array
		(
			'type' 		=> 'varchar-150',
			'name' 		=> '16:9封面图-一般用于首页，图片尺寸380*214px或等比尺寸，秀场图片尺寸360*540px或等比尺寸，上传大小不能超过2M，支持JPG、PNG、GIF格式，建议上传JPG格式，同时用于分享图片',
			'default' 	=> '',
			'desc' 		=> '封面图',
			'match' 	=> 'is_string',
			'update'	=> 'image',
			'key' 		=> '1',
			'place'		=> '150',
			//直接上传到云端
			//'upload'	=> 'qiniu',
			//上传大数据
			//'large' 	=> true,
		),

		'template'		=> array
		(
			'type' 		=> 'int-11',
			'name' 		=> '文章模板',
			'default' 	=> '1',
			'desc' 		=> '文章模板',
			'match' 	=> 'is_numeric',
			'update'	=> 'radio',
			'option'	=> $template,
			'search'	=> 'select',
			'control'	=> 'template',
		),

		'video'		=> array
		(
			'type' 		=> 'varchar-800',
			'name' 		=> '上传视频-上传视频格式mp4,mov，上传大小不能超过4G，也可以直接填入腾讯视频的地址（如：https://v.qq.com/x/page/p0873p0efbx.html）或者mp4地址',
			'default' 	=> '',
			'desc' 		=> '上传视频',
			'match' 	=> 'is_string',
			'update'	=> 'upload',
			'key' 		=> '5',
			'place'		=> '150',
			'upload'	=> 'qiniu',
			'large' 	=> true,
			//不覆盖原文件，生成新文件
			'cover'		=> 2,
			'show'		=> 'template=2',
		),

		'video_info'		=> array
		(
			'type' 		=> 'text-255',
			'name' 		=> '视频信息',
			'default' 	=> '',
			'desc' 		=> '视频信息',
			'match' 	=> 'is_string',
			'show'		=> 'template=2',
		),

		'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,
			//自定义编辑器右侧按钮
			/*
			'editor'	=> array
			(
				'name' => '选择插入模块',
				'button' => array
				(
					array
					(
						# 名称
						'name' => '图片',
						# 资源库id
						'key' => 1,
						# 类型
						'type' => 'image',
					),
					array
					(
						'name' => '音频',
						'key' => 5,
						'type' => 'media',
					),
					array
					(
						'name' => '视频',
						'key' => 'video/lib/core.vod',
					),
					array
					(
						'name' => '直播',
						'key' => 'video/lib/core.live',
					),

					array
					(
						'name' => '小程序',
						'key' => 'content/lib/applet.update',
						'type' => 'update',
					),
				),
			),
			*/
		),

		'status'		=> array
		(
			'type' 		=> 'int-11',
			'name' 		=> '发布状态',
			'default' 	=> '2',
			'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',
		),

		'admin_founder'		=> array
		(
			'type' 		=> 'int-11',
			'name' 		=> '创建人',
			'default' 	=> '1',
			'desc' 		=> '创建人',
			'match' 	=> 'is_numeric',
		),

		'admin_editor'		=> array
		(
			'type' 		=> 'int-11',
			'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
	(
		//'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' => 2,
				'state' => 1,
			),
			'type' => 'all',
			'order' => array('reorder' => 'desc','pdate' => 'desc'),
			'page' => array($page, 'list'),
			'col' => $col,
		),

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

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

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