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" > '.$area.'</option>';
}else{
$data.= '<option value="'.$area.'" > '.$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" > '.$row['name'].'</option>';
}else{
$data.= '<option value="'.$row['tag'].'" > '.$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.= ' <input type="checkbox" class="checkbox" name="language[]" value="'.$lng.'" checked="checked" > '.$lng;
}else{
$data.= ' <input type="checkbox" class="checkbox" name="language[]" value="'.$lng.'" > '.$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'].'" > '.$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.= ' <input type="checkbox" class="checkbox" value="'.$val.'" checked="checked" name="recmd[]" > '.$text;
}else{
$data.= ' <input type="checkbox" class="checkbox" value="'.$val.'" name="recmd[]" > '.$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 + -
显示快捷键?