2016-08-24 6 views
0

Ich versuche Server Datum und Uhrzeit zu überprüfen mit Datum TV der Ressource zu kompilieren, aber ich bekomme immer leere Seite, wenn ich versuche, IF-Anweisung einzuchecken, hier ist was ich brauche.Modx IF leere Seite zurück

Ich mag diese

<?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; 
} 

Aber wenn auf Seite Snippet, wenn ich diese versuchen, wie

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

Ich habe 1 oder 0 basierend auf TV-Wert * DatumIsteka, alles funktioniert ok, aber Wenn ich versuche, so zu vergleichen

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

Ich habe weiße Seite der Ressource ?? Was kann das Problem sein, jede Hilfe wird nett sein :)

+0

Check-out-Protokolle Apache Fehler. – Vasis

+0

Alles im MODX-Fehlerprotokoll? –

Antwort

0

ändern Sie Ihren Operator auf nicht gleich und Ihr Operand zu 1 - modx TVs existieren tatsächlich nicht, es sei denn, sie sind ausgefüllt [auch wenn sie einen Standard definiert haben] Sie erhalten möglicherweise einen Nullwert oder einen Fehler in Ihrem Snippet, wenn der Fernseher nicht aufgefüllt ist.

OR

echo Ihre Rückgabewert,

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

echo $active; 

return; 

IF kann mit Fragen sein, die Rückgabewerte als boolean vs. String zu interpretieren?

Sie können auch Ihr Snippet ändern, um den aktuellen Wert von DateIsteka abzurufen, und dann output modifiers verwenden.

oder etwas ähnliches:

<?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;