0

我很惊讶我以前没有遇到过这种情况,或者至少我忘记了我是如何让它工作的。

我有一个标准的 EE 关系字段。在这种情况下,我有一个“产品”频道,每个产品都属于“设计师”频道中的一个条目。

我很明显想要一个页面来列出一个设计师的所有产品。我的第一次尝试是这样的:

{exp:channel:entries channel="designers" url_title="{segment_3}" limit="1"}

    {reverse_related_entries channel="products" limit="15"}
        {snippet_product_grid}
        {snippet_paginate}
    {/reverse_related_entries}

{/exp:channel:entries}

根据EE 文档中的轶事证据,您不能对反向相关条目进行分页。那么解决方案是什么?url_title鉴于设计师的身份,有没有办法轻松获取所有产品条目 ID ?还是我必须求助于使用 SQL?

有什么办法可以使用Stash插件解决这个问题?

4

3 回答 3

5

janvl 对 playa 说的话。使用 stash,您想使用 Mark Croxton 为 {exp:stash:get_list} 添加分页功能的 dev 分支

https://github.com/croxton/Stash/tree/dev#expstashget_list-tag-pair

尚未在本地沙箱上测试此代码,但下面的代码应该可以帮助您入门

{exp:channel:entries channel="designers" url_title="{segment_3}" limit="1"}
    {exp:stash:set_list name="related_products" parse_tags="yes"}
        {reverse_related_entries channel="products"}
            {stash:st_item_title}{title}{/stash:st_item_title}
        {/reverse_related_entries}
    {/exp:stash:set_list}
{/exp:channel:entries}


{exp:stash:get_list name="related_products" parse_tags="yes" parse_conditionals="yes" prefix="my_prefix" paginate="bottom"}

    {if my_prefix:count == 1}<ul>{/if}
        <li>{st_item_title}</li>
    {if my_prefix:count == my_prefix:total_results}</ul>{/if}

    {if my_prefix:no_results}
        <p>No related products</a></p>
    {/if}

    {my_prefix:paginate}
        {pagination_links}
            <ul>
                {first_page}
                        <li><a href="{pagination_url}" class="page-first">First Page</a></li>
                {/first_page}

                {previous_page}
                        <li><a href="{pagination_url}" class="page-previous">Previous Page</a></li>
                {/previous_page}

                {page}
                        <li><a href="{pagination_url}" class="page-{pagination_page_number} {if current_page}active{/if}">{pagination_page_number}</a></li>
                {/page}

                {next_page}
                        <li><a href="{pagination_url}" class="page-next">Next Page</a></li>
                {/next_page}

                {last_page}
                        <li><a href="{pagination_url}" class="page-last">Last Page</a></li>
                {/last_page}
            </ul>
        {/pagination_links}
    {/my_prefix:paginate}

{/exp:stash:get_list}
于 2012-11-05T12:22:16.750 回答
5

你可以使用 playa 来建立你的关系。

据我所知,您应该能够在 playa 中对相关条目进行分页: https ://getsatisfaction.com/pixelandtonic/topics/pagination_in_playa#reply_6602199

于 2012-11-05T09:16:54.317 回答
0

是的,您可以对 Playa 关系进行分页,因为它们的行为类似于指向另一个通道的嵌入式第二个循环。因此,您可以选择 stash 路线(当然,除了这种分页需求之外,它还提供许多好处),或者如果您将关系字段转换为 Playa 字段,您也可以采用这种方式进行分页。

于 2012-11-05T15:00:18.467 回答