
<itemtype code="CMSTimeRestriction" extends="AbstractRestriction" autocreate="false" generate="false">
<attributes>
<attribute type="java.lang.String" qualifier="cronExpression">
<persistence type="property" />
</attribute>
</attributes>
</itemtype>
type.CMSTimeRestriction.cronExpression.name=Cron Expression
public class CustomCMSTimeRestrictionEvaluator extends CMSTimeRestrictionEvaluator
{
private static final Logger LOG = LogManager.getLogger(CustomCMSTimeRestrictionEvaluator.class);
@Override
public boolean evaluate(final CMSTimeRestrictionModel timeRestriction, final RestrictionData context)
{
final boolean isEvaluate = super.evaluate(timeRestriction, context);
return isEvaluate && evaluateCronExpression(timeRestriction);
}
private boolean evaluateCronExpression(final CMSTimeRestrictionModel timeRestriction)
{
if (StringUtils.isBlank(timeRestriction.getCronExpression()))
{
return true;
}
Date now = (Date) getSessionService().getAttribute("previewTime");
if (now == null)
{
now = Boolean.TRUE.equals(timeRestriction.getUseStoreTimeZone()) ? getTimeService().getCurrentTime() : new Date();
}
try
{
final CronExpression cronExpression = new CronExpression(timeRestriction.getCronExpression());
return cronExpression.isSatisfiedBy(now);
}
catch (final ParseException e)
{
LOG.error("Provided CronExpression {} is not valid.", timeRestriction.getCronExpression(), e);
}
return false;
}
}
<bean id="cmsTimeRestrictionEvaluator" class="com.sap.core.restrictions.PharmacyCMSTimeRestrictionEvaluator" autowire="byName">
<property name="sessionService" ref="sessionService" />
<property name="timeService" ref="timeService" />
</bean>
<a href="https://www.freeformatter.com/cron-expression-generator-quartz.html" target="_blank">Generate Cron Expression</a>
angular.module('cmsTrainingGenericEditorConfigurationServiceModule', ['cmsGenericEditorConfigurationServiceModule', 'editorFieldMappingServiceModule'])
.run(function(editorFieldMappingService) {
// CronExpressionGuide is the virtual field
editorFieldMappingService.addFieldMapping("CronExpressionGuide", null, null, {
template: "cronExpressionGuideTemplate.html"
});
});
...........
@SeModule({
imports: [
'smarteditServicesModule',
'abAnalyticsToolbarItemModule',
'cmsTrainingGenericEditorConfigurationServiceModule'
],
...........
<bean id="cronExpressionGuideTypeAttributePopulator" class="de.hybris.platform.cmsfacades.types.populator.CmsStructureTypeComponentTypeAttributePopulator">
<property name="cmsStructureType" value="CronExpressionGuide" />
</bean>
<bean class="de.hybris.platform.cmsfacades.types.service.impl.DefaultComponentTypeAttributeStructure" p:typecode="CMSTimeRestriction" p:qualifier="cronExpressionGuide">
<property name="populators">
<set>
<ref bean="i18nComponentTypeAttributePopulator" />
<ref bean="cronExpressionGuideTypeAttributePopulator" />
</set>
</property>
</bean>
type.CMSTimeRestriction.cronExpressionGuide.name=Cron Expression Guide
<alias name="customCmsStructureTypeModeAttributeFilterList" alias="cmsStructureTypeModeAttributeFilterList"/>
<bean id="customCmsStructureTypeModeAttributeFilterList" class="org.springframework.beans.factory.config.ListFactoryBean" parent="defaultCmsStructureTypeModeAttributeFilterList">
<property name="targetListClass" value="java.util.LinkedList"/>
<property name="sourceList">
<list merge="true">
<bean parent="cmsStructureTypeModeAttributeFilter">
<property name="constrainedBy">
<bean parent="cmsEqualsTypeAndModeBiPredicate" p:typeCode="CMSTimeRestriction" p:mode="DEFAULT"/>
</property>
<property name="order">
<list>
<value>name</value>
<value>activeFrom</value>
<value>activeUntil</value>
<value>cronExpressionGuide</value>
<value>cronExpression</value>
</list>
</property>
</bean>
</list>
</property>
</bean>
INSERT_UPDATE SmartEditConfiguration;key[unique=true];value
;applications.trainingsmartedit;{"smartEditLocation":"/trainingsmartedit/trainingsmartedit/js/trainingsmartedit.js","extends": "cmssmartedit"}
;applications.trainingsmarteditContainer;{"smartEditContainerLocation":"/trainingsmartedit/trainingsmartedit/js/trainingsmarteditContainer.js","extends": "cmssmarteditContainer"}
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
4 | |
3 | |
2 | |
2 | |
2 | |
2 | |
2 | |
1 | |
1 | |
1 |