ExpressionEngine:帮助订购反向相关条目

我遇到了一些排序反向相关条目的问题。 EE只有一些限制,我正在寻找一个快速解决方案。 任何帮助,您可以提供将不胜感激。

我有两个渠道:注册和学生。 学生有一个关系字段,将每个条目链接到注册频道中的条目。 (我需要继续使用EE关系字段。)

学生频道分配了两个类别组:分数(组#1)和乐器(组#2)。 类别ID#1-6属于成绩类别。

下面的代码实现了我需要做的一半:

{exp:channel:entries channel="registrations" entry_id="{segment_4}" dynamic="no"}
<table>
{reverse_related_entries channel="students"}
{categories show="1|2"}
 <tr>
  <td><?php print $count; ?>.</td>
  <td>{title}</td>
  {embed="_includes/student_print" student_id="{entry_id}"}
 </tr>
{/categories}
{/reverse_related_entries}
</table>
<table>
{reverse_related_entries channel="students"}
{categories show="3|4"}
 <tr>
  <td><?php print $count; ?>.</td>
  <td>{title}</td>
  {embed="_includes/student_print" student_id="{entry_id}"}
 </tr>
{/categories}
{/reverse_related_entries}
</table>
<table>
{reverse_related_entries channel="students"}
{categories show="5|6"}
 <tr>
  <td><?php print $count; ?>.</td>
  <td>{title}</td>
  {embed="_includes/student_print" student_id="{entry_id}"}
 </tr>
{/categories}
{/reverse_related_entries}
</table>
{/exp:channel:entries}

这里是student_print嵌入:

{exp:channel:entries channel="students" entry_id="{embed:student_id}" dynamic="no"}
<td><font size="2">{categories show_group="2"}{category_name}{/categories}</font></td>
<td><font size="2">{categories show_group="1"}{category_name}{/categories}</font></td>
{/exp:channel:entries}

现在 - 我需要做的是按照工具类别组(组#2)中类别的自定义顺序排序反向相关条目。 我只是不知道如何去做我现在正在做的事情(显示三个表格 - 每个表格都显示组1中特定类别的条目),并将它们放入组2中类别的自定义顺序。

再次 - 组#2中的类别采用自定义顺序,我需要以该自定义顺序显示相关条目。 这个很重要。

有任何想法吗? 这可以通过自定义查询完成吗? 如果可能,我真的很感激代码示例。 这是伸展我的EE和SQL印章。

非常感谢你的时间。


我真的不再使用本地关系,对我来说也是太麻烦了。 所以海滩会更好。 但是,我发现这个错误,可能与您的问题有关:http://expressionengine.com/bug_tracker/bug/16373


说实话,我的第一印象是,这是构建这个的错误方式。 太复杂。 但是从外面来说,这很容易说明吗? :)

其次,我不确定你需要这个注册频道,因为它看起来好像你没有使用它的任何数据(除非你已经清除了一些代码)。

但不管如何,这里有一些未经测试的代码。 要点是,您只能使用channel:categories标记按类别排序,然后将{category_id}传递到新channel:entries标记。 如果我们将所有entry_ids的列表传递给每个标签,它应该过滤掉所有不属于您传递的特定{category_id}内容。

{exp:channel:entries channel="registrations" entry_id="{segment_4}" dynamic="no"}
    {embed="_includes/student_print" entry_ids="{reverse_related_entries channel="students" backspace="1"}{entry_id}|{/reverse_related_entries}"}
{/exp:channel:entries}

然后你的嵌入看起来像这样:

{exp:channel:categories channel="students" style="linear" show="1|2"}
{if count == "1"}<table>{/if}
    {exp:channel:entries channel="students" entry_id="{embed:entry_ids}" category="{category_id}" dynamic="no"}
    <tr>
        <td><?php print $count; ?>.</td>
        <td>{title}</td>
        <td><font size="2">{categories show_group="2"}{category_name}{/categories}</font></td>
        <td><font size="2">{categories show_group="1"}{category_name}{/categories}</font></td>      
    </tr>
    {/exp:channel:entries}
{if count == total_results}</table>{/if}
{/exp:channel:categories}

{exp:channel:categories channel="students" style="linear" show="3|4"}
{if count == "1"}<table>{/if}
    {exp:channel:entries channel="students" entry_id="{embed:entry_ids}" category="{category_id}" dynamic="no"}
    <tr>
        <td><?php print $count; ?>.</td>
        <td>{title}</td>
        <td><font size="2">{categories show_group="2"}{category_name}{/categories}</font></td>
        <td><font size="2">{categories show_group="1"}{category_name}{/categories}</font></td>      
    </tr>
    {/exp:channel:entries}
{if count == total_results}</table>{/if}
{/exp:channel:categories}

{exp:channel:categories channel="students" style="linear" show="5|6"}
{if count == "1"}<table>{/if}
    {exp:channel:entries channel="students" entry_id="{embed:entry_ids}" category="{category_id}" dynamic="no"}
    <tr>
        <td><?php print $count; ?>.</td>
        <td>{title}</td>
        <td><font size="2">{categories show_group="2"}{category_name}{/categories}</font></td>
        <td><font size="2">{categories show_group="1"}{category_name}{/categories}</font></td>      
    </tr>
    {/exp:channel:entries}
{if count == total_results}</table>{/if}
{/exp:channel:categories}

我不知道你在那里有$count PHP变量,但是这可能需要修改,因为它现在在嵌入中。

让我知道这是否结果?

链接地址: http://www.djcxy.com/p/11309.html

上一篇: ExpressionEngine: Help w/ Ordering Reverse Related Entries

下一篇: How do I insert inner text into empty xml element?