<?php
if(!defined('IN_DZZ')) {
exit('Access Denied');
}
class table_resources_collect extends dzz_table
{
public function __construct()
{
$this->_table = 'resources_collect';
$this->_pk = 'id';
parent::__construct();
}
public function add_collect_by_rid($rids){
global $_G;
if(!is_array($rids)) $rids = (array)$rids;
$i = 0;
$arr = array();
foreach($rids as $v){
if($data = C::t('resources')->fetch_info_by_rid($v,true)){
$setarr = array(
'rid'=>$v,
'uid'=>$_G['uid'],
'username'=>$_G['username'],
'dateline'=>time(),
'pfid'=>$data['pfid']
);
if (!perm_check::checkperm_Container($data['pfid'], 'read2') && !($_G['uid'] == $data['uid'] && perm_check::checkperm_Container($data['pfid'], 'read1'))) {
continue;
}
if(self::add_collect($setarr)){
$arr['msg'][$v]='success';
$ridarr[]= $v;
$i++;
}else{
$arr['msg'][$v]=array('error'=>lang('explorer_do_failed'));
}
}else{
continue;
}
}
return $arr;
}
public function add_collect($setarr){
if(DB::result_first("select id from %t where rid = %s and uid = %d",array($this->_table,$setarr['rid'],$setarr['uid']))){
return false;
}
if($insert = parent::insert($setarr,1)){
return $insert;
}else{
return false;
}
}
public function cancle_clooect_by_rid_uid($rid,$uid){
if(!$collectinfo = DB::fetch_first("select * from %t where rid = %s",array($this->_table,$rid))){
return array('error'=>lang('collect_file_not_exists'));
}
if($collectinfo['uid'] != $uid){
return array('error'=>lang('no_privilege'));
}
if(DB::delete($this->_table,array('rid'=>$rid,'uid'=>$uid))){
$fileinfo = C::t('resources')->fetch_info_by_rid($rid);
return array('success'=>true,'rid'=>$rid,'name'=>$fileinfo['name']);
}
}
public function delete_usercollect_by_rid($rids){
if(!is_array($rids)) $rids = (array)$rids;
$uid = getglobal('uid');
$i=0;
$return = array();
foreach($rids as $v){
$return = self::cancle_clooect_by_rid_uid($v,$uid);
if(!isset($return['error'])){
$arr['msg'][$return['rid']]='success';
$ridarr[]= $return['rid'];
$i++;
}else{
$arr['msg'][$return['rid']]=$return['error'];
}
}
return $arr;
}
public function delete_by_rid($rid){
if(!is_array($rid)) $rid = (array)$rid;
if(!$collectinfo = DB::fetch_first("select * from %t where rid in (%n)",array($this->_table,$rid))){
return array('error'=>lang('collect_file_not_exists'));
}
if(DB::delete($this->_table,'rid in('.dimplode($rid).')')){
return true;
}
return false;
}
public function delete_by_uid(){
$uid = getglobal('uid');
if(DB::delete($this->_table,array('uid'=>$uid))){
return true;
}else{
return false;
}
}
public function fetch_by_uid($limitsql = '',$ordersql = ''){
$uid = getglobal('uid');
if($return = DB::fetch_all("select * from %t where uid = %d $ordersql $limitsql",array($this->_table,$uid))){
return $return;
}else{
return false;
}
}
public function fetch_rid_by_uid(){
$uid = getglobal('uid');
if($return = DB::fetch_all("select rid from %t where uid = %d",array($this->_table,$uid))){
return $return;
}else{
return false;
}
}
public function fetch_by_rid($rid){
$rid = trim($rid);
$uid = getglobal('uid');
if(DB::result_first("select count(*) from %t where uid = %d and rid = %s",array($this->_table,$uid,$rid))){
return true;
}else{
return false;
}
}
}