表达式引擎 - 有关类别条目的帮助

时间:2011-07-06 10:56:21

标签: php html variables expressionengine

好的,我已经为客户设置了添加项目的渠道。它的工作方式很简单:

我有一个类别页面,显示所选类别中的所有项目。

然后我有一个显示项目的title_permalink页面,在这个页面上有6个来自该类别的最新相关项目,每个项目链接到一个项目/视图页面。在此页面上显示项目,再次显示SAME 6最近的相关项目。

我需要将6个最近的相关项目更改为6个PREVIOUS项目(来自类别),这取决于选择了哪个项目?例如,我按照输入的日期排序了20个项目,我点击了星期五09:30输入的11号。我需要视图页面显示PREVIOUS 6项目(按日期和时间),具体取决于您所在的项目页面。

我搜索过高低,但没有找到任何帮助。我不是要求别人给我答案。我只需要指出正确的方向,为此找到正确的解决方案。

我的项目代码(title_permalink)页面是:

<div id="projectView">
{exp:channel:entries channel="project"}
{exp:imgsizer:size src="{project_image}" width="980px" height="450px"}
<img src="{sized}" width="{width}" height="{height}"/>
{/exp:imgsizer:size}
<div id="projectView_overlay"></div>
<div id="projectView_content">
    <h3>{title}</h3>
    <p class="projectView_floatLeft"><b>Client:</b> {project_client} &ndash; <b>Value:</b> £{project_value} &ndash; <b>Duration:</b> {project_duration} weeks &ndash; <b>Architect:</b> {project_architect}</p>
    <p class="projectView_floatRight" style="color:#fff; font-size: 12.5px; font-weight:bold; margin-bottom: 5px;">{categories}<a href="{path='projects/list'}" style="color:#fff;"><< Back to<br />{category_name}</a>{/categories}</p>
</div>
{/exp:channel:entries}

<br style="clear:both"/>
</div><!--END PROJECT VIEW-->

<ul id="filmStrip">
    {exp:channel:entries start_on="{entry_date format="%Y-%m-%d %H:%i"}" channel="project" limit="6" category_group="1" related_categories_mode="yes" custom_fields="yes"}
    <li>
    {exp:imgsizer:size src="{project_image}" height="68px" width="137px"}
    <a href="{title_permalink='projects/view'}"><img src="{sized}" height="{height}" width="{width}" alt=""/></a>
    {/exp:imgsizer:size}
    <a href="{title_permalink='projects/view'}"><p class="thumbTitle">{title}</p></a>
    </li>
    {/exp:channel:entries}
</ul><!--END FILM STRIP-->

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

channel标签有一个名为start_on = [DATE]的参数。我建议您从之前要提取条目的项目中获取输入日期,然后在相关的条目标记中使用该日期。请注意,您使用变量{exp:channel:entries}来填充另一个频道:entries标记,以便始终提取您想要的项目 - 您不需要对其进行硬编码。

{exp:channel:entries} // This tag gets your single project data
//output your project details here
{exp:channel:entries start_on="{entry_date format="%Y-%m-%d %H:%i"}" channel="project" limit="6" category_group="1" related_categories_mode="yes" custom_fields="yes"} // this tag grabs the last six projects relative to the single project being displayed
{make your links to the projects here}
{/exp:channel:entries}
{/exp:channel:entries}

您需要使用YYYY-MM-DD HH:MM格式,如上所述。

答案 1 :(得分:0)

Dan的答案中的一个缺陷是他正在嵌套两个频道:条目标签。这可能导致灾难。您需要嵌入“相关”模板。另外,我认为您需要stop_before,而不是start_on。试试这个修改过的代码:

<div id="projectView">
{exp:channel:entries channel="project"}
    {exp:imgsizer:size src="{project_image}" width="980px" height="450px"}
<img src="{sized}" width="{width}" height="{height}"/>
{/exp:imgsizer:size}
<div id="projectView_overlay"></div>
<div id="projectView_content">
    <h3>{title}</h3>
    <p class="projectView_floatLeft"><b>Client:</b> {project_client} &ndash; <b>Value:</b> £{project_value} &ndash; <b>Duration:</b> {project_duration} weeks &ndash; <b>Architect:</b> {project_architect}</p>
<p class="projectView_floatRight" style="color:#fff; font-size: 12.5px; font-weight:bold; margin-bottom: 5px;">{categories}<a href="{path='projects/list'}" style="color:#fff;"><< Back to<br />{category_name}</a>{/categories}</p>
</div>

<br style="clear:both"/>
</div><!--END PROJECT VIEW-->

{embed="projects/related" stop_before="{entry_date format="%Y-%m-%d %H:%i"}"}
{/exp:channel:entries}

projects/related看起来像:

{exp:channel:entries channel="project" limit="6" category_group="1" stop_before="{embed:stop_before}" related_categories_mode="yes" custom_fields="yes"}
{if count == "1"}<ul id="filmStrip">{/if}
<li>
{exp:imgsizer:size src="{project_image}" height="68px" width="137px"}
<a href="{title_permalink='projects/view'}"><img src="{sized}" height="{height}" width="{width}" alt=""/></a>
{/exp:imgsizer:size}
<a href="{title_permalink='projects/view'}"><p class="thumbTitle">{title}</p></a>
</li>
{if count == total_results}</ul>{/if}
{/exp:channel:entries}