Files
Pichome/dzz/alonepage/alonepageinterface.php
2024-03-12 17:49:15 +08:00

252 lines
10 KiB
PHP
Raw Permalink 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
if (!defined('IN_OAOOA')) {//所有的php文件必须加上此句防止被外部调用
exit('Access Denied');
}
//管理权限进入
Hook::listen('adminlogin');
global $_G;
if (isset($_G['setting'])) $setting = $_G['setting'];
else $setting = C::t('setting')->fetch_all();
$navtitle="管理中心-单页管理";
$themeid = isset($_G['setting']['pichometheme']) ? intval($_G['setting']['pichometheme']):1;
$do = isset($_GET['do']) ? trim($_GET['do']):'';
updatesession();
if($do == 'addpage'){//新建单页
if(submitcheck('addpage')){
$pagename = isset($_GET['pagename']) ? getstr($_GET['pagename']):'';
$id = isset($_GET['id']) ? intval($_GET['id']):0;
if(!$pagename) exit(json_encode(['success'=>false,'msg'=>'缺少单页名称']));
if($id && DB::result_first("select id from %t where pagename = %s and id != %d",['pichome_templatepage',$pagename,$id])){
exit(json_encode(['success'=>false,'msg'=>'单页名称已存在']));
}elseif(DB::result_first("select id from %t where pagename = %s and id != %d ",['pichome_templatepage',$pagename,$id])){
exit(json_encode(['success'=>false,'msg'=>'单页名称已存在']));
}
$setarr = [
'pagename'=>$pagename,
'dateline'=>TIMESTAMP
];
if($id) $setarr['id'] = $id;
if($setarr['id'] = C::t('pichome_templatepage')->insertdata($setarr)){
$address = $_GET['address'] ? trim($_GET['address']):'';
$url = 'index.php?mod=alonepage&op=view#id='.$setarr['id'];
$shorturl = C::t('pichome_route')->update_path_by_url($url,$address);
if($setting['pathinfo'] && $shorturl) $setarr['url']=$shorturl;
else $setarr['url']=$url;
}
exit(json_encode(['success'=>true,'data'=>$setarr]));
}else{
$id = isset($_GET['id']) ? intval($_GET['id']):0;
$pagedata = C::t('pichome_templatepage')->fetch($id);
$url = 'index.php?mod=alonepage&op=view#id='.$id;
if($setting['pathinfo']) $path = C::t('pichome_route')->feth_path_by_url($url);
else $path = '';
if($path){
$pagedata['url'] = $path;
}else{
$pagedata['url'] = $url;
}
exit(json_encode(['success'=>true,'data'=>$pagedata]));
}
}elseif($do == 'delpage'){//删除单页
$id = isset($_GET['id']) ? intval($_GET['id']):0;
C::t('pichome_templatepage')->delete_by_id($id);
exit(json_encode(['success'=>true]));
}elseif($do == 'deltag'){//删除标签位
$tid = isset($_GET['tid']) ? intval($_GET['tid']):0;
C::t('pichome_templatetag')->delete_by_tid($tid);
exit(json_encode(['success'=>true]));
}elseif($do == 'deltagdata'){//删除标签数据
$tdid = isset($_GET['tdid']) ? intval($_GET['tdid']):0;
C::t('pichome_templatetagdata')->delete_by_id($tdid);
exit(json_encode(['success'=>true]));
}elseif($do == 'pagelist'){//单页列表
$data = [];
foreach(DB::fetch_all("select * from %t where 1 order by disp asc,dateline asc ",['pichome_templatepage']) as $v){
$v['dateline'] = dgmdate($v['dateline'],'Y-m-d H:i:s');
$url = 'index.php?mod=alonepage&op=view#id='.$v['id'];
if($setting['pathinfo']) $path = C::t('pichome_route')->feth_path_by_url($url);
else $path = '';
if($path){
$v['url'] = $_G['siteurl'].$path;
}else{
$v['url'] = $_G['siteurl'].$url;
}
$data[] = $v;
}
exit(json_encode(['success'=>true,'data'=>$data]));
}elseif($do == 'geturlqrcode'){//获取链接二维码
$id = isset($_GET['id']) ? intval($_GET['id']) : '';
$url = 'index.php?mod=alonepage&op=view#id='.$id;
$sid = 'a_'.$id;
$qrcode = C::t('pichome_route')->getQRcodeBySid($url,$sid);
exit(json_encode(['success'=>true,'qrcode'=>$qrcode]));
}elseif($do == 'sortpage'){//单页排序
$ids = isset($_GET['ids']) ? trim($_GET['ids']):'';
$idarr = explode(',',$ids);
foreach($idarr as $k=>$v){
C::t('pichome_templatepage')->update($v,['disp'=>$k]);
}
exit(json_encode(['success'=>true]));
}elseif($do == 'sorttag'){//标签位排序
$tids = isset($_GET['tids']) ? trim($_GET['tids']):'';
$tidarr = explode(',',$tids);
foreach($tidarr as $k=>$v){
C::t('pichome_templatetag')->update($v,['disp'=>$k]);
}
exit(json_encode(['success'=>true]));
}elseif($do == 'setpage'){//设置单页内容
$id = isset($_GET['id']) ? intval($_GET['id']):0;
$page = C::t('pichome_templatepage')->fetch($id);
if(!$page) exit(json_encode(['success'=>false,'msg'=>'单页不存在']));
$pagedata = $_GET['data'];
$pagetag = [
'tid'=>$pagedata['tid'] ? intval($pagedata['tid']):0,
'tagtype'=>$pagedata['type'],
'tagname'=>$pagedata['title'] ? getstr($pagedata['title']):'',
'dateline'=>TIMESTAMP,
'disp'=>isset($pagedata['disp']) ? intval($pagedata['disp']):0,
'pageid'=>$id,
];
$pagedata['tid'] = C::t('pichome_templatetag')->insertdata($pagetag);
if($pagedata['tid']){
$tagtheme = [
'themeid'=>$themeid,
'style'=>$pagedata['style'] ? serialize($pagedata['style']):'',
'tid'=>$pagedata['tid'],
];
C::t('pichome_templatetagtheme')->insertdata($tagtheme);
foreach($pagedata['data'] as $k=>$v){
$tagdata = [
'id'=>$v['tdid'],
'tid'=>$pagedata['tid'],
'tdata'=>$v['data'],
'type'=>$pagedata['type'],
'tdataname'=>$v['name'] ? getstr($v['name']):$pagetag['tagname'],
'cachetime'=>intval($v['data'][0]['time'])
];
$pagedata['data'][$k]['tdid'] = C::t('pichome_templatetagdata')->insertdata($tagdata);
//更新缓存数据
if($pagetag['tagtype'] == 'file_rec' || $pagetag['tagtype'] == 'db_ids'){
dfsockopen(getglobal('localurl') . 'misc.php?mod=updatepagedata&tdid='.$pagedata['data'][$k]['tdid'], 0, '', '', false, '', 1);
}
}
exit(json_encode(['success'=>true,'data'=>$pagedata]));
}else{
exit(json_encode(['success'=>false,'msg'=>'保存失败']));
}
}elseif($do=='upload'){//上传图片
include libfile( 'class/uploadhandler' );
$options = array( 'accept_file_types' => '/\.(gif|jpe?g|png|svg)$/i',
'upload_dir' => $_G[ 'setting' ][ 'attachdir' ] . 'cache/',
'upload_url' => $_G[ 'setting' ][ 'attachurl' ] . 'cache/',
'thumbnail' => array( 'max-width' => 40, 'max-height' => 40 ) );
$upload_handler = new uploadhandler( $options );
updatesession();
exit();
} elseif($do=='uploadmedia'){//上传图片
include libfile( 'class/uploadhandler' );
$options = array( 'accept_file_types' => '/\.(mp4|flv|mp3|webm|ogg|aac))$/i',
'upload_dir' => $_G[ 'setting' ][ 'attachdir' ] . 'cache/',
'upload_url' => $_G[ 'setting' ][ 'attachurl' ] . 'cache/',
'thumbnail' => array( 'max-width' => 40, 'max-height' => 40 ) );
$upload_handler = new uploadhandler( $options );
updatesession();
exit();
}elseif($do == 'uploadico'){//设置图标
$tid = isset($_GET['tid']) ? intval($_GET['tid']):0;
$aid = isset($_GET['aid']) ? intval($_GET['aid']):0;
$tagdata = C::t('pichome_templatetag')->fetch($tid);
if(!$tagdata){
exit(json_encode(array('success'=>false,'msg'=>'data is not exixts')));
}else{
if($tagdata['aid']){
C::t('attachment')->delete_by_aid($tagdata['aid']);
}else{
C::t('attachment')->addcopy_by_aid($aid);
}
}
exit(json_encode(array('success'=>true)));
}elseif($do == 'getapporsources'){//获取库列表或数据源列表
$stype = isset($_GET['stype']) ? intval($_GET['stype']):0;
$data = [];
if($stype){
$params = ['pichome_smartdata'];
$wheresql = ' 1 ';
//兼容图组
if($stype == 2){
$wheresql .= ' and stype = %d';
$params[] = 1;
}else{
$wheresql .= ' and stype = %d';
$params[] = 0;
}
foreach(DB::fetch_all("select * from %t where $wheresql ",$params) as $v){
$data[] = array('id'=>$v['id'],'name'=>$v['name']);
}
}else{
foreach(DB::fetch_all("select * from %t where isdelete < 1",['pichome_vapp']) as $v){
if ($v['type'] != 3 && !IO::checkfileexists($v['path'],1)) {
continue;
}
$data[] = array('id'=>$v['appid'],'name'=>$v['appname']);
}
}
exit(json_encode(['success'=>true,'data'=>$data]));
}elseif($do == 'getmouldstyle'){//获取模块样式
$mould = isset($_GET['mould']) ? trim($_GET['mould']):'slide';
$themedata = $_G['setting']['pichomethemedata'][$themeid];
$returndata = [];
if(isset($themedata['themestyle'])){
$returndata = $themedata['themestyle'];
}
exit(json_encode(['success'=>true,'data'=>$returndata,'themeid'=>$themeid]));
}elseif($do == 'typecollection'){//获取ku,单页,栏目,专辑
$library = array();
$library = DB::fetch_all("select * from %t where isdelete = 0 order by `disp` asc,dateline desc", array('pichome_vapp'));
$alonepage = DB::fetch_all("select * from %t where 1 order by disp asc,dateline asc ",['pichome_templatepage']);
$banner = C::t('pichome_banner')->getbannerlist(0,1);
$search = array();
$search[] = array('id'=> '0','bannername'=> '全部');
foreach($banner['top'] as $v){
if($v['btype'] == 0 || $v['btype'] == 4){
$search[] = $v;
}
}
$tabstatus = 0;
$tabgroupdata = [];
Hook::listen('checktab', $tabstatus);
if ($tabstatus) {//获取有tab数据
Hook::listen('gettabgroupdata', $tabgroupdata);
}
foreach($tabgroupdata as $k=>$tab){
if(!$tab['available']){
unset($tabgroupdata[$k]);
}
}
exit(json_encode(array('tab' => $tabgroupdata,'library' => $library,'alonepage'=>$alonepage,'banner'=>$banner['top'],'search'=>$search)));
}elseif($do == 'getpagecontent'){//获取单页内容
$id = isset($_GET['id']) ? intval($_GET['id']):0;
$pagedata = C::t('pichome_templatepage')->fetch_data_by_id($id);
exit(json_encode(['success'=>true,'data'=>$pagedata]));
}