Files
DzzOffice/core/class/table/table_hooks.php

87 lines
2.4 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
/*
* @copyright Leyun internet Technology(Shanghai)Co.,Ltd
* @license http://www.dzzoffice.com/licenses/license.txt
* @package DzzOffice
* @link http://www.dzzoffice.com
* @author zyx(zyx@dzz.cc)
*/
if(!defined('IN_DZZ')) {
exit('Access Denied');
}
class table_hooks extends dzz_table
{
public function __construct() {
$this->_table = 'hooks';
$this->_pk = 'id';
$this->_pre_cache_key = 'hooks_';
$this->_cache_ttl =0;
parent::__construct();
}
public function update_by_appid($appid,$setarr){
if(empty($appid)) return false;
$appid=(array)$appid;
$ids=array();
foreach(DB::fetch_all("select id from %t where app_market_id IN(%n)",array('hooks',$appid)) as $value){
$ids[]=$value['id'];
}
if($ret=parent::update($ids,$setarr)){
self::clear_cache_tags();
}
return $ret;
}
public function delete_by_appid($appid){
if(empty($appid)) return false;
$appid=(array)$appid;
$ids=array();
foreach(DB::fetch_all("select id from %t where app_market_id IN(%n)",array('hooks',$appid)) as $value){
$ids[]=$value['id'];
}
if($ret=parent::delete($ids)){
self::clear_cache_tags();
}
return $ret;
}
public function insert_by_appid($appid,$hooks,$attributes=array()){
if(!$appid) return false;
$ret=0;
foreach($hooks as $name =>$addons){
$priority=0;
$description="";
if( $attributes ){//xml导入时附带其他属性如优先级描述等信息
if(isset($attributes[$name]["_attributes"]) ) {
$priority = isset($attributes[$name]["_attributes"]["priority"])?$attributes[$name]["_attributes"]["priority"]:$priority;
$description = isset($attributes[$name]["_attributes"]["description"])?$attributes[$name]["_attributes"]["description"]:$description;
}
}
if($hid=DB::result_first("select id from %t where name=%s and addons=%s",array($this->_table,$name,$addons))){
if(parent::update($hid,array('app_market_id'=>$appid,'priority'=>$priority,'description'=>$description,'status'=>0))){
$ret+=1;
}
}else{
$data=array(
'app_market_id'=>$appid,
'name'=>$name,
'priority'=>$priority,
'description'=>$description,
'type'=>'1',
'addons'=>$addons,
'status'=>0
);
if(parent::insert($data,1,1)){
$ret+=1;
}
}
}
if($ret) self::clear_cache_tags();
return $ret;
}
public function clear_cache_tags(){
@unlink(DZZ_ROOT.'./data/cache/tags.php');
}
}
?>