mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2026-02-09 09:16:41 +08:00
#18869: Completing DateTime Field tokens
Work Item: 18869 --HG-- branch : 1.x
This commit is contained in:
@@ -2,6 +2,9 @@
|
|||||||
using Orchard.Events;
|
using Orchard.Events;
|
||||||
using Orchard.Fields.Fields;
|
using Orchard.Fields.Fields;
|
||||||
using Orchard.Localization;
|
using Orchard.Localization;
|
||||||
|
using Orchard.Services;
|
||||||
|
using Orchard.Core.Shapes.Localization;
|
||||||
|
using System.Globalization;
|
||||||
|
|
||||||
namespace Orchard.Fields.Tokens {
|
namespace Orchard.Fields.Tokens {
|
||||||
public interface ITokenProvider : IEventHandler {
|
public interface ITokenProvider : IEventHandler {
|
||||||
@@ -11,6 +14,27 @@ namespace Orchard.Fields.Tokens {
|
|||||||
|
|
||||||
public class FieldTokens : ITokenProvider {
|
public class FieldTokens : ITokenProvider {
|
||||||
|
|
||||||
|
private readonly IClock _clock;
|
||||||
|
private readonly IDateTimeLocalization _dateTimeLocalization;
|
||||||
|
private readonly IWorkContextAccessor _workContextAccessor;
|
||||||
|
private readonly Lazy<CultureInfo> _cultureInfo;
|
||||||
|
private readonly Lazy<TimeZoneInfo> _timeZone;
|
||||||
|
|
||||||
|
|
||||||
|
public FieldTokens(
|
||||||
|
IClock clock,
|
||||||
|
IDateTimeLocalization dateTimeLocalization,
|
||||||
|
IWorkContextAccessor workContextAccessor) {
|
||||||
|
_clock = clock;
|
||||||
|
_dateTimeLocalization = dateTimeLocalization;
|
||||||
|
_workContextAccessor = workContextAccessor;
|
||||||
|
|
||||||
|
_cultureInfo = new Lazy<CultureInfo>(() => CultureInfo.GetCultureInfo(_workContextAccessor.GetContext().CurrentCulture));
|
||||||
|
_timeZone = new Lazy<TimeZoneInfo>(() => _workContextAccessor.GetContext().CurrentTimeZone);
|
||||||
|
|
||||||
|
T = NullLocalizer.Instance;
|
||||||
|
}
|
||||||
|
|
||||||
public Localizer T { get; set; }
|
public Localizer T { get; set; }
|
||||||
|
|
||||||
public void Describe(dynamic context) {
|
public void Describe(dynamic context) {
|
||||||
@@ -24,6 +48,7 @@ namespace Orchard.Fields.Tokens {
|
|||||||
context.For("DateTimeField", T("Date Time Field"), T("Tokens for Date Time Fields"))
|
context.For("DateTimeField", T("Date Time Field"), T("Tokens for Date Time Fields"))
|
||||||
.Token("Date", T("Date"), T("The date only."))
|
.Token("Date", T("Date"), T("The date only."))
|
||||||
.Token("Time", T("Time"), T("The time only."))
|
.Token("Time", T("Time"), T("The time only."))
|
||||||
|
.Token("DateTime", T("Date Time"), T("The date and time."))
|
||||||
;
|
;
|
||||||
|
|
||||||
context.For("MediaPickerField", T("Media Picker Field"), T("Tokens for Media Picker Fields"))
|
context.For("MediaPickerField", T("Media Picker Field"), T("Tokens for Media Picker Fields"))
|
||||||
@@ -47,8 +72,10 @@ namespace Orchard.Fields.Tokens {
|
|||||||
;
|
;
|
||||||
|
|
||||||
context.For<DateTimeField>("DateTimeField")
|
context.For<DateTimeField>("DateTimeField")
|
||||||
.Token("Date", (Func<DateTimeField, object>)(field => field.DateTime))
|
.Token("Date", (Func<DateTimeField, object>)(d => d.DateTime.ToString(_dateTimeLocalization.ShortDateFormat.Text, _cultureInfo.Value)))
|
||||||
.Chain("Date", "Date", (Func<DateTimeField, object>)(field => field.DateTime))
|
.Token("Time", (Func<DateTimeField, object>)(d => d.DateTime.ToString(_dateTimeLocalization.ShortTimeFormat.Text, _cultureInfo.Value)))
|
||||||
|
.Token("DateTime", (Func<DateTimeField, object>)(d => d.DateTime.ToString(_dateTimeLocalization.ShortDateFormat.Text + " " + _dateTimeLocalization.ShortTimeFormat.Text, _cultureInfo.Value)))
|
||||||
|
.Chain("DateTime", "Date", (Func<DateTimeField, object>)(field => field.DateTime))
|
||||||
;
|
;
|
||||||
|
|
||||||
context.For<MediaPickerField>("MediaPickerField")
|
context.For<MediaPickerField>("MediaPickerField")
|
||||||
@@ -61,11 +88,6 @@ namespace Orchard.Fields.Tokens {
|
|||||||
.Token("Width", (Func<MediaPickerField, object>)(field => field.Width))
|
.Token("Width", (Func<MediaPickerField, object>)(field => field.Width))
|
||||||
.Token("Height", (Func<MediaPickerField, object>)(field => field.Height))
|
.Token("Height", (Func<MediaPickerField, object>)(field => field.Height))
|
||||||
;
|
;
|
||||||
|
|
||||||
context.For<DateTimeField>("DateTimeField")
|
|
||||||
.Token("Date", (Func<DateTimeField, object>)(field => field.DateTime))
|
|
||||||
.Chain("Date", "Date", (Func<DateTimeField, object>)(field => field.DateTime))
|
|
||||||
;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user