Modul Last

Wie verwendet man Module oder Aktion und passt diese an.

Modul Last

Beitragvon ThomasS » 16. Jun 2008, 09:39

Hallo, liebe Forenmitglieder,

ich habe das Modul "Last Pageupdate" etwas verändert, so dass es nicht nur das Datum angibt, sondern auch die Uhrzeit. Dieses Modul ermittelt, wann als letztes der Inhalt der Page geändert wurde.

Ich habe es in R3 und R4 eingesetzt, wo es gleichermaßen gut funktioniert.

Dieses Modul muss ich für jede Seite, in der es erscheinen soll, aktiv über das Dropdownmenü im Backend auswählen. Das ist auch gut so, denn es ermöglicht mir, zu entscheiden, in welcher Seite es erscheinen soll.

Nun möchte ich zwar nach wie vor das Modul für jede Seite aktiv auswählen können, aber der Text (Inhalt) soll zunächst nicht oben in der Seite zu sehen sein.

Statt dessen soll er (falls ich das Modul in eine Seite eingesetzt habe) im Haupttemplate unten in der Fußzeile erscheinen. Wenn ich das dort unten einsetze, zeigt es nur den Änderungszeitpunkt der Startseite an, und dieses Datum erscheint überall.

Ich möchte aber natürlich erreichen, dass für Seite ihr eigenes Aktualisierungsdatum in der Fußzeile erscheint.

Wie fange ich das denn am besten an?

Hier das Modul "Last Pageupdate":

Code: Alles auswählen
<?

$query =  'SELECT updatedate FROM rex_article_slice WHERE updatedate <> 0 ORDER BY updatedate DESC LIMIT 1';

$sql = new sql();
$result = $sql->get_array($query);

if( is_array ($result) and count($result) > 0 ) {
   foreach ( $result as $row ) {
      $date= $row['updatedate'];
      print 'Diese Seite wurde am ' . date('d.m.Y',$date)  .' um  ' . date('H:i',$date)  .' Uhr aktualisiert';
   }
}

?>


Ich habe auch Folgendes probiert, aber dann wird immer nur angezeigt, dass die Seite 1970 zuletzt aktualisiert wurde...

Code: Alles auswählen
<?php
$article=OOArticle::getArticleById($this->article_id);
$this->getValue('updatedate');
$date= $row['updatedate'];
      print 'Diese Seite wurde am ' . date('d.m.Y',$date)  .' um  ' . date('H:i',$date)  .' Uhr aktualisiert';
print $date;
?>


Vielen Dank für Eure Hilfe!

Herzliche Grüße
Thomas
ThomasS
 
Beiträge: 131
Registriert: 12. Apr 2007, 11:53
Wohnort: Friedberg

Beitragvon zehbaeh » 16. Jun 2008, 11:21

Flexibel ist das mit einem entsprechenden CType im Template möglich.
Für das Template einen neuen CType "Fusszeile" oder "Footer" anlegen.
Template-Beispiel (stark vereinfacht):
Code: Alles auswählen
<?php
// Prominent irgendwo im Kopf des Templates
$contendCType = 1;
$footerCType = 2;
?>
...
<div id="content">
<?php echo $this->getArticle($contentCType) ?>
</div>
</div id="footer">
<?php echo $this->getArticle($footerCType) ?>
</div>

Modul - Seitenaktualisierung
(mit Möglichkeit zur Ausgabeformatanpassung):
Eingabe:
Code: Alles auswählen
<?php
$format = 'REX_VALUE[1]';
if(empty($format))
{
  $format = 'Diese Seite wurde am DAY.MONTH.YEAR um HOURS:MINUTES Uhr aktualisiert';
}
?>
<label for="VALUE[1]">Format der Seitenaktualisierungsinformation (verfügbare Platzhalter DAY, MONTH, YEAR, HOURS und MINUTES):</label><br />
<input name="VALUE[1]" id="VALUE[1]" size="70" value="<?php echo $format ?>"/>

Ausgabe:
Code: Alles auswählen
<?php
$date = getdate($this->getValue('updatedate'));
echo strtr('REX_VALUE[1]', array(
  'DAY'=>sprintf('%02d', (int)$date['mday']),
  'MONTH'=>sprintf('%02d', (int)$date['mon']),
  'YEAR'=>$date['year'],
  'HOURS'=>sprintf('%02d', (int)$date['hours']),
  'MINUTES'=>sprintf('%02d', (int)$date['minutes'])
));
?>
zehbaeh
 
Beiträge: 563
Registriert: 17. Okt 2006, 10:52
Wohnort: Solingen

Letzte Seitenaktualisierung in C Type einbauen

Beitragvon ThomasS » 16. Jun 2008, 12:37

Hallo Zebaeh,

vielen vielen Dank, der Einbau hat super geklappt!

Auf die logische Idee, es in ein C-Type einzubauen, war ich nicht gekommen!
Vielen Dank auch für das Seitenaktualisierungsscript!

Ich habe jetzt einfach alle Inhalte der Fußzeile in ein Modul gesteckt und wähle es bei der Erstellung einer neuen Seite im C-Type "Fußzeile" im Dropdownmenü aus.

Ich könnte jetzt damit sogar beliebig viele Fußzeilen mit verschiedenen Inhalten machen und einfach diejenige im Modul auswählen, die ich brauche.

Es ist ja auch nicht immer sinnvoll, dass in wirklich jeder Seite die letzte Seitenaktualisierung genannt wird. Z.B. bei einem Online-Formular würde dann irgendwann drinstehen: Seit 3 Jahren nicht aktualisiert! Würde irgendwie peinlich aussehen.

In diesem Fall kann ich nun in der C-Type Fußzeile einfach ein Modul anfertigen und auswählen, das keine Seitenaktualisierung zeigt!

Vielen herzlichen Dank
und einen schönen Tag
Thomas
ThomasS
 
Beiträge: 131
Registriert: 12. Apr 2007, 11:53
Wohnort: Friedberg

Beitragvon Markus.Staab » 16. Jun 2008, 12:51

So hätte der obige Codeschnippsel übrigens funktioniert..

Code: Alles auswählen
<?php
$date= $this->getValue('updatedate');
      print 'Diese Seite wurde am ' . date('d.m.Y',$date)  .' um  ' . date('H:i',$date)  .' Uhr aktualisiert';
print $date;
?>


Anhand der versch. Variablen die du da so "wild" definiert hast, gehe ich davon aus, dass du nicht wirklich ein Programmier Guru bist ;)

Gruß,
Markus
Benutzeravatar
Markus.Staab
Entwickler
 
Beiträge: 9781
Registriert: 29. Jan 2005, 14:50
Wohnort: Aschaffenburg/Germany

Beitragvon ThomasS » 16. Jun 2008, 13:53

Hallo Markus,

jippi, vielen Dank!
Habe es gleich eingebaut! Ich habe das print $date; noch herausgenommen, funktioniert bestens!

Du hast recht, ohne Programmierer bin ich nur ein halber Mensch.

Als Webdesigner/Werbepsychologe kann ich manchmal mit etwas Glück Codeschnipsel kombinieren, das war`s dann auch schon. Programmieren ist ein bisschen wie Zauberei für mich. Ich bewundere das und würde es auch gern können.

Genau deshalb, weil ich vermutlich nie fähig sein werde, vernünftig zu programmieren, liebe ich Redaxo! Ich habe etwa 30 WCMS ausprobiert, bevor ich mich für Redaxo entschieden habe!

Die Technik von Redaxo und die hilfsbereiten Forenmitglieder helfen mir, ständig dazuzulernen und schöne und moderne Websites zu bauen, die ich sonst niemals im Traum hinkriegen würde!

Danke
und herzliche Grüße
Thomas
ThomasS
 
Beiträge: 131
Registriert: 12. Apr 2007, 11:53
Wohnort: Friedberg


Zurück zu Module/Aktionen [R4]

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast