Expression Engine SQL Query help - последние сообщения от автора

Возможный дубликат:
список выражений для SQL-запросов, написанных авторами

Я пытаюсь создать короткий список боковых панелей последних сообщений с канала, причем каждый пост будет отдельным автором. Может ли кто-нибудь помочь в слиянии этих запросов, я думаю, что у меня (вроде) работает отдельно?

Формат:

screen name
thumbnail
title

этот код запроса создает список, но с именем author_id, а не с именем экрана title работает нормально, но миниатюра не загружается, и путь не записывается должным образом.

{exp:query sql="SELECT t.title, t.author_id FROM exp_channel_titles t 
ORDER BY author_id ASC LIMIT 4"}
{author_id}<br />
<a href="{path=portfolios/gallery/{username}}"><img src="{thumbnail}"></a><br>
<a href="{path=portfolios/gallery/{username}}">{title}</a><br />
{/exp:query} 

Этот код запроса правильно создает путь и имя пользователя, но заголовок просто отображается как {title} thumbnail не загружается.

{exp:query sql="SELECT m.member_id, m.username, m.screen_name, m.avatar_filename FROM exp_members m 
WHERE m.group_id='5' "}
{screen_name}
<a href="{path=portfolios/gallery/{username}}"><img src="{thumbnail}"></a><br>
<a href="{path=portfolios/gallery/{username}}">{title}</a><br />
 {/exp:query} 

Я предполагаю, что мне нужно использовать JOIN, но Im действительно не тот эксперт с SQL-запросами.

thumbnail - это поле в exp_channel_fields - любая идея, как я получаю это в запросе? имя файла для изображения находится в exp_channel_data, но это так:

{filedir_1}13.jpg 

как мне избавиться от

{filedir_1} 

бит или создать путь?

или я должен использовать {exp: channel: там тоже?

Ответ 1

Лучший подход здесь, так как вам нужны ваши настраиваемые поля, нужно сначала найти entry_ids из последних 4 записей от разных авторов, а затем передать их тегу channel:entries через встраивание, используя параметр entry_id.

Это должно работать (обязательно замените channel_id на соответствующее целое число):

{embed="embeds/_latest_per_member" entry_ids="{exp:query sql="SELECT entry_id, author_id FROM exp_channel_titles WHERE entry_date IN( SELECT MAX(entry_date) FROM exp_channel_titles  WHERE status != 'closed' AND channel_id = 1 GROUP BY author_id ) ORDER BY entry_date DESC LIMIT 4" backspace="1"}{entry_id}|{/exp:query}"}

Затем ваш шаблон вставляет /_latest_per_member может выглядеть примерно так:

{exp:channel:entries channel="channel_name" entry_id="{embed:entry_ids}"}
    {author_id}<br />
    <a href="{path=portfolios/gallery/{username}}"><img src="{thumbnail}"></a><br>
    <a href="{path=portfolios/gallery/{username}}">{title}</a><br />
{/exp:channel:entries}