2016-08-24 5 views
0

Я пытаюсь проверить дату и время сервера, чтобы скомпоновать дату TV ресурса, но я всегда получаю пустую страницу, когда пытаюсь проверить статус IF, вот что мне нужно.Modx IF return blank page

Я фрагмент кода, как этот

<?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]]`]] 

Я получил 1 или 0 на основе ТВ значения * DatumIsteka, все работает нормально, но когда я пытаюсь сравнить это

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

У меня есть белая страница ресурса ?? В чем может быть проблема: любая помощь будет приятной :)

+0

Заканчивать ошибки Apache журналы. – Vasis

+0

Что-нибудь в журнале ошибок MODX? –

ответ

0

смените ваш оператор на не равный и ваш операнд на 1 - модемные телевизоры фактически не существуют, если они не заполнены [даже если они имеют заданное по умолчанию] вы можете получить нулевое значение или ошибку в своем фрагменте, если телевизор не заполнен.

ИЛИ

эха вашего возвращаемого значения,

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;