moviemodel.php

来自「a short sketch about linux syntex lines.」· PHP 代码 · 共 852 行 · 第 1/2 页

PHP
852
字号
<?php
/*
秀影6.0影片管理模型
QQ:24498936
*/
class MovieModel extends DBModel {
	public function Init(){
		require(ROOT.'config/movie.conf.php');
		$this->mconf = $mconf;
	}
	/*
	影片的地区option
	$param string 默认或者选中的地区名
	*/
	public function AreaOption($default=0){
		$data = '';
		foreach ($this->mconf['area'] as $area){
			if ( $default == $area ){
				$data.= '<option value="'.$area.'" selected="selected" >&nbsp;'.$area.'</option>';
			}else{
				$data.= '<option value="'.$area.'" >&nbsp;'.$area.'</option>';
			}
		}
		return $data;
	}
	/*
	生成播放器option菜单
	@param array 为默认播放器数组
	*/
	public function PlayerOption($default=0){
		$player = new PlayerModel();
		$all = $player->getAll();
		$data = '';
		foreach ($all as $row){
			if ($default == $row['tag']){
				$data.= '<option value="'.$row['tag'].'" selected="selected" >&nbsp;'.$row['name'].'</option>';
			}else{
				$data.= '<option value="'.$row['tag'].'" >&nbsp;'.$row['name'].'</option>';
			}
		}
		unset($all);
		return $data;
	}
	/*
	生成语言checkbox菜单
	@param array 为默认的参数数组
	*/
	public function getLanguage($default = array()){
		$data = '';
		if ( is_array($default) === false ){
			$default =  $this->mconf['defaultlanguage'];
		}
		foreach ( $this->mconf['language'] as $lng){
			if ( in_array($lng, $default ) ){
				$data.= '&nbsp;<input type="checkbox" class="checkbox" name="language[]" value="'.$lng.'" checked="checked" >&nbsp;'.$lng;
			}else{
				$data.= '&nbsp;<input type="checkbox" class="checkbox" name="language[]" value="'.$lng.'" >&nbsp;'.$lng.'';
			}
		}
		return $data;
	}
	/*
	影片服务器的option
	@param array 选中服务器的值
	*/
	public function ServerOption($id=0){
		$server = new ServerModel();
		$data = '';
		$all = $server->getAll('locked=0');
		if (is_array($all)){
			foreach ($all as $row){
				if ($id == $row['self']['sid']){
					$data.= '<option value="'.$row['self']['sid'].'" selected="selected" >'.$row['self']['sid'].'号服务器|'.$row['self']['name'].'|'.$row['self']['helixserver'].'</option>';
				}else{
					$data.= '<option value="'.$row['self']['sid'].'" >'.$row['self']['sid'].'号服务器|'.$row['self']['name'].'|'.$row['self']['helixserver'].'</option>';
				}
				if (is_array($row['nodes'])){
					foreach ($row['nodes'] as $rs){
						if ($id == $rs['sid']){
							$data.= '<option value="'.$rs['sid'].'" selected="selected" >'.$rs['sid'].'号服务器|'.$rs['name'].'|'.$rs['helixserver'].'</option>';
						}else{
							$data.= '<option value="'.$rs['sid'].'" >&nbsp;&nbsp;'.$rs['sid'].'号服务器|'.$rs['name'].'|'.$rs['helixserver'].'</option>';
						}
					}
				}
			}
		}
		unset($all);
		return $data;
	}
	/*
	推荐位置option生成
	*/
	public function getRecmdOption($recommend = array()){
		$data = '';
		if ( is_array($recommend)===false){
			$recommend = $this->mconf['defaultrecommend'];
		}
		foreach ($this->mconf['recommend'] as $val=>$text){
			if (in_array($val, $recommend)){
				$data.= '&nbsp;<input type="checkbox" class="checkbox" value="'.$val.'" checked="checked" name="recmd[]" >&nbsp;'.$text;
			}else{
				$data.= '&nbsp;<input type="checkbox" class="checkbox" value="'.$val.'" name="recmd[]" >&nbsp;'.$text;
			}
		}
		return $data;
	}
	/*
	@param array $POST
	*/
	public function add($POST, $action='add'){
		$this->error = null;
		if (empty($POST['title'])){
			$this->error[] = _('请填写影片名称!');
		}
		if (empty($POST['category'])){
			$this->error[] = _('请选择影片分类!');
		}
		if (empty($POST['player'])){
			$this->error[] = _('请选择影片播放器!');
		}
		if (empty($POST['sid'])){
			$this->error[] = _('请选择影片所在服务器!');
		}
		if (empty($POST['url'])){
			$this->error[] = _('请选择设定影片的路径!');
		}
		if (empty($POST['content'])){
			$this->error[] = _('请填写影片的介绍!');
		}
		if (is_array($this->error)){
			return false;
		}
		if (is_array($POST['category']) === false){
			$POST['category'] = explode(',', $POST['category']);
		}

		if (is_array($POST['player']) === true){
			$POST['player'] = implode(',', $POST['player']);
		}
		if (is_array($POST['sid']) === true){
			$POST['sid'] = implode(',', $POST['sid']);
		}
		if (is_array($POST['language']) === true){
			$POST['language'] = implode(',', $POST['language']);
		}
		if ($POST['urltype'] == 2){
			$POST['url'] = explode("\n", $POST['url']);
		}
		$POST['addtime'] = time();
		$POST['modifytime'] = time();
		$POST['author'] = 'admin';
		$POST['report'] = 0;
		$recommend = $POST['recmd'];
		$category = $POST['category'];
		if (is_array($POST['category'])){
			$POST['category'] = implode(',', $POST['category']);
		}
		//echo($POST['category']);
		//exit;
		$param = $POST['param'];
		$url = $POST['url'];
		$sort = $POST['sort'];
		//print_r($sort);
		$alt = $POST['alt'];
		$urlid = $POST['urlid'];
		$content = $POST['content'];	//内容介绍
		$flag = $POST['flag'];	//点播权限
		$POST['urlcount'] = count($url);
		$POST['letter'] = $this->getLetter($POST['title']);
		unset($POST['recmd'], $POST['url'],
		 $POST['sort'], $POST['alt'],$POST['param'], $POST['ext'],
		 $POST['endnum'], $POST['startnum'], $POST['urlname'],
		 $POST['urlid'], $POST['urltype'], $POST['flag']);
		Easy_Cache::clear(); //清理缓存
		if ($action == 'add'){	//修改模式
			$this->_DB->insert(VODCMS_MOVIE, $POST);
			$movid = $this->_DB->lastInsertId();
			if ($movid){
				$this->addCategory($movid, $category);
				$this->AddRecmd($movid, $recommend);
				$this->AddUrl($movid, $url, $alt, $sort, $param, $flag);
				//$this->setFile($movid, $file);
				//$this->setContent($movid, $content);
			}
			$this->setMidTable($movid);	//更新中间表
			return $movid;
		 }elseif ($action == 'modify'){ //编辑用户
			
		 	$movid = (int)$POST['movid'];
			$row = $this->getRow( $movid );
			if ( $row['pic'] != $POST['pic'] ){
				@unlink(ROOT.$row['pic']);
			}
			if ( $row['otherpic'] != $POST['otherpic'] ){
				@unlink(ROOT.$row['otherpic']);
			}
			if ( $row['bt'] != $POST['bt'] ){
				@unlink(ROOT.$row['bt']);
			}
		 	$this->_DB->update(VODCMS_MOVIE, $POST, 'movid='.(int)$POST['movid']);
		 	$this->addCategory($movid, $category);
		 	$this->AddRecmd($movid, $recommend);
		 	$this->modifyUrl($movid, $url, $alt, $sort, $urlid, $param, $flag);
		 	//$this->setFile($movid, $file);
			//$this->setContent($movid, $content);
			$this->setMidTable($movid); //更新中间表
		 	return true;
		 }
	}
	/*
	public function setFile($movid, $file){
		if ($movid && is_array($file)){
			$this->_DB->delete(VODCMS_FILE, 'movid='.$movid);
			$this->_DB->insert(VODCMS_FILE, array('movid'=>$movid, 'otherpic' => $file['otherpic'], 'pic'=> $file['pic'], 'bt'=> $file['bt']));
			//print_r(array_keys($file));
			//echo $this->_DB->sql;
			return true;
		}else{
			$this->error = _('参数有误!');
			return false;
		}
	}*/
	public function  AddCategory($movid, $category){
		if (is_array($category) === false){
			$category = explode(',', $category);
		}
		$this->_DB->delete(VODCMS_MCLASSID, 'movid='.(int)$movid);
		$Cate = new CategoryModel();
		foreach ($category as $val){
			$row = $Cate->getRow(array('id'=> (int)$val));
			$parent = $row['lable'];
			foreach (explode(',', $parent) as $cid){
				if ($cid){
				$this->_DB->delete(VODCMS_MCLASSID, array('category'=>$cid, 'movid'=> $movid));
		 		$this->_DB->insert(VODCMS_MCLASSID, array('category'=>$cid, 'movid'=> $movid) );
				}
			}
		}
	}
	/*
	获取分类信息
	*/
	public function getCategory($movid){
		$select = $this->_DB->select();
		$sql = $select->from(VODCMS_MCLASSID)->where('movid='.(int)$movid)->toString();
		$data = $this->_DB->fetAll($sql);
		$array = array();
		foreach ($data as $row){
			$array[] = $row['category'];
		}
		unset($data);
		return $array;
	}
	/*
	修改影片路径
	*/
	function modifyurl($movid, $url, $alt ,$sort, $urlid, $param=null, $flag){
		$this->_DB->delete(VODCMS_URL, 'movid='.(int)$movid);
		for($i=0; $i<count($url); $i++){
			$ul = preg_replace('/('.preg_quote('\\').'+)/is','/', $url[$i]);
			$select = $this->_DB->select();
			$sql = $select->from(VODCMS_URL)->where(array('movid'=>$movid, 'url'=>$ul))->toString();
			//echo $sql;
			if ($this->_DB->fetRow($sql)){
				$this->_DB->update(VODCMS_URL,
					array(
					'movid'=>$movid,
					'url'=> $ul,
					'title'=> $alt[$i],
					'sort'=> $sort[$i],
					'params'=> $param[$i],
					'flag'=> intval($flag[$i])
					),
					array('urlid' => $urlid[$i])
				);
				//echo $this->_DB->sql;
			}else{
				$this->_DB->insert(
					VODCMS_URL, 
					array(
						'movid'=> $movid,
						'url'=> $ul,
						'title'=> $alt[$i],
						'sort'=> $sort[$i],
						'urlid'=> $urlid[$i],
						'params'=> $param[$i],
						'flag' => (int)$flag[$i]
					));
				//echo $this->_DB->sql;
			}
		}
	}
	/*
	添加影片路径
	*/
	public function AddUrl($movid, $url, $alt , $sort,  $param=null, $flag){

		for($i=0; $i<count($url); $i++){
			if (empty($alt[$i])){
				$alt[$i] = $i+1;
			}
			if (trim($url[$i])){
				$this->_DB->insert(VODCMS_URL,
				array('movid'=>$movid, 'url'=> str_replace('\\', '/', trim($url[$i])), 'title'=> $alt[$i], 'sort'=> $sort[$i], 'params'=> $param[$i], 'flag'=> (int)$flag[$i]));
			}
		}
	}
	/*
	根据影片编号获取影片所有URL
	*/
	public function getUrl($movid, $field='*'){
		$select = $this->_DB->select();
		$sql = $select->from(VODCMS_URL, $field)->where('movid='.(int)$movid)->order('sort,urlid ASC')->toString();
		return $this->_DB->FetAll($sql);

	}
	/*
	添加影片推荐
	*/
	public function AddRecmd($movid, $recommend){
		if (is_array($recommend) === false){
			$recommend = explode(',', $recommend);
		}
		$this->_DB->delete(VODCMS_RECMD, 'movid='.$movid);
		foreach ($recommend as $val){
		 	$this->_DB->insert(VODCMS_RECMD, array('recmd'=>$val, 'movid'=> $movid) );
		}
	}
	/*
	添加影片介绍
	public function setContent($movid, $content){
		if ($movid && $content){
			$select = $this->_DB->select();
			$sql = $select->from($this->_name6)->where('movid='.(int)$movid)->toString();
			$row = $this->_DB->fetRow($sql);
			if ($row['movid']){
				$this->_DB->update($this->_name6, array('content'=> $content), array('movid'=> (int)$movid));
			}else{
				$this->_DB->insert($this->_name6, array('content' => $content, 'movid' => (int)$movid));
			}
			//echo $this->_DB->sql;
			unset($sql, $row);
			return true;
		}else{
			$this->error = _('参数传递有误!');
			return false;
		}
	}
	*/
	/*
	获取用户推荐数据
	返回数组
	*/
	public function getRecmd($movid){
		$select = $this->_DB->select();
		$sql = $select->from(VODCMS_RECMD)->where('movid='.$movid)->order('movid DESC')->toString();
		$data = $this->_DB->fetAll($sql);
		//echo $sql;
		$array = array();
		foreach ($data as $row){
			$array[] = $row['recmd'];
		}
		unset($data);
		return $array;
	}
	//*/*/
	public function getAll($where=null){
		if (is_array($where)){
			unset($where['controller'], $where['action']);
		}
		$select = $this->_DB->select();
		$sql = $select->from(VODCMS_MOVIE)->where($where)->order('movid DESC')->toString();
		$total = $this->_DB->getCount($sql);
		$this->_Page->set($total);
		$this->printPage = $this->_Page->PrintPage();
		//echo $sql;
		return $this->_DB->fetAll($sql.$this->_Page->limit());
	}
	/*
	search
	影片搜索
	*/
	public function search($POST, $limitpage=true, $pagesize=0, $fileds='a.*'){
		$where = '1=1';
		$cate = new  CategoryModel();
		$POST['keyword'] = urldecode($POST['keyword']);
		$POST['area'] = urldecode($POST['area']);
		if(isset($POST['locked'])) {
			if ($POST['locked'] !='all'){
				$where.= ' AND a.`locked` = '.(int)$POST['locked'];
			}
		}

		if ($POST['area']){
			$where.= ' AND a.`area` = \''.$POST['area'].'\'';
		}
		if ($POST['group'] != 'all' && isset($POST['group'])){
			$where.= ' AND a.`lookgid` = '.(int)$POST['group'];
		}
		if ($POST['keyword'] && $POST['type']){
			if ($POST['checkbox'] == 1){
				$where.=  " AND a.`".$POST['type']."` LIKE '".urldecode($POST['keyword'])."%'";
			}else{
				$where.= " AND a.`".$POST['type']."` LIKE '%".urldecode($POST['keyword'])."%'" ;
			}
		}
		if ((int)$POST['sid']){
			$where.= ' AND FIND_IN_SET('.intval($POST['sid']).', a.`sid`)';
		}
		if ($POST['player']){
			$where.= ' AND FIND_IN_SET(\''.trim($POST['player']).'\', a.`player`)';
		}
		$select = $this->_DB->select();
		$select->from(VODCMS_MOVIE.' AS a', $fileds);
		if ($POST['category']){
			$str = intval($POST['category']);
			$select->join(VODCMS_MCLASSID.' AS b', 'a.movid=b.movid', '');
			$select->where('b.`category` =' .$str);
		}
		$select->where($where);
		if( isset($POST['order'])) {
			if( !$POST['order'] ) {
				$POST['order'] = 'movid';
			}
		}else{

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?