Дата и время публикации для каждой статьи

TimeМногие пользователи платформы Blogger заметили, что при публикации нескольких статей в один день, дата над ними высвечивается общая. Только время публикации у каждой статьи свое. Мне, если честно, это сразу не понравилось. Захотелось, чтобы у каждой статьи был персональный шильдик, в котором бы указывалась дата и время публикации. Как вы видите из строки сразу под заголовком статьи, у меня это получилось! Настало время и вам узнать о способе сделать подобное...

Хочу сказать сразу, что этот способ покажется вам нестандартным и даже немного граничит с хакерством ;-) Мы задействуем недокументированную функцию платформы Blogger (Blogspot)!

Я буду вас учить, как сделать информационную строку похожей на ту, что вы можете лицезреть в моем блоге под заголовком каждой статьи. В дальнейшем, каждый сможет без труда адаптировать мой метод под свои потребности. Благо это не сложно.

Настройки

Для начала идем в настройки внешнего вида блога (Дизайн->Элементы страницы) и нажимаем в модуле "Сообщения блога" ссылку "Изменить". В открывшемся окне убираем первую галочку в разделе "Параметры Страницы сообщения" - это избавит нас от стандартной строки с датой, общей для статей, опубликованных в один день. Проверяем, чтобы стояли вторая и третья галочка. Именно из этих элементов и будем формировать информационную строку. Напротив второй галочки стандартное "Автор" можете заменить на "Опубликовал", как у меня. Теперь идем в самый низ окна и перетаскиваем пару элементов под "Заголовок сообщения" (те, напротив которых мы только что ставили галочки) так, чтобы они были выстроены в одну строку.

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

Теперь переходим к окну настройки форматирования нашего блога (Настройки->Форматирование) и начинаем хакерское священнодействие :-) Сохраняем в браузере эту страничку настроек как файл. Обычно это делается через меню браузера (Файл->Сохранить как...). Нам нужна только HTML-страница. Укажите это в выпадающем меню, отвечающем за выбор типа файлов.

Открываем сохраненный файл любым простейшим текстовым редактором. Можно и Блокнотом. Ищем в нем строку, начинающуюся с '<form action="/blog-formatting.do"' и дополняем ее до '<form action="http://www.blogger.com/blog-formatting.do"'. Не перепутайте: только дополняем! Остальной код наличествующий в строке, оставляем на месте без изменений. Теперь ищем строку, начинающуюся с '<td><select name="timeStampFormat" id="timeStampFormat">' и дополняем ее до '<td><select name="timeStampFormat" id="timeStampFormat"><option value="29" selected>19 сентября 2011 г. 00:00</option>'. Все, сохраняем файл и закрываем редактор.

Затем запускаем отредактированный файл. Убедитесь, что в поле "Формат отметки времени" стоит "19 сентября 2011 г. 00:00". Если не стоит, посмотрите, нет ли этого пункта в выпадающем меню. Если и там нет, значит вы небрежно отнеслись к выполнению инструкций из предыдущего абзаца. Тем же, кто этот пункт в состоянии выбрать, необходимо нажать внизу страницы кнопку "СОХРАНИТЬ НАСТРОЙКИ".

Можете полюбоваться на сочетание даты и времени в подзаголовке каждой статьи! Полюбовались? Убедились, что дата и время присутствуют, но написаны коряво? То есть имеется "лишний" предлог "на" и, возможно, дата наползает на имя автора и часть текста имеет непонятное подчеркивание и абсолютно ненужную ссылку. Будем это исправлять!

Открываем редактор шаблона (Дизайн->Изменить HTML), ставим галочку напротив "Расширить шаблоны виджета", после чего находим код, сильно похожий на этот:

    <data:top.authorLabel/>
    <span class='fn'></span>
  </b:if>
</span> <span class='post-timestamp'>
  <b:if cond='data:top.showTimestamp'>
    <data:top.timestampLabel/>
  <b:if cond='data:post.url'>
    <a class='timestamp-link' expr:href='data:post.url' rel='bookmark' title='permanent link'><abbr class='published' expr:title='data:post.timestampISO8601'><data:post.timestamp/></abbr></a>
  </b:if>
  </b:if>
...и заменяем его на этот:
<b:if cond='data:top.showAuthor'>
    <data:top.authorLabel/>
    <span class='fn'><b style='color: #138fd8;'><data:post.author/></b></span>
  </b:if>
</span> <span class='post-timestamp'>
  <b:if cond='data:top.showTimestamp'>
  <b:if cond='data:post.url'>
    <data:post.timestamp/>
  </b:if>
  </b:if>
Этим мы убрали избыточные ссылки и задали жирный шрифт и его цвет для имени автора.

Если вы хотите выделить строку курсивом, как у меня, то ищем строку, начинающуюся с ".post-header" и добавляем сразу под ней следующую строку:
.post-header {
font: italic;
[прочие строки кода]
}
Если дата наползает на имя автора (баг платформы Blogger), то находим в шаблоне строку "/* Posts" и вставляем под ней следующий код:
/* Posts
----------------------------------------------- */
.post-timestamp {
    margin-left: 0em !important;
}
Если вам после применения этой методики когда-нибудь понадобится внести изменения на страницы настроек, которые я обозначил как нерекомендуемые к последующей правке, то "дата и время публикации для каждой статьи" изменится на обычное время. Но это поправимо. Достаточно опять сохранить страницу настроек, внести в нее соответствующие изменения с помощью текстового редактора и нажать кнопку "СОХРАНИТЬ НАСТРОЙКИ".

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

Удачных свершений!

Комментариев: 13

  1. Ответы
    1. Если только дату, то удалите тэг <data:post.timestamp/> - он отвечает за нее.

      Удалить
  2. по-моему метод прикрыли уже, но можно поиграть форматом отображения, с помощью комбинации переменных data:post.dateHeader и data:post.timestamp

    ОтветитьУдалить
    Ответы
    1. Есть какие-то реальные причины утверждать, что этот метод больше не работает? Или это так, пальцем в небо?

      Удалить
  3. здравствуйте!! а вот с этого абзаца у меня не получается Открываем сохраненный файл любым простейшим текстовым редактором. Можно и Блокнотом. Ищем в нем строку, начинающуюся с '<form action="/blog-formatting.do"' вот мой файл сохраненный я не знаю как вам выслать

    ОтветитьУдалить
    Ответы
    1. Чем я могу помочь? Я пока не понимаю, что у Вас не так.

      Удалить
  4. я сохраняю файл ,а этих строк нет <'<form action="/blog-formatting.do"' во общем не получилось даты нет в сообщениях

    ОтветитьУдалить
    Ответы
    1. Выложите файл на какой-нибудь обменник. Например на RGhost. Я посмотрю.

      Удалить
    2. Куда??? 8-О
      Я полагал, что Вы ссылку здесь разместите.

      Удалить
  5. Ответы
    1. Посмотрел. Сверил. М-да, описанный в статье метод больше не работает... Попробую как немного освобожусь, покумекать, как можно решить эту задачку.

      Удалить
  6. спасибо большое!! я подожду

    ОтветитьУдалить

Хотите подписать свой комментарий, но у вас нет аккаунта? Выберите в выпадающем списке Имя/URL.
Вы сможете вписать свои имя или ник. Поле для указания URL можно оставить пустым.

Тэги, допустимые в комментариях