1

Тема: Перелистывание на сайте. (Архивы сообщений.)

Вопрос возник такой.
При наличии на сайте статей больше, чем выставленно в настройках (изначально 10), внизу страницы не показывается перелистывание, а просто ссылка на страницу с архивом сообщений.
Есть ли возможность это изменить, вставив туда перелистывание "Назад" "Вперёд" средствами МТ, т.е. не влезая в код?

2

Re: Перелистывание на сайте. (Архивы сообщений.)

Пейджинация — это больная тема для Movable Type. Без влезания в код её точно не сделать.
Я рекомендую делать ссылки «Назад»—«Вперёд», ведущие на архивы по датам (месяц, неделя, день). Во первых, это просто сделать, во-вторых, не добавляется никакой нагрузки на сервер, в третьих, такая страница архива в независимости от наличия новых сообщений будет содержать одни и теже сообщения.
Пример таких архивов можно посмотреть на BoingBoing (handle_url_tag('http://boingboing.net')) или у меня в блоге (handle_url_tag('http://saahov.ru/blog/'))

А при обычной пейджинации содержание страниц меняется, когда добавляется новое сообщение.

3

Re: Перелистывание на сайте. (Архивы сообщений.)

Вот ещё плагин для пейджинации: handle_url_tag('http://www.aldenbates.com/plugins/pagedarchives.html')

4

Re: Перелистывание на сайте. (Архивы сообщений.)

Спасибо, будем экспериментировать 8)

5

Re: Перелистывание на сайте. (Архивы сообщений.)

интересно как работает на boingboing пагинация по категориям, допустим здесь handle_url_tag('http://www.boingboing.net/video/') внизу страницы имеем "Continue Reading Older Posts" и ссылка ведущая сюда - handle_url_tag('http://www.boingboing.net/video/2007/11/#entry-40387')
т.е скипается некоторое колво сообщений (?) или... что-то я заработался, верх туловища не работает ;)

6

Re: Перелистывание на сайте. (Архивы сообщений.)

На Боинге включена публикация архивов категорий по месяцам и в шаблоне такая конструкция:

<div id="continue-reading">
      <MTArchivePrevious>
          <a href="<$MTArchiveLink$>"><span>Continue Reading</span> Older Posts</a>
      </MTArchivePrevious>
</div>

7 Отредактировано liketts (09:12:2007 07:04:28)

Re: Перелистывание на сайте. (Архивы сообщений.)

saahov
большое спасибо за просветление, буду пробовать
плохо что с тегами нет таких трюков

8

Re: Перелистывание на сайте. (Архивы сообщений.)

Я пользуюсь плагином  handle_url_tag('http://www.nonplus.net/software/mt/MTPaginate.htm', 'MTPaginate'). (MT3)

handle_url_tag('http://reg.kost.ru/index.html?page=2')

9

Re: Перелистывание на сайте. (Архивы сообщений.)

Просьба от меня криворукого...
Напишите здесь, плиз, код для перелистования на главной по месяцам, и, если не трудно, для перелистование в посте вперёд/назад по названием постов.
Спасибо заранее!

10 Отредактировано liketts (26:04:2008 18:37:19)

Re: Перелистывание на сайте. (Архивы сообщений.)

"

".str_replace(array('[', '\"'), array('[', '"'), 'vitol')." ".$lang_common['wrote'].":

"Просьба от меня криворукого...
Напишите здесь, плиз, код для перелистования на главной по месяцам, и, если не трудно, для перелистование в посте вперёд/назад по названием постов.
Спасибо заранее!

себя надо любить - это 1 ;)
по существу:

с главной перейти на архивы по месяцам так:

<div id="tuda-suda">
<MTArchiveList archive_type="Monthly" lastn="1">
<a href="<$MTArchiveLink$>">&larr; за весь месяц</a>
</MTArchiveList>
&nbsp;|&nbsp;
<a href="<$MTLink template="archive_index"$>">полный архив</a>
</div>

под каждой новостью сделать навигацию так:

<div id="minus-enrty-plus">
<MTEntryPrevious>
<a href="<$MTEntryPermalink$>">&larr; <$MTEntryTitle remove_html="1"$></a>
</MTEntryPrevious>
<MTEntryNext>
<a href="<$MTEntryPermalink$>"><$MTEntryTitle remove_html="1"$> &rarr;</a>
</MTEntryNext>
</div>

если в движке включены Category-Monthly архивы, то можно сделать внизу каждой категории навигацию по месяцам так:
ищем в шаблоне Entry Listing блок кода начинающийся с

<MTUnless name="datebased_archive">
    <MTIfArchiveType archive_type="Category">

и заменяем весь этот блок начиная с <MTUnless name="datebased_archive"> и заканчивая </MTUnless> на следующее:

<div id="cat-tuda-suda">
<MTUnless name="datebased_archive">
    <MTIfArchiveType archive_type="Category">
<MTIfArchiveTypeEnabled archive_type="Category-Monthly">
<mt:ArchiveList archive_type="Category-Monthly" lastn="1">
<a href="<mt:ArchiveLink>" title="<$MTArchiveTitle encode_html="1"$>" />&larr; ходи назад</a> |
</mt:ArchiveList>
</MTIfArchiveTypeEnabled>
<a href="<$MTLink template="main_index"$>">домой</a> |
<a href="<$MTLink template="archive_index"$>">архив</a>
    </MTIfArchiveType>
<MTElse>
    <MTArchivePrevious>
<a href="<$MTArchiveLink$>" title="<$MTArchiveTitle encode_html="1"$>" />&larr; ходи назад</a> |
    </MTArchivePrevious>
<a href="<$MTLink template="main_index"$>">домой</a> |
<a href="<$MTLink template="archive_index"$>">архив</a>
    <MTArchiveNext>
 | <a href="<$MTArchiveLink$>" title="<$MTArchiveTitle encode_html="1"$>" />ходи вперед &rarr;</a>
    </MTArchiveNext>
</MTUnless>
</div>

[size=10]вот еще что вспомнилось .. vitol посмотрите свой сайт в IE7, надо подправить кой чего, а то подвал больше места занимает чем вся страница - handle_url_tag('http://up.li.ru/?id=351940;macovod.png', 'скриншот тут (1.6мб)')[/size]

11

Re: Перелистывание на сайте. (Архивы сообщений.)

Чтобы сделать пейджинация по датам, нужно:

[listo]
[li]Открыть шаблон «Список записей» (Entry Listing), в нем найти код:

<div class="content-nav">
    <MTArchivePrevious>
    <a href="<$MTArchiveLink$>">&laquo; <$MTArchiveTitle$></a> |
    </MTArchivePrevious>
    <a href="<$MTLink template="main_index"$>">Main Index</a> |
    <a href="<$MTLink template="archive_index"$>">Archives</a>
    <MTArchiveNext>
    | <a href="<$MTArchiveLink$>"><$MTArchiveTitle$> &raquo;</a>
    </MTArchiveNext>
</div>

[/li]
[li]Заменить этот код вот на этот:

<mt:IfArchiveType type="Author">
    <div class="content-nav">
        <mt:ArchiveList archive_type="Author-Monthly" lastn="1">
        <a href="<mt:ArchiveLink>" id="last-link" title="Сообщения за <mt:ArchiveTitle>">&laquo; За весь месяц</a>
        </mt:ArchiveList>
    </div>
</mt:IfArchiveType>
<mt:IfArchiveType type="Category">
    <div class="content-nav">
        <mt:ArchiveList archive_type="Category-Monthly" lastn="1">
        <a href="<mt:ArchiveLink>" id="last-link" title="Сообщения за <mt:ArchiveTitle>">&laquo; За весь месяц</a>
        </mt:ArchiveList>
    </div>
<mt:Else>
    <div class="content-nav">
        <MTArchivePrevious><a href="<$MTArchiveLink$>">&laquo; <$MTArchiveTitle$></a> | </MTArchivePrevious>
        <a href="<$MTLink template="main_index"$>">Главная страница</a> |
        <a href="<$MTLink template="archive_index"$>">Архивы</a>
        <MTArchiveNext> | <a href="<$MTArchiveLink$>"><$MTArchiveTitle$> &raquo;</a></MTArchiveNext>
    </div>
</mt:IfArchiveType>

Сохранить шаблон.

Обратите внимание на первые 2 условия: Author и Category. Код сделан таким образом, что будут публиковаться (если эти архивы активны) ссылки на архивы категорий и авторов по месяцам. Если у вас не публикуются архивы категорий и авторов по месяцам, но, к примеру, публикуются архивы авторов и категорий по дням/неделям/годам, то необходимо изменить атрибут тега ArchiveList — archive_type.
[/li]
[li]В шаблоне главной страницы найти код:

<div class="content-nav">
    <a href="<$MTLink template="archive_index"$>">Archives</a>
</div>

И заменить его вот на этот:

<MTIfArchiveTypeEnabled archive_type="Monthly">
    <div class="content-nav">
    <mt:ArchiveList archive_type="Monthly" lastn="1">
    <a href="<mt:ArchiveLink>" id="last-link" title="Сообщения за <mt:ArchiveTitle>">&laquo; За весь месяц</a>
    </mt:ArchiveList>
    </div>
</MTIfArchiveTypeEnabled>

[/li]
[/listo]
А затем полностью опубликовать блог.

12

Re: Перелистывание на сайте. (Архивы сообщений.)

Ох, так получилось, что мы с liketts опубликовали решение этого вопроса :) Но он первый ))
В общем, на выбор теперь.

13

Re: Перелистывание на сайте. (Архивы сообщений.)

likkets и saahov: Огромное спасибище за подсказки и код! Буду пробовать.

14

Re: Перелистывание на сайте. (Архивы сообщений.)

Сделал как написано в 11 посте.
При попытке публикации выскакивает такая ошибка:
Произошла ошибка во время публикации категория «1»: Ошибка публикации в шаблоне «Список записей категории»: Ошибка в теге &lt;mtIfArchiveType&gt;: Ошибка в теге &lt;mtArchiveList&gt;: Ошибка в теге &lt;mtArchiveLink&gt;: Вы использовали тег &lt;$MTArchiveLink$&gt; для связки с архивом «Category-Monthly», который не публикуется.

Как я понимаю, какие-то настройки у меня не соответствуют отредактированным шаблонам.  А какие и где?

15

Re: Перелистывание на сайте. (Архивы сообщений.)

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

16

Re: Перелистывание на сайте. (Архивы сообщений.)

Никак не могу найти эту настройку. На локалке вроде все точно также, и все публикуется.

17

Re: Перелистывание на сайте. (Архивы сообщений.)

"

".str_replace(array('[', '\"'), array('[', '"'), 'saahov')." ".$lang_common['wrote'].":

"Я рекомендую делать ссылки «Назад»—«Вперёд». Пример таких архивов можно посмотреть на BoingBoing handle_url_tag('http://boingboing.net') или у меня в блоге (handle_url_tag('http://saahov.ru/blog/'))

Подскажите, пожалуйста, как это сделать без плагинов (для категорий).

18

Re: Перелистывание на сайте. (Архивы сообщений.)

Для категорий — никак. И всего одна причина — нет такого тега, который нормально подсчитывал бы количество записей в категориях.

19

Re: Перелистывание на сайте. (Архивы сообщений.)

Андрей, расскажи, пожалуйста, как ты сделал блок "Ещё 10 записей" на главной странице своего блога? Это можно применить для категорий?

20 Отредактировано seo (18:12:2013 08:35:13)

Re: Перелистывание на сайте. (Архивы сообщений.)

Неплохой плагин для реализации листания Page Bute
Реализовал с его помощью разбиение как категорий, архива так и непосредственно записей непосредственно в статике.
Кому интересно - через личку могу кинуть адрес тестового сайта. Минус один - большая нагрузка на базу при публикации. А далее усе хорошо - любую большую запись или категорию можно разбить на нужное количество статических страниц...

Post's attachments

Снимок11.JPG 50.49 kb, file has never been downloaded. 

You don't have the permssions to download the attachments of this post.

21

Re: Перелистывание на сайте. (Архивы сообщений.)

Денис, да, для категорий можно применить, но для каждой категории придётся прописывать rewrite-правила на веб-сервере.
Общий принцип такой же, как и здесь: handle_url_tag('http://movable-type.ru/wiki/Пейджинация_на_PHP_и_Smarty')