2017-10-13 146 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()); 
    } 
}