Гость
15 Фев 2013 13:19

Где можно изменить отображение даты и времени в поле создано? стандартные варианты не подходят. Хотелось бы подкорректировать.

Последние изменения: 02 Март 2014


Konstantin
Total posts: 1,113
16 Фев 2013 04:06

Чтобы изменить формат даты в списке:

В админ панеле откройте на редактирование раздел - General Parameters - Templates - Record List, рядом с выбраным шаблоном иконка шестиренки, кликнув по ней, откроется форма настроек этого шаблона. Далее:

Core - Format - Date Format

Чтобы изменить формат даты в полном виде статьи:

В админ панеле откройте на редактирование тип - General Parameters - Templates - Full article, рядом с выбраным шаблоном иконка шестиренки, кликнув по ней, откроется форма настроек этого шаблона. Далее:

Core - Format - Date Format


Sergey
Total posts: 13,748
16 Фев 2013 12:28

Есть есколько способов. Но в любом надоделать копию шаблона. Можно поправить XML файл шаблона и добавить в список форматов нужный формат а можно непосрдественно в PHP файле шаблона поправить.

Если вы откроете файл XML шаблона то сразу увидите список дат.


Sergey
Total posts: 13,748
18 Фев 2013 06:50

Для этого смотрите какие буквы вы моежете использовать.

http://www.php.net/manual/ru/function.date.php


Sergey
Total posts: 13,748
20 Фев 2013 05:57

Ну это все работает через классы джумла. Наверно надо в глобальных настроках джумлы выставлять.


Sergey
Total posts: 13,748
21 Фев 2013 00:35

А джумловские статьи нормлаьно создаются? Там же все зависит от времени сервера. Если на сервере уже московское то вытавив Мосву или -4 просто сдвигаешь время от текущено.

Я нен совсем понямаю как джумла работает с сдвигом по времени. Я просто использовать время так как это сделано в стандартных компонентах дужмлы.


Sergey
Total posts: 13,748
22 Фев 2013 02:28

А можете попробовать создать статью как просто зарегистрированый пользователь ни как админ так что бы поле дата создания не было видно на форме или отключите его в настройках шаблона формы.


Sergey
Total posts: 13,748
22 Фев 2013 06:57

может это во время отображения. Значит проверте еще вот что.

Создайте статью в джумле и посмотрите дату создания в таблице

Создайте статью в кобальте зарегестрированым пользхователем (не админом) и посмотрите дату создания в таблице js_res_record поле ctime

Сравните они одинаковые или нет.

Это вообще локальнопроисходит?


Sergey
Total posts: 13,748
26 Фев 2013 04:42

Я нашел ошику но к сожалению не смогу ее исправить в кобальте 7 так как это связано с джумлой. Дело в том что формат дат разный. Раньше формат был такой %A, %B %d, %Y а темереь такой l, d F Y. Мы используем старый формат. Теперь джумла ввела метод отображения даты но в нем нужет новый формат а у нас старый. Если мы обновим то всем придется после обновления пересозхранять все настройки.

Это не допустимо для стабильной версии.

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

JHtml::_('date', $item->ctime, $params->get('tmpl_core.item_time_format')))

Что то типа такого. Найдите в шаблоне где использется ->ctime и используйте его.


Гость
26 Фев 2013 09:05

вставил то, что вы написали. Получилось вот так в шаблоне, но время в новых записях отображается также некорретно

if($params->get('tmpl_core.item_ctime')==2)

                {

                    $author[] = JHtml::_('date', $item->ctime, $params->get('tmpl_core.item_time_format'));

                }

Sergey
Total posts: 13,748
26 Фев 2013 09:07

Это потому что $item->ctime это уже обект. Надо наверно так.

JHtml::_('date', $item->ctime->toUnix(), $params->get('tmpl_core.item_time_format'));


Sergey
Total posts: 13,748
26 Фев 2013 22:42

Ну и там тоже. Везде где найдешь ctime. В шаблоне дата может быть в отдельном столбце или под заголовком. Так что она выводится 2 раза.


Sergey
Total posts: 13,748
27 Фев 2013 05:55

Попробуй поменать $item->ctime->toUnix() на $item->ctime->toSql()


Гость
27 Фев 2013 07:46

if($params->get('tmpl_core.item_ctime')==2)

                {

                    $author[] = JHtml::_('date', $item->ctime->toSql(), $params->get('tmpl_core.item_time_format')); 

                }

И здесь

get('tmpl_core.item_ctime') == 1):?>
                <td><?php echo $item->ctime->toSql($params->get('tmpl_core.item_time_format'));?></td>

            <?php endif;?>

в итоге время в нормальном формате, но -4 часа ((


Konstantin
Total posts: 1,113
27 Фев 2013 22:22

$author[] = JHtml::_('date', $item->ctime->toSql(), $params->get('tmpl_core.item_time_format'));

Здесь должно время отображаться нормально с правильным смещением, это так?

$author[] = JHtml::_('date', $item->ctime->toSql(), $params->get('tmpl_core.item_time_format'));

echo $item->ctime->toSql($params->get('tmpl_core.item_time_format'));

здесь, как я понимаю смещение не применилось, потому что тут тоже нужно приминить JHtml, так:


<?php if($params->get('tmpl_core.item_ctime') == 1):?> <td> <?php echo JHtml::_('date', $item->ctime->toSql(), $params->get('tmpl_core.item_time_format')); ?> </td> <?php endif;?>
Работает на Cobalt