织梦CMS后台模板列表按字母排序方法
<p>我们知道织梦dedecms系统的后台文件, 默认的排序很乱, 不是按名称, 也不是按时间, 如果目录内容很多的话, 很难找到自己想要的文件,实在是太不方便了, 就像下图的排列方式那样,找不到规律。</p>
<p align="center">
<img style="max-width:100%!important;height:auto!important;"title="织梦CMS后台模板列表按字母排序方法" alt="织梦CMS后台模板列表按字母排序方法" align="" src="https://zhuji.jb51.net/uploads/img/202305/df51398119b6a4ef1cc77272d3dbb479.jpg"></p>
<p>
于是想让这些文件列表按名字排序, 看了一下后台的文件, 原来是因为php的函数dir引起的, 以“默认模板管理”在文件列表为例,</p>
<p>
在后台的找到模板文件:/你的后台目录/templets/templets_default.htm (dede为你的后台目录), 打开这个文件找到:</p>
<blockquote>
<ol class="dp-c">
<li class="alt">
<span><span><?php </span></span>
</li>
<li>
<span> </span>
</li>
<li class="alt">
<span>$dh = dir($templetdird); </span>
</li>
<li>
<span> </span>
</li>
<li class="alt">
<span><span class="keyword">while</span><span>($filename=$dh->read()) </span></span>
</li>
<li>
<span> </span>
</li>
<li class="alt">
<span>{ </span>
</li>
<li>
<span> </span>
</li>
<li class="alt">
<span><span class="keyword">if</span><span>(!preg_match(</span><span class="string">"#\.htm#"</span><span>, $filename)) </span><span class="keyword">continue</span><span>; </span></span>
</li>
<li>
<span> </span>
</li>
<li class="alt">
<span>$filetime = filemtime($templetdird.<span class="string">'/'</span><span>.$filename); </span></span>
</li>
<li>
<span> </span>
</li>
<li class="alt">
<span>$filetime = MyDate(<span class="string">"Y-m-d H:i"</span><span>,$filetime); </span></span>
</li>
<li>
<span> </span>
</li>
<li class="alt">
<span>$fileinfo = (isset($fileinfos[$filename]) ? $fileinfos[$filename] : <span class="string">'未知模板'</span><span>); </span></span>
</li>
<li>
<span> </span>
</li>
<li class="alt">
<span>?> </span>
</li>
</ol>
</blockquote>
<p>
替换为</p>
<blockquote>
<ol class="dp-c">
<li class="alt">
<span><span><?php </span></span>
</li>
<li>
<span> </span>
</li>
<li class="alt">
<span> $files = scandir($templetdird); </span>
</li>
<li>
<span> </span>
</li>
<li class="alt">
<span> foreach ($files as $filename) </span>
</li>
<li>
<span> </span>
</li>
<li class="alt">
<span> { </span>
</li>
<li>
<span> </span>
</li>
<li class="alt">
<span> <span class="keyword">if</span><span>(!preg_match(</span><span class="string">"#\.htm#"</span><span>, $filename)) </span><span class="keyword">continue</span><span>; </span></span>
</li>
<li>
<span> </span>
</li>
<li class="alt">
<span> $filetime = filemtime($templetdird.<span class="string">'/'</span><span>.$filename); </span></span>
</li>
<li>
<span> </span>
</li>
<li class="alt">
<span> $filetime = MyDate(<span class="string">"Y-m-d H:i"</span><span>,$filetime); </span></span>
</li>
<li>
<span> </span>
</li>
<li class="alt">
<span> $fileinfo = (isset($fileinfos[$filename]) ? $fileinfos[$filename] : <span class="string">'未知模板'</span><span>); </span></span>
</li>
<li>
<span> </span>
</li>
<li class="alt">
<span> ?> </span>
</li>
</ol>
</blockquote>
<p>
可以看得出来使用了PHP的dir函数导致的, dir()读取的文件是无序的, 现在我们要想办法让他按名字排序, 这里可以改另一个读取目录文件的函数scandir(); 这个函数的文件会按文件名称排序。</p>
頁:
[1]