url;
$settings = $options->plugin('HighSlide');
$datas = $db->fetchAll($db->select('gid,image,thumb,sort')->from('table.gallery'));
$isgid = isset($request->gid);
//输出图片列表
if ($request->is('action=loadlist')) {
$filedir = $route->dir;
$files = array();
//按储存获取数据
switch ($settings->storage) {
case 'local' :
$lists = glob(__TYPECHO_ROOT_DIR__.'/'.$filedir.'*[0-9].{gif,jpg,jpeg,png,tiff,bmp,GIF,JPG,JPEG,PNG,TIFF,BMP}',GLOB_BRACE|GLOB_NOSORT);
foreach ($lists as $list) {
$files[] = array('key'=>$list,'fsize'=>filesize($list));
}
break;
case 'qiniu' :
$qiniu = HighSlide_Plugin::qiniuset($settings->qiniuak,$settings->qiniusk);
$bmgr = new Qiniu\Storage\BucketManager($qiniu);
$result = $bmgr->listFiles($settings->qiniubucket,$filedir);
if ($result['0']['items']) {
$files = $result['0']['items'];
} elseif ($result['1']) {
echo '
'._t('七牛云反馈报错:').'
'.$result['1']->message().'
';
}
break;
case 'scs' :
set_error_handler(function($errno,$errstr,$errfile,$errline){
if ($errno == E_USER_WARNING) {
echo ''._t('新浪云SCS反馈报错:').'
'.$errstr.'
';
}
});
$lists = HighSlide_Plugin::scsset($settings->scsak,$settings->scssk)->getBucket($settings->scsbucket,$filedir);
if ($lists) {
foreach ($lists as $list) {
$files[] = array('key'=>$list['name'],'fsize'=>$list['size']);
}
}
break;
case 'nos' :
try {
$lists = HighSlide_Plugin::nosset($settings->nosak,$settings->nosas,$settings->nosep)
->listObjects($settings->nosbucket,array('prefix'=>$filedir))
->getObjectList();
foreach ($lists as $list) {
$files[] = array('key'=>$list->getKey(),'fsize'=>$list->getSize());
}
} catch (Exception $e) {
echo ''._t('网易云NOS反馈报错:').'
'.$e->getMessage().'
';
}
break;
case 'cos' :
$cos = HighSlide_Plugin::cosset($settings->cosrg)->listFolder($settings->cosbucket,$filedir);
if ($cos['message']=='SUCCESS') {
$lists = $cos['data']['infos'];
foreach ($lists as $list) {
$files[] = array('key'=>$list['name'],'fsize'=>$list['filesize']);
}
} else {
echo ''._t('腾讯云COS反馈报错:').'
'.$cos['message'].'
';
}
}
$lists = array();
//整理列表数据
$orders = array();
if ($files) {
foreach ($files as $file) {
$file['key'] = basename($file['key']);
$orders[0===strpos($file['key'],'thumb_') ? substr($file['key'],6,5)+1 : substr($file['key'],0,5)] = $file; //配对排序
}
ksort($orders);
$id = 0;
foreach ($orders as $order) {
$lists[$fileurl.$order['key']] = array(
'id'=>++$id,
'name'=>$order['key'],
'size'=>number_format(ceil($order['fsize']/1024))
);
}
}
//整理相册数据
$iname = array();
$tname = array();
$gid = $isgid ? $request->filter('int')->gid : '';
$urls = array();
foreach ($datas as $data) {
$iname[$data['image']] = array();
$tname[$data['thumb']] = array();
if ($gid==$data['gid']) { //修改模式
$urls = array(array('id'=>'i','url'=>$data['image']),array('id'=>'t','url'=>$data['thumb']));
}
}
//按模式选择数据
$lists = $isgid ? $urls : array_diff_key($lists,array_merge($iname,$tname)); //键名对比
if ($lists) {
$url = '';
$name = '';
$size = '';
$parse = array();
$path = '';
$from = $route->from;
foreach ($lists as $list) {
if ($isgid) {
$url = $list['url'];
$name = $list['id']=='i' ? basename($url) : 'thumb_'.basename($lists['0']['url']);
$size = number_format(ceil(strlen(@file_get_contents($url))/1024)); //直接获取大小
$parse = parse_url($url);
$path = $parse['path'];
$from = HighSlide_Plugin::route($url)->from; //判断url支持
} else {
$name = $list['name'];
$url = $fileurl.$name;
$size = $list['size'];
}
?>
- tab) || 'images'==$request->get('tab')) { ?> class="active w-50" class="w-50">
- get('tab')) { ?> class="active w-50" class="w-50">
fetchAll($db->select('gid')->from('table.gallery')->where('sort = ?',$sort)); ?>
- group)&&$sort==$dsort || $sort==$request->get('group')) { ?> class="current"> '.$sort.''); ?>
tab) || 'images'==$request->get('tab')) { ?>
render(); ?>
render(); ?>