2017-10-13 75 views
1

我需要检查的条件:INTERSHOP获取日期

<isif condition="#not ((Product:QLC_Enable EQ 'true') AND (Product:QLC_ValidTo > NOW) AND (Product:QLC_Quantity < 1))#">       
    <span class="items-in-stock align-left"> 
     <isinclude template="product/inc/CC_StockStatus"/> 
    </span> 
</isif> 

但它似乎是不正确的使用这个区隔:

Product:QLC_ValidTo > NOW 

特别的问题是针对语法'现在'。我不知道应该如何设置,也不能在他们的文档中找到。

任何人都可以帮忙吗?

回答

2

我不认为这是可能的isml。 Beter写一个ProductBO扩展,并用java编写条件。然后,您可以在isml中调用扩展来显示该元素。避免在isml中放置太多的逻辑,它只能作为视图。

<isif condition="#NOT ((Product:QLC_Enable EQ 'true') AND (Product:Extension("ProductExt"):isValid) AND (Product:QLC_Quantity < 1))#">       
    <span class="items-in-stock align-left"> 
     <isinclude template="product/inc/CC_StockStatus"/> 
    </span> 
</isif> 

你可以看到here如何创建一个业务对象扩展。

public interface ProductBOExtension extends BusinessObjectExtension<ProductBO> 
{ 
    public static final String EXTENSION_ID = "ProductExt"; 
    public boolean isValid(); 
} 

实现类

public class ProductBOExtensionImpl extends AbstractBusinessObjectExtension<ProductBO> implements ProductBOExtension 
{ 
    public boolean isValid(){ 
     return this.getExtendedObject().getAttributeValue("QLC_ValidTo").getDateValue().after(new Date()); 
    } 
}