织梦58

dede织梦站内选择文件夹和图片文件排序问题

相关案例演示

摘要:织梦站内选择图片排序是直接read()读取直接输出,如果我们同一时间上传了多个图片,在没有经过排序的情况下,我们去选择图片很难快速分辨哪个是刚刚上传的,解决方法是

织梦站内选择图片排序是直接read()读取直接输出,如果我们同一时间上传了多个图片,在没有经过排序的情况下,我们去选择图片很难快速分辨哪个是刚刚上传的,解决方法是读取该目录的文件列表,用"文件名、修改时间"做键值对,塞入数组,注意,是用文件名做键,因为图片有可能是同一个时分秒上传的,并且没有毫秒,我们无法判断哪个是快一秒哪个慢一秒。再对"修改时间"倒序,最后foreach输出即可。

 

 

解决方法

 

打开 \include\dialog\select_images.php 找到

 

1   $dh = dir($inpath);  

 

2   ....(中间代码省略)  

 

3   $dh->close();  

 

146行到245行,把整个代码换成下面的代码
$dh = dir($inpath); $ty1=""; $ty2=""; $filearr = array(); while($file = $dh->read()) { //-----计算文件大小和创建时间 if($file!="." && $file!=".." && !is_dir("$inpath/$file")){ $filetime = filemtime("$inpath/$file"); $filetime = MyDate("Y-m-d H:i:s", $filetime); $filearr[] = $file; $filetimearr[] = $filetime; } if($file == ".") continue; else if($file == "..") { if($activepath == "") continue; $tmp = preg_replace("#[\/][^\/]*$#i", "", $activepath); $line = "\n<tr> <td class='linerow' colspan='2'> <a href='select_images.php?imgstick=$imgstick&v=$v&f=$f&activepath=".urlencode($tmp).$addparm."'><img src=img/dir2.gif border=0 width=16 height=16 align=absmiddle>上级目录</a></td> <td colspan='2' class='linerow'> 当前目录:$activepath</td> </tr> "; echo $line; } else if(is_dir("$inpath/$file")) { if(preg_match("#^_(.*)$#i", $file)) continue; #屏蔽FrontPage扩展目录和linux隐蔽目录 if(preg_match("#^\.(.*)$#i", $file)) continue; $dirarr[] = $file; } }//End Loop $dh->close(); arsort($dirarr); foreach($dirarr as $file) { $line = "\n<tr> <td bgcolor='#F9FBF0' class='linerow' colspan='2'> <a href='select_images.php?imgstick=$imgstick&v=$v&f=$f&activepath=".urlencode("$activepath/$file").$addparm."'><img src=img/dir.gif border=0 width=16 height=16 align=absmiddle>$file</a></td> <td class='linerow'> </td> <td bgcolor='#F9FBF0' class='linerow'> </td> </tr>"; echo "$line"; } array_multisort($filetimearr,SORT_DESC,SORT_STRING, $filearr); array_multisort($filetimearr,SORT_DESC,SORT_STRING, $filetimearr); $result = array_combine($filearr,$filetimearr); foreach($result as $file => $filetime) { $filesize = filesize("$inpath/$file"); $filesize = $filesize / 1024; if($filesize != "") if($filesize < 0.1){ @list($ty1, $ty2) = split("\.", $filesize); $filesize = $ty1.".".substr($ty2, 0, 2); } else{ @list($ty1, $ty2) = split("\.", $filesize); $filesize = $ty1.".".substr($ty2, 0, 1); } if(preg_match("#\.(gif|png)#i", $file)) { $reurl = "$activeurl/$file"; $reurl = preg_replace("#^\.\.#", "", $reurl); if($cfg_remote_site=='Y' && $remoteuploads == 1) { $reurl = $remoteupUrl.$reurl; }else{ $reurl = $reurl; } if($file==$comeback) $lstyle = " style='color:red' "; else $lstyle = ""; $line = "\n<tr> <td align='center' class='linerow' bgcolor='#F9FBF0'> <a href=\"#\" onClick=\"ChangeImage('$reurl');\"><img src='img/picviewnone.gif' width='16' height='16' border='0' align=absmiddle></a> </td> <td class='linerow' bgcolor='#F9FBF0'> <a href=# onclick=\"ReturnImg('$reurl');\" $lstyle><img src=img/gif.gif border=0 width=16 height=16 align=absmiddle>$file</a></td> <td class='linerow'>$filesize KB</td> <td align='center' class='linerow' bgcolor='#F9FBF0'>$filetime</td> </tr>"; echo "$line"; } else if(preg_match("#\.(jpg)#i", $file)) { $reurl = "$activeurl/$file"; $reurl = preg_replace("#^\.\.#", "", $reurl); if($cfg_remote_site=='Y' && $remoteuploads == 1) { $reurl = $remoteupUrl.$reurl; }else{ $reurl = $reurl; } if($file==$comeback) $lstyle = " style='color:red' "; else $lstyle = ""; $line = "\n<tr> <td align='center' class='linerow' bgcolor='#F9FBF0'> <a href=\"#\" onClick=\"ChangeImage('$reurl');\"><img src='img/picviewnone.gif' width='16' height='16' border='0' align=absmiddle></a> </td> <td class='linerow' bgcolor='#F9FBF0'> <a href=# onclick=\"ReturnImg('$reurl');\" $lstyle><img src=img/jpg.gif border=0 width=16 height=16 align=absmiddle>$file</a> </td> <td class='linerow'>$filesize KB</td> <td align='center' class='linerow' bgcolor='#F9FBF0'>$filetime</td> </tr>"; echo "$line"; } }  

后台模板管理按名称排序修改

 

打开 \dede\templets\templets_default.htm 找到

 

1   $dh = dir($templetdird);  

改成
 

1   $files = scandir($templetdird);  

继续找到

 

 

1   while($filename=$dh->read())  

改成

 

1   foreach($files as $filename)  


有问题可以加入织梦技术QQ群一起交流学习

本站vip会员 请加入织梦58 VIP②群 PS:加入时备注用户名或昵称

普通注册会员或访客 请加入织梦58 技术交流②群

作者:DEDE58.CC时间:2020-05-29
首先声明,只要是我们的vip会员所有源码均可以免费下载,不做任何限制(了解更多)
☉本站的源码不会像其它下载站一样植入大量的广告。为了更好的用户体验以后坚持不打水印
☉本站只提供精品织梦源码,源码在于可用,不在多!!希望在这里找到你合适的。
☉本站提供的整站织梦程序,均带数据及演示地址。可以在任一源码详情页查看演示地址
☉本站所有资源(包括源码、模板、素材、特效等)仅供学习与参考,请勿用于商业用途。
☉如有其他问题,请加网站客服QQ进行交流。
相关织梦教程
QQ在线咨询
双语模板 营销型模板 手机模板 响应式模板