You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
113 lines
3.0 KiB
PHTML
113 lines
3.0 KiB
PHTML
5 years ago
|
<?php
|
||
|
// +----------------------------------------------------------------------
|
||
|
// | OneThink [ WE CAN DO IT JUST THINK IT ]
|
||
|
// +----------------------------------------------------------------------
|
||
|
// | Copyright (c) 2013 http://www.onethink.cn All rights reserved.
|
||
|
// +----------------------------------------------------------------------
|
||
|
// | Author: 麦当苗儿 <zuojiazi@vip.qq.com> <http://www.zjzit.cn>
|
||
|
// +----------------------------------------------------------------------
|
||
|
|
||
|
namespace Addons\Attachment;
|
||
|
use Common\Controller\Addon;
|
||
|
|
||
|
/**
|
||
|
* 附件插件
|
||
|
* @author 麦当苗儿 <zuojiazi@vip.qq.com>
|
||
|
*/
|
||
|
class AttachmentAddon extends Addon{
|
||
|
|
||
|
public $info = array(
|
||
|
'name' => 'Attachment',
|
||
|
'title' => '附件',
|
||
|
'description' => '用于文档模型上传附件',
|
||
|
'status' => 1,
|
||
|
'author' => 'thinkphp',
|
||
|
'version' => '0.1'
|
||
|
);
|
||
|
|
||
|
public $admin_list = array(
|
||
|
'list_grid' => array(
|
||
|
'id:ID',
|
||
|
'title:文件名',
|
||
|
'size:大小',
|
||
|
'update_time_text:更新时间',
|
||
|
'document_title:文档标题'
|
||
|
),
|
||
|
'model'=>'Attachment',
|
||
|
'order'=>'id asc'
|
||
|
);
|
||
|
|
||
|
public $custom_adminlist = 'adminlist.html';
|
||
|
|
||
|
public function install(){
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
public function uninstall(){
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
/* 显示文档模型编辑页插件扩展信息表单 */
|
||
|
public function documentEditForm($param = array()){
|
||
|
$this->assign($param);
|
||
|
$this->display(T('Addons://Attachment@Article/edit'));
|
||
|
}
|
||
|
|
||
|
/* 文档末尾显示附件列表 */
|
||
|
public function documentDetailAfter($info = array()){
|
||
|
if(empty($info) || empty($info['id'])){ //数据不正确
|
||
|
return ;
|
||
|
}
|
||
|
|
||
|
/* 获取当前文档附件 */
|
||
|
$Attachment = D('Addons://Attachment/Attachment');
|
||
|
$map = array('record_id' => $info['id'], 'status' => 1);
|
||
|
$list = $Attachment->field(true)->where($map)->select();
|
||
|
if(!$list){ //不存在附件
|
||
|
return ;
|
||
|
}
|
||
|
|
||
|
/* 模板赋值并渲染模板 */
|
||
|
$this->assign('list', $list);
|
||
|
$this->display(T('Addons://Attachment@Article/detail'));
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 文档保存成功后执行行为
|
||
|
* @param array $data 文档数据
|
||
|
* @param array $catecory 分类数据
|
||
|
*/
|
||
|
public function documentSaveComplete($param){
|
||
|
if (MODULE_NAME == 'Home') {
|
||
|
list($data, $category) = $param;
|
||
|
/* 附件默认配置项 */
|
||
|
$default = C('ATTACHMENT_DEFAULT');
|
||
|
|
||
|
/* 合并当前配置 */
|
||
|
$config = $category['extend']['attachment'];
|
||
|
$config = empty($config) ? $default : array_merge($default, $config);
|
||
|
$attach = I('post.attachment');
|
||
|
|
||
|
/* 该分类不允许上传附件 */
|
||
|
if(!$config['is_upload'] || !in_array($attach['type'], str2arr($config['allow_type']))){
|
||
|
return ;
|
||
|
}
|
||
|
|
||
|
switch ($attach['type']) {
|
||
|
case 1: //外链
|
||
|
# code...
|
||
|
break;
|
||
|
case 2: //文件
|
||
|
$info = json_decode(think_decrypt($attach['info']), true);
|
||
|
if(!empty($info)){
|
||
|
$Attachment = D('Addons://Attachment/Attachment');
|
||
|
$Attachment->saveFile($info['name'], $info, $data['id']);
|
||
|
} else {
|
||
|
return; //TODO:非法附件上传,可记录日志
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|