2017-10-13 17 views
1

.isml 템플릿 날짜 :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()); 
    } 
}