1

Тема: Список последних статей

На сайте есть блок последних добавлений (в шаблоне это <!-- s2_last_articles -->). На данный момент ни одной статьи не опубликовано, хоть и созданы (даты создания страниц тоже не указаны):
http://dl.dropbox.com/u/19042430/admin-panel.JPG

Но при этом в блоке они почему-то показываются. Как раз в том порядке, в каком были созданы:
http://dl.dropbox.com/u/19042430/last.JPG
Почему так? Если у страницы нет статуса "Опубликовано", значит и ссылки на эти страницы не должны появляться. Или я что-то не понимаю?

2

Re: Список последних статей

Вы правы, это баг. Я его уже исправил, но релиза с исправлением пока не было. Можете взять последнюю ревизию движка здесь:
http://s2cms.ru/downloads/development/

3

Re: Список последних статей

Скачал, спасибо. Теперь просто перезаписать все файлы на сервере? И как сделать так, чтобы не потерялись изменения, которые я вносил в шаблоны и стили?

4

Re: Список последних статей

Кстати, не пришло уведомление об ответе, хотя подписывался.

5

Re: Список последних статей

Да, нужно перезаписать все файлы.

Шаблоны можно поместить в папку со стилем. Также ее нужно переименовать, чтобы изменения не перезаписались оригинальными файлами. Об этом я написал в документации:
http://s2cms.ru/docs/styles

Если опасаетесь чего-либо, сделайте резервную копию текущих файлов. Если есть вопросы — спрашиваете.

6

Re: Список последних статей

tataRen пишет:

Кстати, не пришло уведомление об ответе, хотя подписывался.

Посмотрел логи. Письмо ночью не отправлялось, а сейчас ушло. Может всё же не подписались?

7

Re: Список последних статей

Спасибо, буду смотреть.

Галочку на уведомление ставил, но несколько раз редактировал сообщение перед отправкой - может убралась. Сейчас  все пришло.

p.s. Вспомнил - я не только шаблоны и файлы стилей правил, а еще articles.php в _include. если я этот файл поменяю в последней ревизии своим измененным, то и исправленный баг слетит?

8

Re: Список последних статей

Если говорить конкретно про этот баг, он исправляется легко:
http://s2cms.ru/trac/changeset/635

Однако между версиями 1.0a5 (ревизия 628) и ревизией 646, которая сейчас выложена как последняя разрабатываемая, были и другие изменения:
http://s2cms.ru/trac/changeset?new=646% … 23%40trunk

Идеологически правильно было бы оформить ваши изменения в отдельное расширение. Тогда можно было бы спокойно обновлять код ядра, не боясь потери изменений. Правда, документации по созданию расширений еще нет, но если вы понимаете английский, можете почитать про разработку расширений PunBB, расширения S2 устроены точно так же.

9

Re: Список последних статей

Я пока только тестирую движок. Так что переустановлю все заново - не проблема.

А вот с расширением я точно не справлюсь - в этих делах я профан.

Спасибо за ответы.

10

Re: Список последних статей

На самом деле с расширениями всё просто. Основу расширения составляет файл manifest.xml, который содержит, помимо информации о расширении, фрагменты php-кода.

Исходный текст движка размечен специальными «хуками», например:

($hook = s2_hook('fn_s2_parse_page_url_start')) ? eval($hook) : null;

Вместо них и подставляются фрагменты кода из manifest.xml. Всё, что вам нужно сделать — найти ближайшие к вашим изменениям хуки и перенести изменения туда. Или попросить меня добавить хук, если существующих не хватает.

11

Re: Список последних статей

Я бы не хотел вас нагружать этим. Но спасибо за предложение. Тем более я еще не со всеми изменениями определился. Я просто хочу где-то убрать, где-то изменить заголовки типа "Еще в разделе" и т.д. Но это долгая история - я все буду делать очень медленно (времени нет). Если будут вопросы, я обращусь к вам.

12

Re: Список последних статей

Сайт у меня почти готов. Помогите, пожалуйста, сделать блок последних добавлений (в шаблоне это <!-- s2_last_articles -->) так, как показано на втором скриншоте (1 пост). Я имею ввиду, чтобы был стандартный список, а не вида по умолчанию: Родительская папка → Заголовок новой статьи.

13

Re: Список последних статей

Проще всего это сделать через CSS:

h2.preview small {
    display: none;
    }

14

Re: Список последних статей

Получилось. Правда, пришлось повозиться, чтобы скрыть все лишнее. :)

15

Re: Список последних статей

Вылезла еще одна проблема. В документации написано: "Когда значение атрибута href совпадает с адресом (URL) текущей страницы, элемент a заменяется элементом span." У меня же на самой странице последних статей почему-то ссылка остается активной, хотя она полностью совпадает с адресом страницы.

16

Re: Список последних статей

Такое преобразование совершается только над шаблоном, когда он только загружается, и когда содержимое меток еще не подставлено.

В вашем случае скорее всего нужно действовать как-то по-другому. Дайте ссылку на страницу, попробую посмотреть.

17

Re: Список последних статей

К сожалению, не могу показать — всё на локальном сервере. Могу рассказать. Во все шаблоны в сайдбар добавлено <!-- s2_last_articles -->. С помощью display: none скрыто все лишнее , оставлены только ссылки. Получается блок ссылок с последними статьями, как на втором скриншоте в первом посте. Код в этом месте получается такой:

<h2 class="preview"><small>Танеев С. И. &rarr;</small> <a href="/taneev/oresteia">Орестея</a></h2><div class="preview time">22 августа 2011 года</div><div class="preview cite">Добавлено полное либретто оперы «Орестея» (Танеев С. И.)</div><h2 class="preview"><small>Пуччини Дж. &rarr;</small> <a href="/puccini/sister-angelica">Сестра Анджелика</a></h2><div class="preview time">22 августа 2011 года</div><div class="preview cite">Добавлено полное либретто оперы «Сестра Анджелика» (Пуччини Дж.)</div><h2 class="preview"><small>Пуччини Дж. &rarr;</small> <a href="/puccini/boheme">Богема</a></h2><div class="preview time">22 августа 2011 года</div><div class="preview cite">Добавлено полное либретто оперы «Богема» (Пуччини Дж.)</div><h2 class="preview"><small>Россини Дж. &rarr;</small> <a href="/rossini/cenerentola">Золушка, или Торжество добродетели</a></h2><div class="preview time">22 августа 2011 года</div><div class="preview cite">Добавлено полное либретто оперы «Золушка, или Торжество добродетели» (Россини Дж.)</div><h2 class="preview"><small>Римский-Корсаков Н. А. &rarr;</small> <a href="/rimsky-korsakov/mozart-and-salieri">Моцарт и Сальери</a></h2><div class="preview time">22 августа 2011 года</div><div class="preview cite">Добавлено полное либретто оперы «Моцарт и Сальери» (Римский-Корсаков Н. А.)</div>

18

Re: Список последних статей

Попробуйте так:

<hook id="idx_template_pre_replace"><![CDATA[
    $replace['<!-- s2_last_articles -->'] = preg_replace('#<a href="'.preg_quote(S2_URL_PREFIX.$request_uri, '#').'">(.*?)</a>#', '\\1', $replace['<!-- s2_last_articles -->']);
]]></hook>

19

Re: Список последних статей

Получилось. Спасибо. Думаю, и другим может пригодиться.

Назвал расширение Last articles in sidebar :)