Zeitsteuerung eines Moduls

Wie verwendet man Module oder Aktion und passt diese an.

Zeitsteuerung eines Moduls

Beitragvon melanie » 10. Okt 2008, 13:52

Hallo liebe Redaxofreunde,

meine Idee war, in ein Text-Bild-Modul die Möglichkeit einzubauen, es bequem zeitgesteuert zu aktivieren (R4.1)

Wir können ja in eine Seite untereinander verschiedene Textile-Artikel (oder sonstige Module) setzen - das ist eine der sehr schönen Besonderheiten von Redaxo.

Wenn ich jetzt einen Artikel/ein Modul davon zeitgesteuert ausblenden will, möchte ich ihn öffnen und darin einfach die gewünschte von-bis Zeit eingeben. Am besten natürlich mit der Möglichkeit, die Veröffentlichung stundengenau einzustellen.

Deshalb habe ich versucht, das "Modul zeitgesteuert ein und ausblenden" http://www.redaxo.com/165-Moduldetails. ... dule_id=23 zu verwenden.

Erst habe ich es einfach wie ein normales Modul eingebaut, aber es tat sich nichts. Dann bin ich auf die Idee gekommen, dass ich es möglicherweise im Quelltext mit einem Modul kombinieren muss.

Also habe ich zum Testen das Minibeispiel Textile genommen und jeweils in dessen Moduleingabe- und Ausgabe den Quelltext des "Modul zeitgesteuert ein und ausblenden" hineinkopiert.

Fehlanzeige! Zwar erscheint im Backend im Minibeispiel Textile nun das Dropdownmenü. Schön mal ein Erfolg. Aber es tut sich nichts, wenn ich das Datum auf einige Monate früher stelle.

Was mache ich falsch?


Übrigens - bei einer normalen Website (kein CMS) habe ich immer diese einfache Programmierung eingebaut. Leider weiß ich nicht, wie und ob ich es in Redaxo einsetzen kann, denn es erscheint kein Auswahlmenü für die Zeit - ich müsste es im Quelltext ändern.

Code: Alles auswählen
<?php

$times = array();
$times[0]['start'] = "2006-08-25 09:35:00";
$times[0]['stop'] =  "2006-08-25 09:35:10";

$times[1]['start'] = "2006-08-25 09:35:20";
$times[1]['stop'] =  "2006-08-31 00:00:00";

// ...

$jetzt = time();

foreach( $times as $t)
{
$stop = strtotime( $t['stop'] );
if( $stop <= $jetzt ) continue;

$start = strtotime( $t['start'] );
if( $start > $jetzt ) break;

echo "




<table border=\"0\" cellpadding=\"10\" cellspacing=\"0\" class=\"textrahmen\">
  <tr>
    <td class=\"feld\">


*******************************************
Hier wird der Inhalt, der zeitgesteuert
erscheinen soll, eingefügt!
******************************************

    </td>
  </tr>
</table>






";
break;



?>



L.G.
Melanie
Ein CMS ist nur dann hervorragend, wenn es auch hervorragende Module hat.
Benutzeravatar
melanie
 
Beiträge: 29
Registriert: 16. Mär 2007, 16:57
Wohnort: 61169 Friedberg

Beitragvon therancher » 11. Okt 2008, 15:57

hi melanie,
wenn ich diesen code benutze:
Code: Alles auswählen
<?php

$times = array();
$times[0] = "2008-10-08 09:35:00"; //start
$times[1] = "2008-10-11 09:35:10"; // stop
$jetzt = time();

$stop = strtotime( $times[1] );
if( $jetzt < $stop ) {
  echo '<div>hier steht was</div>';
  } else {
  echo '<div>das sollte eigentlich nicht zu sehen sein</div>';
  }
?>
funktioniert es, hier nur für den stop-bereich.

ps. das o.g. modul funktioniert bei mir auch
spontanität will wohl überlegt sein!
therancher
 
Beiträge: 489
Registriert: 29. Jan 2007, 17:32
Wohnort: Sachsen

Beitragvon melanie » 17. Okt 2008, 15:23

Hi Therancher,

vielen Dank für Deine Antwort, aber ich verstehe sie nicht und bin genauso schlau wie vorher.

Ich habe jetzt erneut versucht, das Modul "Modul zeitgesteuert ein- und ausblenden" zu verwenden. Ich wollte damit zum Testen das Minibeispiel Textile aktivieren und deaktivieren. (Dieses Minibeispiel soll nur stellvertretend für jedes andere Modul stehen, ich verwende es hier, weil es nur sehr wenig Quelltext hat).

Im Backend von Redaxo gibt es Moduleingabe und Modulausgabe. Ich baue also zuerst mal das Minibeispiel Textile ein und teste - der Text erscheint.

Jetzt will ich diesen Text zeitgesteuert ein- und ausblenden. Also versuche ich, das Modul "Modul zeitgesteuert ein- und ausblenden" irgendwie mit Moduleingabe und Modulausgabe von Textile zu kombinieren. Aber es gelingt mir nicht.
Ich vermute, dass ich den Moduleingabetext vom Minibeispiel Textile irgendwo in den Moduleingabetext des Zeitsteuerungsmoduls einsetzen. Und ähnliches dann noch mal in der Modulausgabe. Ich muss die beiden verschiedenen Module also vermutlich zu einem kombinieren.

Aber es gelingt mir nicht, sie vernünftig zu kombinieren.

LG.
Melanie
Ein CMS ist nur dann hervorragend, wenn es auch hervorragende Module hat.
Benutzeravatar
melanie
 
Beiträge: 29
Registriert: 16. Mär 2007, 16:57
Wohnort: 61169 Friedberg

Beitragvon therancher » 17. Okt 2008, 18:14

Hi, in die Eingabe dieses Moduls schreibst du am Anfang:
Code: Alles auswählen
<div>
  <strong>Text eingeben</strong>:<br />
  <textarea name="VALUE[1]" cols="80" rows="10" class="inp100">REX_HTML_VALUE[1]</textarea>
  <br />
</div>

die ausgabe des moduls:
Code: Alles auswählen
<?php
// ****************** der textile-teil ******************
$input =<<< EOT
REX_HTML_VALUE[1]
EOT;
$textile = new Textile;
$text = "";
if ("REX_VALUE[1]" != "") $text = $textile->TextileThis($input);

$text = str_replace("###","&#x20;",$text);
// ***************************************

$jahr_von = 'REX_VALUE[5]';
$monat_von = 'REX_VALUE[6]';
$tag_von = 'REX_VALUE[7]';

$jahr_bis = 'REX_VALUE[8]';
$monat_bis = 'REX_VALUE[9]';
$tag_bis = 'REX_VALUE[10]';

if ( $jahr_von != ''
     && $monat_von != ''
     && $tag_von != ''
     && $jahr_bis != ''
     && $monat_bis != ''
     && $tag_bis != '') {
  $von = mktime( 0, 0, 0, $monat_von, $tag_von, $jahr_von);
  $bis  = mktime( 0, 0, 0, $monat_bis, $tag_bis, $jahr_bis);
  $jetzt = time();

  if( $jetzt > $von && $jetzt < $bis) {


    // hier machen was immer du willst, wenn der Artikel im Bereich von VON und BIS ist

// *************** eingefügt ******************
echo $text;
// ******************************************
  } else {
    // hier machen was immer du willst, wenn der Artikel NICHT im Bereich von VON und BIS ist
  echo 'offline';

  }

  if ($REX['REDAXO']) {
    if( $jetzt > $von && $jetzt < $bis) {
      $state = '<span style="color: #00aa00;">online</color>';
    } else {
      $state = '<span style="color: #aa0000;">offline</color>';
    }

    echo 'Artikel aufgrund der Datumseinstellungen '.$state;
  }
}
?>
funktioniert jedenfalls bei mir :D

vg HarryT
spontanität will wohl überlegt sein!
therancher
 
Beiträge: 489
Registriert: 29. Jan 2007, 17:32
Wohnort: Sachsen

Modul zeitgesteuert ein- und ausblenden

Beitragvon melanie » 22. Okt 2008, 07:33

Hi Harry T,

vielen lieben Dank für den Quelltext, jetzt habe ich es verstanden und es hat funktioniert!

L.G.
Melanie
Ein CMS ist nur dann hervorragend, wenn es auch hervorragende Module hat.
Benutzeravatar
melanie
 
Beiträge: 29
Registriert: 16. Mär 2007, 16:57
Wohnort: 61169 Friedberg


Zurück zu Module/Aktionen [R4]

Wer ist online?

Mitglieder in diesem Forum: Cheffchen und 1 Gast

cron