PDA

Просмотр полной версии : Сегодняшняя дата FLUID + typoscript


alexk
07.01.2016, 15:11
Приветствую коллеги, недавно вот прочно перешел на fluid в разработке. Сегодня нужно было сделать простую весчь, вывести сегодняшнею дату вида "07 января 2016" на 3 языках, т.е. с транслитом месяца. Очень не хотелось делать по старинке через Typoscript, так что сделал вот так:
1. в locallang.xlf (по умолчанию английский) и ru.locallang +.. пишем месяцы:

<trans-unit id="flux.monthNames.01">
<source>January</source>
</trans-unit>
<trans-unit id="flux.monthNames.02">
<source>February</source>
</trans-unit>
<trans-unit id="flux.monthNames.03">
<source>March</source>
</trans-unit>
<trans-unit id="flux.monthNames.04">
<source>April</source>
</trans-unit>
<trans-unit id="flux.monthNames.05">
<source>May</source>
</trans-unit>
<trans-unit id="flux.monthNames.06">
<source>June</source>
</trans-unit>
<trans-unit id="flux.monthNames.07">
<source>July</source>
</trans-unit>
<trans-unit id="flux.monthNames.08">
<source>August</source>
</trans-unit>
<trans-unit id="flux.monthNames.09">
<source>September</source>
</trans-unit>
<trans-unit id="flux.monthNames.10">
<source>October</source>
</trans-unit>
<trans-unit id="flux.monthNames.11">
<source>>November</source>
</trans-unit>
<trans-unit id="flux.monthNames.12">
<source>December</source>
</trans-unit>

И соответственно переводим их в другие locallang.

2. В нашем fluid шаблоне пишем:

<f:format.date format="d" date="0 days"></f:format.date>
<span class="orange"><f:translate key="flux.monthNames.{f:format.date(date: '0 days', format: 'm')}" /></span>,
<f:format.date format="Y" date="0 days"></f:format.date>

И получим: 07 ЯНВАРЯ, 2016

Т.к. мне нужны были свое написание месяца да и локализация f:format.date показывала только английские названия месяцев, просто добавил свои в locallang.
Думаю так же не сложно будет сделать текущий день недели.
Надеюсь будет кому то полезно! Удачи!

Manas
07.01.2016, 18:23
Пригодится, хорошее решение.

Николай Сипко
15.01.2016, 01:16
Displaying the current date on a web page
http://www.jochenfroehlich.com/en/typoscript/current-date.html

На всякий случай - машинный перевод:
=======
Отображение текущей даты на веб-странице

Вы можете отобразить текущую дату в различных форматах на веб-сайте. Это может быть реализовано с помощью функции PHP strftime в вашем TypoScript записи шаблона:

Current date TypoScript, SETUP section

temp.current_date = TEXT
temp.current_date {
data = date : U
strftime = %A, %e. %B %Y
}

Формат strftime строка %А,%В %е, %Y в приведенном выше примере вывод даты будет в формате "Вторник, 27 июня, 2006" .

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

В соответствии со стандартами ISO, есть еще больше вариантов для функции strftime, чем те, что в примере (будний день, день, месяц и год). Все это также может быть использовано в шаблонах TypoScript. Чтобы получить обзор всех возможных вариантов, пожалуйста, обратитесь к документации функции strftime на официальном PHP веб-сайте
http://php.net/manual/ru/function.strftime.php

alexk
25.04.2016, 17:38
Да как раз typoscript и не хотелось использовать.

Николай Сипко
10.07.2016, 16:08
Да как раз typoscript и не хотелось использовать.

TypoScript в примерах (стр. 78)
http://www.typo3.ru/uploads/media/TYPO3_by_example.pdf

page.10 = TEXT
page.10.field = crdate
page.10.date = d-m-y H:i

выводится
01-07-00 15:48

page.10 = TEXT
page.10.field = crdate
page.10.strftime = %A %e. %B, %I:%M %p

выводится
Saturday 1. July, 03:48 PM

page.10 = TEXT
page.10.field = crdate
page.10.strftime = %A %e. %B, %I:%M %p
config.locale_all = deutsch

выводится
Samstag 1. Juli, 03:48