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}