遍历pyrocms模板变量中的数组

时间:2011-09-16 15:39:16

标签: php pyrocms

我已经调整了File插件以列出所有文件夹,并在其中列出所有文件。

代码或多或少如此:

$folders = assoc_array_prop($this->file_folders_m->get_all());
$counter = 1;
foreach ($folders as $key => $folder) {
$folder->index = str_pad($counter++, 2, '0', STR_PAD_LEFT);
$this->file_m->where('folder_id', $folder->id);
$files = $this->file_m->get_all();
$folder->files = assoc_array_prop($files);
}
return $folders;

现在,问题是,如何访问模板中每个文件夹的每个$ folder->文件?这似乎不起作用:

{pyro:mymod:file_listing}
    <div class="files_column">
    <h2><span class="files-index">&#123;index}</span> &#123;name}</h2>
{pyro:files}


<div class="file-item">

<span class="file-type">{id}</span>

<div class="file-data">
<span>{filename}</span>
<br/>
<span class="file-links">
<a href="#">View</a>
<a href="#">Download</a>
</span>

</div>
</div>
{/pyro:files}


</div>
{/pyro:mymod:file_listing}

为了澄清这一点......基于我看到数据出现的次数,{files}循环似乎工作正常。问题是我似乎无法访问其属性,如{filename}。

谢谢, 伊格纳西奥

1 个答案:

答案 0 :(得分:1)

我认为你做错的第一件事是使用内部pyro标签{pyro:files},我很确定它只会调用核心pyro:files插件。

我做的一种遍历方式,标签无法实现的目的是使用外部标记的属性来查找内部标记的信息:

像这样:

{pyro:movies:now_showing}

<img src="{img_path}"/>
<p>{pyro:movies:synopsis_snippet id="{movie_id}" length="100"}</p>

{/pyro:movies:now_showing}

所以我使用当前元素中的movie_id从我的插件中获取另一段数据。我的插件有一个now_showing和一个synopsis_snippet函数。

你可以做的是有一个列出文件夹的方法和一个列出文件夹文件的方法:

{pyro:my_plugin:folders}

{pyro:my_plugin:list_files_of_folder id="{attribute to lookup folder}"}
{/pyro:my_plugin:list_files_of_folder}

{/pyro:my_plugin:folders}

希望这会有所帮助。 :)