Expression Engine - Помощь со статическим кодом внутри механизма выражения ul - PullRequest
0 голосов
/ 29 июля 2011

Мне удалось отсортировать последнюю проблему li, но теперь я не могу связать свой последний элемент списка с последней записью в определенной категории. Есть идеи?

{exp:channel:entries channel="project" limit="6" category_group="1" stop_before="{embed:stop_before}" related_categories_mode="yes" custom_fields="yes"}
{if count == "1"}<ul id="filmStrip">{/if}
<li>
{exp:imgsizer:size src="{project_image}" height="68px" width="137px"}
<a href="{title_permalink='projects-test/view'}"><img src="{sized}" height="{height}" width="{width}" alt=""/></a>
{/exp:imgsizer:size}
<a href="{title_permalink='projects-test/view'}"><p class="thumbTitle">{title}</p></a>
</li>
{if total_results <= '5' AND total_results == count}
    <li>
        <a href="{path='projects-test/view'}/{first_entry_id}"><img src="../../../images/backtostart.jpg" height="68px" width="137px" alt=""/></a>
        <a href="{path='projects-test/view'}/{first_entry_id}"><p class="thumbTitle">Back to start</p></a>
    </li>
{/if}
{if count == total_results}</ul>{/if}
{/exp:channel:entries}

1 Ответ

0 голосов
/ 29 июля 2011

Одна проблема заключается в том, что вы используете переменные {count} и {total_results} вне канала: цикл записи, который не будет работать.

Вот как вы можете ограничить отображение "ссылка "назад" таким образом, а также ссылка на первую запись в этой категории (под словом "первый" я предполагаю, что вы имеете в виду "новейший"):

{exp:channel:entries channel="project" limit="6" category_group="1" stop_before="{embed:stop_before}" related_categories_mode="yes" custom_fields="yes"}
{if count == "1"}<ul id="filmStrip">{/if}
<li>
    {exp:imgsizer:size src="{project_image}" height="68px" width="137px"}
    <a href="{title_permalink='projects-test/view'}"><img src="{sized}" height="{height}"   width="{width}" alt=""/></a>
    {/exp:imgsizer:size}
    <a href="{title_permalink='projects-test/view'}"><p class="thumbTitle">{title}</p></a>
</li>
{if count == total_results}
    {if count == "5"}
    {categories show_group="1" limit="1"}
    {exp:query sql="SELECT t.entry_id as first_entry_id FROM exp_channel_titles t LEFT JOIN exp_category_posts c ON t.entry_id = c.entry_id WHERE c.cat_id = {category_id} AND t.status = 'open' ORDER BY t.entry_date DESC LIMIT 1"}
    <li>
        <a href="{path='projects-test/view'}/{first_entry_id}"><img src="../../../images/backtostart.jpg" height="68px" width="137px" alt=""/></a>
        <a href="{path='projects-test/view'}/{first_entry_id}"><p class="thumbTitle">Back to start</p></a>
    </li>
    {/exp:query}
    {/categories}
    {/if}
</ul>{/if}
{/exp:channel:entries}

Я не проверял это, поэтому позвольте мнезнать, если он выбрасывает.

ОБНОВЛЕНИЕ: Что нужно сделать, чтобы запрос «первой записи» заработал:

  • Добавить parse="inward" кexp: тег запроса.
  • Попробуйте выполнить запрос SQL напрямую через диспетчер SQL на панели управления EE (подставив значение category_id для переменной {category_id}), и посмотрите, возвращает ли он правильный entry_id.
  • Помните, что в этом коде предполагается, что каждому проекту будет назначена только одна категория в этой группе категорий.

Вложенный оператор {if}, который я использовал выше , должен работать- и лучше использовать это, чем расширенный, который вы обновили илиiginal пост с, так как это заставит оператор запроса выполняться каждый раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...