2012-10-16 29 views
7

Tôi đã gặp một số vấn đề với việc sắp xếp một số mục liên quan ngược lại. Chỉ có một số hạn chế với EE và tôi đang tìm kiếm một giải pháp nhanh chóng. Bất kỳ trợ giúp nào bạn có thể cung cấp sẽ được đánh giá cao.ExpressionEngine: Help w/Ordering Reverse Entries có liên quan

Tôi có hai kênh: đăng ký và học sinh. Học sinh có một trường mối quan hệ liên kết mỗi mục nhập với một mục nhập trong kênh đăng ký. (Tôi cần phải tiếp tục sử dụng trường mối quan hệ EE.)

Kênh sinh viên có hai nhóm danh mục được gán cho nó: điểm (nhóm # 1) và công cụ (nhóm # 2). ID danh mụC# 1-6 nằm trong danh mục điểm.

Các mã sau đây đạt được một nửa những gì tôi cần nó để làm:

{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} 

Đây là nhúng 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} 

Bây giờ - những gì tôi cần nó làm là đặt hàng ngược lại có liên quan các mục của ORDER CUSTOM của các loại trong nhóm category instruments (nhóm # 2). Tôi chỉ không biết làm thế nào để làm những gì tôi đang làm (hiển thị ba bảng - mỗi bảng hiển thị các mục từ các danh mục cụ thể trong nhóm # 1) và đặt chúng theo thứ tự tùy chỉnh của các danh mục trong nhóm # 2.

Một lần nữa - các danh mục trong nhóm # 2 theo thứ tự tùy chỉnh và tôi cần hiển thị các mục có liên quan theo thứ tự tùy chỉnh đó. Cái này quan trọng.

Bất kỳ ý tưởng nào? Điều này có thể được thực hiện với truy vấn tùy chỉnh không? Tôi thực sự sẽ đánh giá cao một ví dụ về mã - nếu có thể. Điều này đang kéo dài phạm vi EE và SQL của tôi.

Cảm ơn bạn rất nhiều vì đã dành thời gian.

Trả lời

1

Thành thật mà nói, ấn tượng đầu tiên của tôi là đây là cách sai để cấu trúc này. Quá phức tạp. Nhưng đó là luôn luôn dễ dàng để nói đến từ bên ngoài phải không? :)

Thứ hai, tôi không chắc chắn bạn cần kênh Đăng ký này vì có vẻ như bạn không sử dụng bất kỳ dữ liệu nào từ nó (trừ khi bạn đã cắt một số mã của mình để rõ ràng)?

Nhưng bất kể, đây là một số mã chưa được kiểm tra. Ý chính là bạn chỉ có thể sắp xếp theo danh mục bằng cách sử dụng thẻ channel:categories và sau đó chuyển {category_id} đến một thẻ channel:entries mới. Nếu chúng ta chuyển một danh sách tất cả các entry_ids cho mỗi thẻ bên trong, nó sẽ lọc ra tất cả các thuộc tính không thuộc về {category_id} cụ thể mà bạn vượt qua.

{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} 

Sau đó nhúng của mình trông như thế này:

{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} 

Tôi không biết điều này biến $count PHP bạn có trong có, nhưng điều đó có thể cần phải sửa đổi vì nó trong nhúng bây giờ.

Hãy cho tôi biết nếu điều này mang bất kỳ loại trái cây nào?

+0

Điều này không thay đổi nhiều lắm.Vấn đề vẫn đang cố gắng để có được kết quả trong từng nhóm trong ba nhóm được sắp xếp theo nhóm thứ 2. Và bây giờ: {loại show_group = "2"} {CATEGORY_NAME} {/ loại} {loại show_group = "1" } {category_name} {/ categories} Cả hai đầu ra category_name cho nhóm # 1. Bất kỳ suy nghĩ nào khác? –

2

Tôi thực sự không sử dụng mối quan hệ bản địa nữa, quá lỗi cho tôi. vì vậy playa sẽ tốt hơn. tuy nhiên, tôi thấy lỗi này, có thể liên quan đến vấn đề của bạn: http://expressionengine.com/bug_tracker/bug/16373