<?php
/*****************************************************************************************
文件: plugins/collection/admin.php
备注: 采集器<后台应用>
版本: 4.x
网站: www.phpok.com
作者: phpok.com
时间: 2015年08月24日 08时45分
*****************************************************************************************/
class admin_collection extends phpok_plugin
{
public $me;
public function __construct()
{
parent::plugin();
$this->me = $this->plugin_info();
}
//全局运行插件,在执行当前方法运行前,调整参数
public function phpok_before()
{
//编写代码;
}
//全局运行插件,在执行当前方法运行后,数据未输出前
public function phpok_after()
{
//编写代码;
}
public function manage()
{
$psize = $this->config['psize'] ? $this->config['psize'] : 30;
$pageid = $this->get($this->config['pageid'],'int');
if(!$pageid){
$pageid = 1;
}
$offset = ($pageid-1) * $psize;
$sql = "SELECT count(id) FROM ".$this->db->prefix."collection";
$total = $this->db->count($sql);
if($total>0){
$pageurl = $this->url('plugin','index','id='.$this->me['id'].'&exec=manage');
$sql = "SELECT c.*,cate.title c_title,p.title p_title FROM ".$this->db->prefix."collection c ";
$sql.= " LEFT JOIN ".$this->db->prefix."project p ON(c.project_id=p.id) ";
$sql.= " LEFT JOIN ".$this->db->prefix."cate cate ON(c.cateid=cate.id) ";
$sql.= " ORDER BY c.id DESC LIMIT ".$offset.",".$psize;
$rslist = $this->db->get_all($sql);
$string = 'home='.P_Lang('首页').'&prev='.P_Lang('上一页').'&next='.P_Lang('下一页').'&last='.P_Lang('尾页').'&half=5';
$string.= '&add='.P_Lang('数量:').'(total)/(psize)'.P_Lang(',').P_Lang('页码:').'(num)/(total_page)&always=1';
$pagelist = phpok_page($pageurl,$total,$pageid,$psize,$string);
$this->assign('pagelist',$pagelist);
$this->assign('pageid',$pageid);
$this->assign('psize',$psize);
$this->assign('pageurl',$pageurl);
$this->assign('rslist',$rslist);
$this->assign('total',$total);
}
$projectlist = $this->model('project')->get_all($_SESSION['admin_site_id'],'id','module>0');
$this->assign('projectlist',$projectlist);
$this->echo_tpl('manage.html');
}
public function collection_set()
{
$tid = $this->get('tid','int');
if($tid){
$sql = "SELECT * FROM ".$this->db->prefix."collection WHERE id='".$tid."'";
$rs = $this->db->get_one($sql);
$this->assign('rs',$rs);
$this->assign('tid',$tid);
}
$projectlist = $this->model('project')->get_all($_SESSION['admin_site_id'],'id','module>0');
$this->assign('plist',$projectlist);
$this->echo_tpl('collection_set.html');
}
public function catelist()
{
$pid = $this->get('pid','int');
if(!$pid){
$this->json('未指定目标ID');
}
$rs = $this->model('project')->get_one($pid,false);
if(!$rs){
$this->json('项目不存在');
}
if(!$rs['module']){
$this->josn('项目未绑定模块');
}
if(!$rs['cate']){
$this->json(true);
}
$catelist = $this->model('cate')->get_all($_SESSION['admin_site_id'],1,$rs['cate']);
$catelist = $this->model('cate')->cate_option_list($catelist);
$this->json($catelist,true);
}
public function collection_setok()
{
$tid = $this->get('tid','int');
$array = array();
$array['title'] = $this->get('title');
if(!$array['title']){
$this->json('主题不能为空');
}
$array['linkurl'] = $this->get('linkurl');
if(!$array['linkurl']){
$this->json('采集的网站不能为空');
}
$array['url_charset'] = $this->get('url_charset');
$array['project_id'] = $this->get('project_id','int');
if(!$array['project_id']){
$this->json('发布目标未设定');
}
$array['cateid'] = $this->get('cateid','int');
$array['listurl'] = $this->get('listurl');
if(!$array['listurl']){
$this->json('未指定列表地址');
}
$array['list_tags_start'] = $this->get('list_tags_start','htmljs');
$array['list_tags_end'] = $this->get('list_tags_end','htmljs');
$array['url_tags'] = $this->get('url_tags');
$array['is_gzip'] = $this->get('is_gzip','int');
$array['is_proxy'] = $this->get('is_proxy','int');
if($array['is_proxy']){
$array['proxy_service'] = $this->get('proxy_service');
$array['proxy_user'] = $this->get('proxy_user');
$array['proxy_pass'] = $this->get('proxy_pass');
}
if($tid){
$this->db->update_array($array,'collection',array('id'=>$tid));
}else{
$myid = $this->db->insert_array($array,'collection');
//保存字段
if(!$myid){
$this->json('保存数据失败');
}
$this->fields_all_add($myid,$array['project_id']);
}
$this->json(true);
}
public function collection_copy()
{
$tid = $this->get('tid','int');
if(!$tid){
$this->json('未指定ID');
}
$pid = $this->get('project_id','int');
if(!$pid){
$this->json('未指定目标项目');
}
$cateid = $this->get('cateid','int');
$sql = "SELECT * FROM ".$this->db->prefix."collection WHERE id='".$tid."'";
$rs = $this->db->get_one($sql);
if(!$rs){
$this->json('数据不存在');
}
unset($rs['id']);
$old_project_id = $rs['project_id'];
$rs['project_id'] = $pid;
$rs['cateid'] = $cateid;
foreach($rs as $key=>$value){
$rs[$key] = addslashes($value);
}
$sql = "INSERT INTO ".$this->db->prefix."collection(title,linkurl,url_charset,project_id,cateid,listurl,list_tags_start,list_tags_end,url_tags,is_gzip,is_proxy,proxy_service,proxy_user,proxy_pass) VALUES('".$rs['title']."','".$rs['linkurl']."','".$rs['url_charset']."','".$rs['project_id']."','".$rs['cateid']."','".$rs['listurl']."','".$rs['list_tags_start']."','".$rs['list_tags_end']."','".$rs['url_tags']."','".$rs['is_gzip']."','".$rs['is_proxy']."','".$rs['proxy_service']."','".$rs['proxy_user']."','".$rs['proxy_pass']."')";
$insert_id = $this->db->insert($sql);
if($insert_id){
if($old_project_id == $rs['project_id']){
$sql = "SELECT * FROM ".$this->db->prefix."collection_tags WHERE cid='".$tid."'";
$tmplist = $this->db->get_all($sql);
if($tmplist){
foreach($tmplist as $key=>$value){
foreach($value as $k=>$v){
$value[$k] = addslashes($v);
}
unset($value['id']);
$value['cid'] = $insert_id;
$this->db->insert_array($value,'collection_tags');
}
}
}else{
$this->fields_all_add($insert_id,$pid);
}
}
$this->json(true);
}
public function collection_del()
{
$tid = $this->get('tid','int');
if(!$tid){
$this->json('未指定ID');
}
$sql = "DELETE FROM ".$this->db->prefix."collection WHERE id='".$tid."'";
$this->db->query($sql);
$sql = "DELETE FROM ".$this->db->prefix."collection_tags WHERE cid='".$tid."'";
$this->db->query($sql);
$sql = "SELECT id FROM ".$this->db->prefix."collection_list WHERE cid='".$tid."'";
$rslist = $this->db->get_all($sql);
if($rslist){
foreach($rslist as $key=>$value){
$sql = "DELETE FROM ".$this->db->prefix."collection_format WHERE lid='".$value['id']."'";
$this->db->query($sql);
}
$sql = "DELETE FROM ".$this->db->prefix."collection_list WHERE cid='".$tid."'";
$this->db->query($sql);
}
$sql = "DELETE FROM ".$this->db->prefix."collection_files WHERE cid='".$tid."'";
$this->db->query($sql);
//删除采集到的图片信息
$this->lib('file')->rm($this->dir_root.'res/tmp'.$tid,'folder');
$this->json(true);
}
public function collection_list()
{
$tid = $this->get('tid','int');
$condition = "1=1";
$pageurl = $this->url('plugin','exec','id=collection&exec=collection_list');
if($tid){
$condition = "l.cid='".$tid."'";
$pageurl .= "&tid=".$tid;
$this->assign('tid',$tid);
$sql = "SELECT * FROM ".$this->db->prefix."collection WHERE id='".$tid."'";
$rs = $this->db->get_one($sql);
$this->assign('rs',$rs);
}
$status = $this->get('status','int');
if($status){
$pageurl .= "&status=".$status;
if($status >= 3){
$condition .= " AND l.status=0 ";
}else{
$condition .= " AND