表达式引擎 - 帮助表达引擎ul中的静态代码

时间:2011-07-29 10:31:44

标签: php html css expressionengine multiple-entries

我设法对最后一个问题进行排序,但现在似乎无法将我的上一个列表项链接回特定类别中的最新条目。有什么想法吗?

{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-test/view'}"><img src="{sized}" height="{height}" width="{width}" alt=""/></a>
{/exp:imgsizer:size}
<a href="{title_permalink='projects-test/view'}"><p class="thumbTitle">{title}</p></a>
</li>
{if total_results <= '5' AND total_results == count}
    <li>
        <a href="{path='projects-test/view'}/{first_entry_id}"><img src="../../../images/backtostart.jpg" height="68px" width="137px" alt=""/></a>
        <a href="{path='projects-test/view'}/{first_entry_id}"><p class="thumbTitle">Back to start</p></a>
    </li>
{/if}
{if count == total_results}</ul>{/if}
{/exp:channel:entries}

1 个答案:

答案 0 :(得分:0)

一个问题是您在channel:entries循环之外使用{count}{total_results}变量,这些变量无效。

以下是如何以这种方式限制“后退”链接的显示,并链接到该类别中的第一个条目(“首先”我假设您的意思是“最新”):

{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-test/view'}"><img src="{sized}" height="{height}"   width="{width}" alt=""/></a>
    {/exp:imgsizer:size}
    <a href="{title_permalink='projects-test/view'}"><p class="thumbTitle">{title}</p></a>
</li>
{if count == total_results}
    {if count == "5"}
    {categories show_group="1" limit="1"}
    {exp:query sql="SELECT t.entry_id as first_entry_id FROM exp_channel_titles t LEFT JOIN exp_category_posts c ON t.entry_id = c.entry_id WHERE c.cat_id = {category_id} AND t.status = 'open' ORDER BY t.entry_date DESC LIMIT 1"}
    <li>
        <a href="{path='projects-test/view'}/{first_entry_id}"><img src="../../../images/backtostart.jpg" height="68px" width="137px" alt=""/></a>
        <a href="{path='projects-test/view'}/{first_entry_id}"><p class="thumbTitle">Back to start</p></a>
    </li>
    {/exp:query}
    {/categories}
    {/if}
</ul>{/if}
{/exp:channel:entries}

我没有对此进行过测试,所以请告诉我它是否适合。

更新:要尝试让“第一个条目”查询生效的事情:

  • parse="inward"添加到exp:query标记。
  • 尝试直接通过EE控制面板中的SQL管理器运行SQL查询(用category_id替换{category_id}变量),看看是否返回正确的entry_id。
  • 请记住,此代码假定每个项目在该类别组中只分配了一个类别。

我在上面使用的嵌套{if}语句应工作 - 并且最好使用它而不是更新原始帖子的高级语句,因为它会导致查询语句运行每一次。