Искать  
 
   
 
Next/Previous custom fields
Отправлено: 21 Июль 2009 10:54 P.M.   [ Игнорировать ]
Администратор
Avatar
RankRankRankRank
Всего сообщений:  1423
Зарегистрирован  2007-12-27

Приветствую.

Необходима помощь в запросе, который выводил бы следующую и предыдущую запись. Причем не только запись, но и кастом филды.
Т.е. например

Грузовик красный | Грузовик желтый | Грузовик зеленый

Где Грузовк желтый - текущая запись

красный, зеленый, желтый - кастом филды

Здесь есть похожий код, но его еще требуется доработать
http://expressionengine.com/docs/modules/weblog/entry_linking.html#1932

 Подпись 

ExpressionEngine - SEO-ориентированный движок

Профиль
 
 
Отправлено: 22 Июль 2009 12:59 A.M.   [ Игнорировать ]   [ # 1 ]
Студент
RankRank
Всего сообщений:  73
Зарегистрирован  2008-05-21

Более года тому назад отказался от стандартных тегов EE и использую лишь \“Query\” и РНР-вставки. Скажу честно - получил неимоверное чувство свободы...  Я знаю - подавляющее большинство относится к подобным решениям отрицательно (нужно не вспоминать или искать, а думать),  и все-же...  Касательно текущего вопроса - была не так давно подобная задача: разработать графическую навигацию по галере с выводом  первой записи - следующей-предыдущей-последней.  Считаю - нижеизложенный принцип может быть применен к любому блогу EE, и для вывода значений дополнительных полей в том числе.  Схема решения (внимание: номера сегментв 3 и 4 в стандртн. гал. поменяны местами, для удобства использования!)  1. Ищем последнюю запись {maxid}:

{exp:query sql=\"SELECT max(entry_id) AS maxid FROM tbl_gallery_entries WHERE cat_id = \'{SEGM_3}\' AND status = \'o\'\"
  2. Ищем предыдущую запись {previd}:
{exp:query sql=\"SELECT entry_id AS previd FROM tbl_gallery_entries WHERE cat_id = \'{SEGM_3}\' AND entry_id > {SEGM_4} AND status = \'o\' ORDER BY entry_date ASC LIMIT 1\"
  3. Ищем следующую запись {nextid}:
{exp:query sql=\"SELECT entry_id AS nextid FROM tbl_gallery_entries WHERE cat_id = '{SEGM_3}' AND entry_id < {SEGM_4} AND status = 'o' ORDER BY entry_date DESC LIMIT 1"
  4. Ищем первую запись {minid}:
{exp:query sql="SELECT min(entry_id) AS minid FROM tbl_gallery_entries WHERE cat_id = '{SEGM_3}' AND status = 'o'"
  5. Ну а далее - по комбинации сегментов 3/4 вытягиваем все необходимые поля и выводим их в HTML, в данном случае:
{exp:query sql="SELECT cat_folder, filename, width, height, caption, title FROM tbl_gallery_categories c, tbl_gallery_entries e WHERE e.cat_id = c.cat_id AND e.cat_id = '{SEGM_3}' AND e.entry_id='{SEGM_4}' AND e.status = 'o'"

  Удачных решений...

Профиль