Sitecore Показать время в 24-часовом формате в редакторе контента

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

введите здесь описание изображения

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

Спасибо!


person Kamran    schedule 29.09.2015    source источник


Ответы (2)


Вы можете переопределить формат времени по умолчанию, расширив класс Sitecore.Shell.Applications.ContentEditor.DateTime, найдя TimePicker внутри этого элемента управления и изменив свойство Format (которое по умолчанию установлено на t, что означает, что будет использоваться стандартная локаль пользователя редактора контента). Честно говоря, я не думаю, что это следует рекомендовать для любого решения 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, переключитесь на базу данных core, найдите элемент /sitecore/system/Field types/Simple Types/Datetime и измените значение поля Control на customcontent:CustomDateTime:

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

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

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

person Marek Musielak    schedule 29.09.2015

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

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

person Kamran    schedule 30.09.2015
comment
Вы также можете переопределить DefaultRegionalIsoCode из web.config и установить правильный/другой часовой пояс, например. da-DK, и он будет использовать эти региональные настройки для всех пользователей, которые не установили региональные настройки в своем профиле вручную. - person jammykam; 30.09.2015