Просмотр полной версии : вывод даты в виде: 12 мартобря 2006 г.
Valery Romanchev
17.05.2006, 16:43
config.cache_clearAtMidnight = 1
lib.data_top = COA
lib.data_top.10=TEXT
lib.data_top.10{
data= date:U
strftime= %e
}
lib.data_top.20 = CASE
lib.data_top.20 {
key.data = date:U
key.strftime= %m
01 = TEXT
01.value = января
02 = TEXT
02.value = февраля
03 = TEXT
03.value = марта
04 = TEXT
04.value = апреля
05 = TEXT
05.value = мая
06 = TEXT
06.value = июня
07 = TEXT
07.value = июля
08 = TEXT
08.value = августа
09 = TEXT
09.value = сентября
10 = TEXT
10.value = октября
11 = TEXT
11.value = ноября
12 = TEXT
12.value = декабря
stdWrap.wrap = |
}
lib.data_top.30=TEXT
lib.data_top.30{
data= date:U
strftime= %Y
wrap = | г.
}
см. также
http://www.mcuniverse.com/05/Current_Date.83.0.html
А вот сделать такой финт ушами не с текущей датой, а с датой из поля я не смог. В сорсы не смотрел на эту тему, но судя по всему stdWrap.strftime происходит после stdWrap.cObject и других контент-преобразовательных функций и до всяких wrap'ов.
То есть делмаем например
text = TEXT
text {
field = tstamp
strftime = %m
cObject = CASE
...
}
и получаем на выходе "январь" или "January" в зависимости от локали (исходя из 1 января 1970 года)
А так:
text = COA
text.10 = TEXT
text.10.field = tstamp
text.10.strftime = %e
text.20 = CASE
text.20.key.field = tstamp
text.20.key.strftime = %m
и далее по тексту?
Неверный пример привел. Суть в том что нет field. Есть только контент этого поля, который передается в stdWrap. Конкретно я боролся с выдачей даты в новостях (tt_news).
Сниппет для tt_news:
plugin.tt_news.displayList.date_stdWrap{
strftime >
cObject = COA
cObject.10 = TEXT
cObject.10{
field = datetime
strftime = %d
}
cObject.20 = CASE
cObject.20{
key.field = datetime
key.strftime = %m
01 = TEXT
01.value = января
02 = TEXT
02.value = февраля
03 = TEXT
03.value = марта
04 = TEXT
04.value = апреля
05 = TEXT
05.value = мая
06 = TEXT
06.value = июня
07 = TEXT
07.value = июля
08 = TEXT
08.value = августа
09 = TEXT
09.value = сентября
10 = TEXT
10.value = октября
11 = TEXT
11.value = ноября
12 = TEXT
12.value = декабря
stdWrap.wrap = |
}
cObject.30 = TEXT
cObject.30{
field = datetime
strftime = %Y
wrap = | г.
}
}
config.cache_clearAtMidnight = 1
lib.data_top = COA
lib.data_top.10=TEXT
lib.data_top.10{
data= date:U
strftime= %e
}
lib.data_top.20 = CASE
lib.data_top.20 {
key.data = date:U
key.strftime= %m
01 = TEXT
01.value = января
02 = TEXT
02.value = февраля
03 = TEXT
03.value = марта
04 = TEXT
04.value = апреля
05 = TEXT
05.value = мая
06 = TEXT
06.value = июня
07 = TEXT
07.value = июля
08 = TEXT
08.value = августа
09 = TEXT
09.value = сентября
10 = TEXT
10.value = октября
11 = TEXT
11.value = ноября
12 = TEXT
12.value = декабря
stdWrap.wrap = |
}
lib.data_top.30=TEXT
lib.data_top.30{
data= date:U
strftime= %Y
wrap = | г.
}
см. также
http://www.mcuniverse.com/05/Current_Date.83.0.html
Попробовал использовать для вывода даты, число при этом почему то не отображается.
Очень хорошо, спасибо. С месяцами все ясно, а как насчет дней недели? Написал 30 = CASE
30 {
key.data = date:U
key.strftime = %A
01 = TEXT
01.value = понедельник
02 = TEXT
02.value = вторник
03 = TEXT
03.value = среду
04 = TEXT
04.value = четверг
05 = TEXT
05.value = пятницу
06 = TEXT
06.value = субботу
07 = TEXT
07.value = воскресенье
stdWrap.wrap = |
}..., не работает, почему?
Потому что надо %A (полное название дня недели в текущей локали) заменить на %u (номер дня недели: 1-7). 01-07 соответственно заменить на 1-7.
http://ru2.php.net/strftime
Результат30 = CASE
30 {
key.data = date:U
key.strftime = %u
1 = TEXT
1.value = понедельник
2 = TEXT
2.value = вторник
3 = TEXT
3.value = среду
4 = TEXT
4.value = четверг
5 = TEXT
5.value = пятницу
6 = TEXT
6.value = субботу
7 = TEXT
7.value = воскресенье
stdWrap.wrap = |
}Работает.
Воспользовалась кодом с этой темы. Замечательно работает для list. А можно ли сделать, чтобы то же самое работало и для latest и для single? Вставка того же куска, только с заменой
plugin.tt_news.displayList.date_stdWrap{
на
plugin.tt_news.displayLatest.date_stdWrap{
не помогла, да и не рационально это.
Может кто подкинет кусочек кода, чтобы все разом, а?
Вы должно быть, что-то не правильно прописали, будьте внимательны. Я, к примеру, написал вот так,plugin.tt_news {
displayLatest {
date_stdWrap {
strftime >
cObject = COA
cObject.10 = TEXT
cObject.10 {
field = datetime
strftime = %d
}
cObject.20 = CASE
cObject.20 {
key.field = datetime
key.strftime = %m
01 = TEXT
01.value = сiчня
02 = TEXT
02.value = лютого
03 = TEXT
03.value = марта
04 = TEXT
04.value = квітня
05 = TEXT
05.value = травня
06 = TEXT
06.value = червня
07 = TEXT
07.value = липня
08 = TEXT
08.value = серпня
09 = TEXT
09.value = вересня
10 = TEXT
10.value = жовтня
11 = TEXT
11.value = листопада
12 = TEXT
12.value = грудня
stdWrap.wrap = |
}
cObject.30 = TEXT
cObject.30 {
field = datetime
strftime = %Y
wrap = | року.
}
}
}
}…(наименование месяцев на украинском языке.), и это у меня лично работает.
Спасибо за ответ, но ваш код у меня не работает. Странно...
И этот не работает:
plugin.tt_news.displayLatest.date_stdWrap{
strftime >
cObject = COA
cObject.40 = TEXT
cObject.40{
field = datetime
strftime = %d
}
cObject.50 = CASE
cObject.50{
key.field = datetime
key.strftime = %m
01 = TEXT
01.value = января
02 = TEXT
02.value = февраля
03 = TEXT
03.value = марта
04 = TEXT
04.value = апреля
05 = TEXT
05.value = мая
06 = TEXT
06.value = июня
07 = TEXT
07.value = июля
08 = TEXT
08.value = августа
09 = TEXT
09.value = сентября
10 = TEXT
10.value = октября
11 = TEXT
11.value = ноября
12 = TEXT
12.value = декабря
stdWrap.wrap = |
}
cObject.60 = TEXT
cObject.60{
field = datetime
strftime = %Y
wrap = | г.
}
}
Для LIST, LATEST, SINGLE
# Фиксим локаль для новостей
[globalVar = GP:L = 1]
[else]
plugin.tt_news {
displayLatest {
date_stdWrap >
date_stdWrap {
strftime >
cObject = COA
cObject.10 = TEXT
cObject.10{
field = datetime
strftime = %e
}
cObject.20 = CASE
cObject.20{
key.field = datetime
key.strftime = %m
01 = TEXT
01.value = января
02 = TEXT
02.value = февраля
03 = TEXT
03.value = марта
04 = TEXT
04.value = апреля
05 = TEXT
05.value = мая
06 = TEXT
06.value = июня
07 = TEXT
07.value = июля
08 = TEXT
08.value = августа
09 = TEXT
09.value = сентября
10 = TEXT
10.value = октября
11 = TEXT
11.value = ноября
12 = TEXT
12.value = декабря
stdWrap.wrap = |
}
cObject.30 = TEXT
cObject.30{
field = datetime
strftime = %Y
wrap = | г.
}
}
}
displaySingle.date_stdWrap >
displaySingle.date_stdWrap < .displayLatest.date_stdWrap
displayList.date_stdWrap >
displayList.date_stdWrap < .displayLatest.date_stdWrap
}
[global]
_Michael
01.04.2008, 17:10
А как сделать чтоб в AMENU тоже название месяца выводилось не December а к примеру Грудень (на укр.)?
Спасибо за код, то что надо!
Но действительно интересно как и в AMENU сделать их русскими. Конструкция типа:
displayArchive.date_stdWrap >
displayArchive.date_stdWrap < .displayLatest.date_stdWrap
или
displayAmenu.date_stdWrap >
displayAmenu.date_stdWrap < .displayLatest.date_stdWrap
не помогает.
И вопрос по календарю newscalendar
Этот код :
config.cache_clearAtMidnight = 1
lib.calendar = COA
lib.calendar.10=TEXT
lib.calendar.10{
data= date:U
strftime= %d
wrap = <center><b><font size="-1" align="right"> Сегодня |
}
lib.calendar.20 = CASE
lib.calendar.20 {
key.data = date:U
key.strftime= %m
01 = TEXT
01.value = января
02 = TEXT
02.value = февраля
03 = TEXT
03.value = марта
04 = TEXT
04.value = апреля
05 = TEXT
05.value = мая
06 = TEXT
06.value = июня
07 = TEXT
07.value = июля
08 = TEXT
08.value = августа
09 = TEXT
09.value = сентября
10 = TEXT
10.value = октября
11 = TEXT
11.value = ноября
12 = TEXT
12.value = декабря
stdWrap.wrap = |
}
lib.calendar.30=TEXT
lib.calendar.30{
data= date:U
strftime= %Y
wrap = | г.
}
lib.calendar.40 = CASE
lib.calendar.40 {
data = date:U
strftime = %u
1 = TEXT
1.value = понедельник
2 = TEXT
2.value = вторник
3 = TEXT
3.value = среда
4 = TEXT
4.value = четверг
5 = TEXT
5.value = пятница
6 = TEXT
6.value = суббота
7 = TEXT
7.value = воскресенье
stdWrap.wrap = | </font></b></center>
}
lib.calendar.50 < plugin.tx_newscalendar_pi1
lib.calendar.50 {
show.allRecords = 1
calendar.startWeekDay = 1
render{
displayType=1
# monthLinkDisplay = 1
dayNameLength = 1
singleView = 7
backPage = 21
contextMenuLink = LEFT
listPage = 22
startingPoint = 14,11
}
}
работает как показано на картинке. Как сделать, чтобы и April, то есть названия месяцев были русскими в самом календаре?
_Michael
08.04.2008, 21:17
plugin.tt_news.archiveTitleCObject >
plugin.tt_news.archiveTitleCObject = COA
plugin.tt_news.archiveTitleCObject {
10 = TEXT
10 {
field = start
strftime >
cObject = COA
cObject.10 = CASE
cObject.10 {
key.field = start
key.strftime = %m
01 = TEXT
01.value = Січень
02 = TEXT
02.value = Лютий
03 = TEXT
03.value = Березень
04 = TEXT
04.value = Квітень
05 = TEXT
05.value = Травень
06 = TEXT
06.value = Червень
07 = TEXT
07.value = Липень
08 = TEXT
08.value = Серпень
09 = TEXT
09.value = Вересень
10 = TEXT
10.value = Жовтень
11 = TEXT
11.value = Листопад
12 = TEXT
12.value = Грудень
stdWrap.wrap = |
}
cObject.20 = TEXT
cObject.20 {
field = start
strftime = %Y
}
}
}
Вот как с архивом сделать. Разобрался :-) (здесь названия на украинском)
После применения кода от azukari дата выводится в виде " апреля 2008 г.", без цифры. Как бороться?
Добавить это:
cObject = COA
cObject.10 = TEXT
cObject.10{
field = datetime
strftime = %d
wrap = |
}
[...]
lib.calendar.50 < plugin.tx_newscalendar_pi1
lib.calendar.50 {
show.allRecords = 1
calendar.startWeekDay = 1
render{
displayType=1
# monthLinkDisplay = 1
dayNameLength = 1
singleView = 7
backPage = 21
contextMenuLink = LEFT
listPage = 22
startingPoint = 14,11
}
}
[/PHP]
работает как показано на картинке. Как сделать, чтобы и April, то есть названия месяцев были русскими в самом календаре?
Там это дело управоляется вот этим
language = ru
locale_all = ??
... вот как у меня ...
plugin.tx_newscalendar_pi1 {
calendar.startWeekDay = 1
special.parserFunction = htmlspecialchars
}
language = ua
locale_all = uk_UA.UTF-8
Спасибо за ответ, но это не помогло. В config у меня и так было прописано
language = ru
locale_all = ru_RU.UTF-8
То же повставляля в разные места в описание календаря - не помогло. Может что-то еще прописать?
Столкнулся с этой проблемой. Когда прописаная локаль не работает. То есть в списке локалей на сервере она присутствует а когда прописываешь ее в TS то ничего не происходит. Здесь трабл в настройках апача самомго хостинга - следовательно необходимо пользоваться сниппетами.
Собственно вопрос к сообществу. Не могли бы привести пример сниппета для newscalendar ? :)
semender
17.09.2010, 16:08
Здравствуйте,использовал вот этот скрипт
# Фиксим локаль для новостей
[globalVar = GP:L = 1]
[else]
plugin.tt_news {
displayLatest {
date_stdWrap >
date_stdWrap {
strftime >
cObject = COA
cObject.10 = TEXT
cObject.10{
field = datetime
strftime = %e
}
cObject.20 = CASE
cObject.20{
key.field = datetime
key.strftime = %m
01 = TEXT
01.value = января
02 = TEXT
02.value = февраля
03 = TEXT
03.value = марта
04 = TEXT
04.value = апреля
05 = TEXT
05.value = мая
06 = TEXT
06.value = июня
07 = TEXT
07.value = июля
08 = TEXT
08.value = августа
09 = TEXT
09.value = сентября
10 = TEXT
10.value = октября
11 = TEXT
11.value = ноября
12 = TEXT
12.value = декабря
stdWrap.wrap = |
}
cObject.30 = TEXT
cObject.30{
field = datetime
strftime = %Y
wrap = | г.
}
}
}
displaySingle.date_stdWrap >
displaySingle.date_stdWrap < .displayLatest.date_stdWrap
displayList.date_stdWrap >
displayList.date_stdWrap < .displayLatest.date_stdWrap
}
[global]
Но почему-то у меня не выводится так число, только когда в 12 строке меняю строку strftime = %e на strftime = %d ,(вывод в формате двух чисел) оно выводится. Не показывается также и в tt_board число, в чём проблема???Не пойму ни как,мож кто сталкивался...
semender
19.09.2010, 11:39
Проблема была в strftime,спасибо MaRTial
Работает на vBulletin® версия 3.8.1. Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot