Размещение записи на нескольких страницах

ExpressionEngine поддерживает возможность, с помощью которой вы можете автоматически размещать одну запись/статью на нескольких страницах. Эта особенность особенно полезна для веб журналов или других сайтов, на которых публикуются длинные статьи.

Ниже приведен пример того, как может выглядеть запись раздела при использовании этой возможности:

{exp:weblog:entries weblog="news" paginate_type="field" paginate="bottom"}

<h3>{title}</h3>

{body}

{multi_field="page1|page2|page3|page4"}

<div>Last updated on {edit_date format='%M %d, %Y'} at {edit_date format='%h:%i %A'}<br />
</div>

{paginate}
<p>Page {current_page} of {total_pages} pages for this article {pagination_links}</p>
{/paginate}

{/exp:weblog:entries}

Вы можете заметить, что код имеет много общего с кодом для разбивки на страницы записей разделов и комментариев. Фактически, данная функция очень похожа.

Возможность распределения одной запись раздела на несколько страниц доступна только при отображении одиночной записи. Это означает, что эту возможность можно использовать на странице одиночной записи, типа страницы "комментариев".

Параметры

paginate=

paginate="top" paginate="bottom" paginate="both"

Этот параметр определяет, где будет отображаться код разбивки на страницы для ваших записей раздела или комментариев:

  1. top: Навигационный текст и ссылки будут отображаться сверху списка записей.
  2. bottom: Навигационный текст и ссылки будут отображаться снизу списка записей.
  3. both: Навигационный текст и ссылки будут отображаться и сверху и снизу списка записей.

Если параметр не определен, то блок навигации, по умолчанию, будет отображаться "снизу".

paginate_type=

paginate_type="field"

Добавление этого параметра к вашему тегу weblog entries просто сообщает ExpressionEngine, что необходимо включить эту возможность разбивки на страницы. Существует только одно значение для этого параметра: "field".

Парные переменные

Те же самые парные переменные, которые используются при разбивке на страницы записей разделов и комментариев, будут доступны и здесь. Следующие ссылки указывают на записи для этой функции.

Переменные

Эти специальные переменные, предназначены для использования в парном теге {paginate}.

current_page

{current_page}

Эта переменная содержит номер текущей просматриваемой страницы.

multi_field

{multi_field="summary|body|extended"}

Переменная {multi_field=} это основная часть функции размещения записи раздела на нескольких страницах. В пределах этой переменной вы указываете список полей, разделенных символом вертикальной черты. Эти поля будут использоваться для каждой отдельной страницы. Вот пример работы данной возможности:

  1. Допустим, вы настраиваете раздел, и он содержит (среди других) поля "page1", "page2", "page3", и т.д.
  2. В вашем шаблоне "comments" вы настраиваете переменную {multi_field} следующим образом:

    {multi_field="page1|page2|page3"}
  3. При первом посещении страницы комментариев для любой записи, где в шаблоне присутствует тег {multi_field}, вы увидите содержимое вашего поля "page1", так же, как при использовании обычной переменной {page1}.
  4. Если ваша запись будет иметь содержимое в поле "page2", то вы увидите ссылку "следующая страница".
  5. После щелчка по этой ссылке вы снова увидите вашу запись, только вместо поля {page1} будет выведено поле {page2}.
  6. Так будет продолжаться столько, сколько переменных/страниц вам необходимо.

pagination_links

{pagination_links}

Динамически созданные ссылки нумерации страниц. Они отображают текущую страницу, на которой вы находитесь, а также "окружающие" страницы, а также ссылки на следующую/предыдущую страницы и ссылки на первую/последнюю страницы. Вывод на экран этой переменной выглядит приблизительно так:

« First < 11 12 13 14 15 > Last »

path

{path}

Переменная {path} используется внутри парных переменных {if next_page} и {if previous_page}. Она содержит динамическое значение пути к следующей/предыдущей странице.

total_pages

{total_pages}

Общее количество страниц записей раздела или комментариев, имеющихся у вас.

Наверх страницы