按名称订购$ file - 智能模板

时间:2011-10-07 15:06:42

标签: smarty

我想知道是否有人可以帮助我。我正在使用PodHawk - 一个基本的播客cms,我希望管理区域文件选择按顺序显示我的文件 - 按名称。

select / option下拉列表使用此代码,是否有一种简单的方法可以按名称顺序显示下拉列表。我已经搜索过,但在Smarty文档中找不到任何内容,但我可能使用了错误的术语!

{foreach from=$upload item=file}
    <option value="{$file|escape:'url'}">{$file}</option>
{/foreach}
非常感谢抢劫

非常感谢下面的海报 -

{$upload|@sort:$smarty.const.SORT_NUMERIC} 
{foreach from=$upload item=file}
    <option value="{$file|escape:'url'}">{$file}</option>
{/foreach}

2 个答案:

答案 0 :(得分:1)

cgwyllie忽略了asort()返回一个布尔值,而不是有序数组。所以他的方法不起作用。由于未使用索引,因此不需要(ssociative)排序。

{$_foo = $upload|sort:$smarty.const.SORT_LOCALE_STRING}
{foreach $upload as $file}
  <option value="{$file|escape:'url'}">{$file|escape:"html"}</option>
{/foreach}

应该做的伎俩。确保你真的需要$ file urlencoded,否则改变escape:“url”来逃避:“html”。

(以上是Smarty3语法)

答案 1 :(得分:0)

如果变量$upload包含文件名数组,则应该可以将PHP asort函数(http://php.net/asort)作为smarty修饰符应用于数组。

{foreach from=$upload|@asort item=file}
    <option value="{$file|escape:'url'}">{$file}</option>
{/foreach}

需要@符号将修饰符作为一个整体应用于数组,而不是每个单独的元素。 (见http://www.smarty.net/docsv2/en/language.modifiers.tpl

如果数组的数据结构比字符串更复杂,则以下讨论对您有用:http://www.smarty.net/forums/viewtopic.php?t=1079&postdays=0&postorder=asc&start=0

修改

正如rodneyrehm所提到的,尽管海报在http://www.smarty.net/forums/viewtopic.php?t=1079&postdays=0&postorder=asc&start=0

找到了令人满意的解决方案,但这个解决方案并不完全正确。