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