// | ThinkCMF [ WE CAN DO IT MORE SIMPLE ]
// +----------------------------------------------------------------------
// | Copyright (c) 2013-2014 http://www.thinkcmf.com All rights reserved.
// +----------------------------------------------------------------------
// | Author: Dean
// +----------------------------------------------------------------------
namespace Portal\Controller;useCommon\Controller\HomebaseController;class ListController extendsHomebaseController {//ajax提交信息存入数据库开始
public functionad()
{if(empty($_POST))//如果$_POST空,显示添加页面,
{echo ‘您输入的内容不能为空!‘;
}else //如果$_POST不为空,走验证,验证是否成功,添加数据库
{$n = D("posts");$ter = D("term_relationships");//此表是设置添加的文章的object_id,term_id
$sel = $_POST["sel"];$sel = str_replace(‘|‘, ‘‘, $sel);//因为表中某些字段的值用"|"分割读取,所以此方法是把前台传过来的字符串中的"|"过滤掉
$price = $_POST["price"];$price = str_replace(‘|‘,‘‘, $price);$data[‘post_sm‘] = $sel;$data[‘post_status‘] = 0;//添加文章之后,如果不设置为0(设置为1的时候表示审核通过,在前台能直接调取出来),在后台文章里面不显示,管理员无法审核
$data[‘post_tele‘]= $price;$data[‘smeta‘] =‘{"thumb":"portal\\/20170504\\/58f024bc2febf.jpg","template":"articel_esfang","photo":[{"url":"portal\\/20170409\\/58ea3d3dae455.jpg","alt":"\\u88571"},{"url":"portal\\/20170409\\/58ea3d459059f.jpg","alt":"\\u88572"}]}‘;//先把固定的图片的路径存到数据库中,在upload()方法中,如果用户不添加图片的话,此三张图片就为默认图片
if(!empty($sel) && !empty($price))
{$nn = $n->add($data);$dt[‘object_id‘] = $nn;$dt[‘term_id‘] = 55;//自定义
$dt[‘status‘] = 1;$tern = $ter->add($dt);
session(id, $nn);//$nn为此条信息的主键值
if($nn && $tern)
{echo "您发布的信息已传送到后台,请耐心等待审核。。。";
}else{echo "您发布的信息未传送至后台,请重新发布信息或联系客服!";
}
}else{echo "您有重要信息未填写,请返回发布信息页面完善重要信息!";
}
}
}//ajax提交信息存入数据库结束
//图集上传开始
public function upload()//核心:根据id为$nn,修改图片路径(save)
{$nn = session(id);//接收ad方法里面存的session值
$xc = M("posts");$re = M("term_relationships");$upload = new \Think\Upload();//实例化上传类
$upload->maxSize = 3145728; //设置上传文件的大小
$p = $upload->rootPath=‘./data/upload/portal‘; //相对路径
$sp = $patht = $upload->savePath = ‘/‘;//和rootPath配合使用,路径为./Public/Uploads
$upload->saveName = array(‘uniqid‘,‘‘);//上传文件的保存规则,支持数组和字符串方式定义
$upload->exts = array(‘jpg‘, ‘gif‘, ‘png‘, ‘jpeg‘);//上传文件的类型
$upload->autoSub = true;//自动使用子目录保存上传文件 默认为true,
$upload->subName = array(‘date‘,‘Ymd‘);//子目录创建方式,采用数组或者字符串方式定义,和autosub配合使用
$info = $upload->upload();/*var_dump($info);
die();*/
if(!$info)
{//上传错误提示错误信息
//$this->error($upload->getError());
$this->success(‘系统配图中...‘, ‘javascript:history.back(-1);‘,3);
}else{//上传成功
if($info[1] == null || $info[2] == null)//如果第二张或者第三张图片为空值,返回错误信息
{$this->success(‘上传图片数量不够,请重新上传三张图片...‘);$xc->delete($nn);//因为先走ad方法,ajax返回之后再提交表单图片到此方法,所以在表中已经有此条数据,如果用户添加的图片不够,显示错误提示,根据$nn删除两个表中的数据
$re->where("object_id = $nn")->delete();
}else{foreach($info as $key => $f)
{$alt = substr($f[‘sha1‘],3,10);$savepath = substr($f[‘savepath‘], 1,-1);if ($key == 0)//在后台文章中显示第一张图片为缩略图,二、三张为相册图集里面的图片,所以根据thinkcmf的图片路径规则来保存
{$sta = ‘{"‘.‘thumb":"portal\\/‘.$savepath.‘\/‘.$f[‘savename‘].‘","template":"articel_esfang","photo":‘;
}else{$str .= ‘{"‘.‘url":"portal\\/‘.$savepath.‘\/‘.$f[‘savename‘].‘","alt":"‘.$alt.‘"},‘;
}
}$stt = $sta.‘[‘.substr($str,0,-1).‘]}‘;$wh[‘id‘] = $nn;$wh[‘smeta‘] = $stt;$xc->save($wh);//根据$nn修改smeta
session(null);//清session
$this->success(‘图片上传中...‘, ‘javascript:history.back(-1);‘,0);
}
}
}//图集上传结束
}