Sitecore Show Time в 24-часовом формате в редакторе контента

В Item есть поле типа "DateTime". Для этого поля в редакторе контента можно ввести время в 12-часовом формате (AM,PM). Как показано ниже:

Как я могу показать время в 24-часовом формате в редакторе контента.

Спасибо!

2 ответа

Решение

Вы можете переопределить формат времени по умолчанию, расширив Sitecore.Shell.Applications.ContentEditor.DateTime класс, находя TimePicker внутри этого контроля и изменения Format свойство (которое установлено в t по умолчанию, это означает, что будет использоваться стандартная локаль пользователя Content Editor). Просто чтобы быть полностью честным, я не думаю, что изменение этого должно быть рекомендовано для любого решения Sitecore, но это выполнимо при необходимости.

Прежде всего, создайте свой собственный класс, наследующий от Sitecore.Shell.Applications.ContentEditor.DateTimeНапример:

namespace My.Assembly.Namespace.ContentEditor
{
    public class CustomDateTime : Sitecore.Shell.Applications.ContentEditor.DateTime
    {
        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);
            TimePicker timePicker = FindTimePicker(this);
            if (timePicker != null)
            {
                timePicker.Format = "HH:mm";
            }
        }

        private TimePicker FindTimePicker(Control control)
        {
            if (control != null)
            {
                var timePicker = control as TimePicker;

                if (timePicker != null)
                {
                    return timePicker;
                }

                foreach (Control childControl in control.Controls)
                {
                    if ((timePicker = FindTimePicker(childControl)) != null)
                    {
                        return timePicker;
                    }
                }
            }
            return null;
        }
    }
}

Сейчас в web.config находить <controlSources> и добавьте следующую строку внутри этого тега:

  <source mode="on" namespace="My.Assembly.Namespace.ContentEditor" assembly="My.Assembly" prefix="customcontent"/>

Теперь перейдите на Sitecore Desktop, переключитесь на основную базу данных, найдите /sitecore/system/Field types/Simple Types/Datetime пункт и изменить значение Control поле для customcontent:CustomDateTime:

sitecore - выбор даты и времени - пользовательский формат

Вернитесь в основную базу данных и проверьте любое поле даты и времени, например:

sitecore - выбор даты и времени - пользовательский формат

@Marek Musielak Ответ великолепен, но, поскольку он написал, что на самом деле не рекомендуется изменять настройки по умолчанию Sitecore Solution.

Поэтому я искал немного больше и нашел другой способ для каждого пользователя. В Sitecore shell xx / sitecore / shell Пользователь также может изменить его, зайдя в Панель управления> Настройки> Установить региональные и языковые параметры.

Другие вопросы по тегам