陈建龙 發表於 2023-6-3 00:00:00

织梦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>&lt;?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-&gt;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>?&gt; </span>
</li>
        </ol>
</blockquote>
<p>
        替换为</p>
<blockquote>
        <ol class="dp-c">
<li class="alt">
                        <span><span>&lt;?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>   ?&gt; </span>
</li>
        </ol>
</blockquote>
<p>
        可以看得出来使用了PHP的dir函数导致的, dir()读取的文件是无序的, 现在我们要想办法让他按名字排序, 这里可以改另一个读取目录文件的函数scandir(); 这个函数的文件会按文件名称排序。</p>
頁: [1]
查看完整版本: 织梦CMS后台模板列表按字母排序方法