2016-08-24 5 views
0

서버 날짜와 시간을 리소스의 TV와 비교하려고합니다.하지만 IF 문장을 체크 인 할 때 항상 빈 페이지가 표시됩니다. 여기 내가 필요한 것입니다.Modx IF 빈 페이지가 반환됩니다.

나는이

<?php 
function getDatetimeNow() { 
    $tz_object = new DateTimeZone('Europe/Belgrade'); 
    $datetime = new DateTime(); 
    $datetime->setTimezone($tz_object); 
    return $datetime->format('Y\-m\-d\ h:i:s'); 
} 

$currentDate = getDatetimeNow(); 

$dtA = new DateTime($currentDate); 
$dtB = new DateTime($date); 

if ($dtA > $dtB) { 
    $active = 0; 
    return $active; 
} 
else { 
    $active = 1; 
    return $active; 
} 

처럼 니펫을 가지고 있지만 페이지에 내가이

[[!CheckCurrentDate? &date=`[[*DatumIsteka]]`]] 

처럼하려고하면 때 나는 TV 값 * DatumIsteka에 따라 1 또는 0을 가지고, 모든 확인 작업되지만, 이처럼 비교하려고 할 때

[[!If? 
    &subject=`[[!CheckCurrentDate? &date=`[[*DatumIsteka]]`]]` 
    &operator=`equals` 
    &operand=`0` 
    &then=`<script> 
    $("#tab3").html("<p>U Pripremi</p>"); 
    </script>` 
    ]] 

리소스의 흰색 페이지가 있습니까? 무엇이 문제 일 수 있으며 어떤 도움이 좋을지도 모릅니다 :)

+0

체크 아웃 아파치 오류 로그. – Vasis

+0

MODX 오류 로그의 내용은 무엇입니까? –

답변

0

연산자를 같지 않게 변경하고 피연산자를 1 - modx TV로 채우지 않으면 [기본값이 정의 된 경우에도] 존재하지 않습니다. TV가 채워지지 않은 경우 스 니펫에 null 값 또는 오류가 표시 될 수 있습니다.

또는

당신의 반환 값을 에코

if ($dtA > $dtB) { 
    $active = 0; 
} 
else { 
    $active = 1; 
} 

echo $active; 

return; 

IF 문자열 대 부울 반환 값을 해석하는 데 문제가 될 수있다?

코드 조각을 변경하여 현재 자원 DatumIsteka 값을 검색 한 다음 output modifiers을 사용할 수도 있습니다.

이 같은

또는 무언가 :

<?php 
function getDatetimeNow() { 
    $tz_object = new DateTimeZone('Europe/Belgrade'); 
    $datetime = new DateTime(); 
    $datetime->setTimezone($tz_object); 
    return $datetime->format('Y\-m\-d\ h:i:s'); 
} 

$currentDate = getDatetimeNow(); 

$dtA = new DateTime($currentDate); 

$date = $modx->resource->getTVValue('DatumIsteka'); 

$dtB = new DateTime($date); 

if ($dtA > $dtB) { 
    $active = $modx->getChunk('chunkName'); 
// chunkName = <script>$("#tab3").html("<p>U Pripremi</p>");</script> 
} 
else { 
    $active = 1; 
} 

echo $active; // you have to echo it if you are passing a string 

return;