FAQ: Anzeige aktueller Einträge in der Sidebar
Frage
Ich möchte, dass die aktuellsten Einträge in der Sidebar angezeigt werden. Der Code, den ich geschrieben habe, funktioniert meistens. Jedoch im Kategorie-Archiv und im Datum-basierten Archiv werden nur einige Einträge angezeigt. Wie kann ich alle Einträge anzeigen lassen?
Antwort
Sie haben den Code für die Sidebar vermutlich in einem Vorlagenmodul abgelegt und fügen diesen dann mit dem MTInclude Tag in die Haupt-Index Vorlage, die Kategorie Vorlage und die Datum-basierte Vorlage ein. Eventuell haben Sie den Code für die Sidebar auch einfach in die drei Vorlagen kopiert (wenn ja, lesen Sie bitte Vorlagen mit MTInclude organisieren, wo eine wichtige Technik des Movable Type vorgestellt wird).
Der Code, um die 10 aktuellsten Einträge anzuzeigen, sieht eventuell wie folgt aus.
<h2>Aktuell veröffentlicht</h2>
<ul>
<MTEntries lastn="10">
<li><a href="<MTEntryLink>"><MTEntryTitle></li>
</MTEntries>
</ul>
Wenn diese Zeilen im Haupt-Index ausgeführt werden, wird alles perfekt funktionieren. Die 10 zuletzt veröffentlichten Einträge werden in einer Liste erscheinen, wobei jedes Element ein Verweis auf den Eintrag ist.
Wenn diese Zeilen jedoch in einem Kategorie-Archiv ausgeführt werden, erscheinen nur die 10 zuletzt veröffentlichten Einträge zu der aktuellen Kategorie.
Dieses Verhalten ist beabsichtigt. Viele Tags operieren immer unter Beachtung des aktuellen Kontext, in welchem sie gerade ausgeführt werden. Wenn ein Kategorie-Archiv erstellt wird, dann gibt MTEntries die Liste der Einträge für diese Kategorie aus. Und wenn beispielsweise ein Datum-basiertes Archiv erstellt wird, dann gibt MTEntries die Einträge des aktuellen Monats aus.
Meistens ist dieses Verhalten absolut vernünftig. Dadurch kann dann aber unser Wunsch, unabhängig vom Kontext immer eine Liste der aktuellen Einträge zu erhalten, nicht ganz einfach gelöst werden. Das MTEntries Tag bietet nicht etwa ein Attribut an, mit welchem man immer die vollständige Liste anfordern könnte.
Die Lösung
Die Lösung, welche ich im Weiteren zeigen werde, basiert auf den folgenden Überlegungen.
Wenn bei einem Generierungslauf ein Kategorie-Archiv oder ein Datum-basiertes Archiv erstellt wird, soll die Liste der Einträge bereits gesammelt und in einer separaten Datei gespeichert sein. Die Vorlage für das Kategorie-Archiv wird die Liste nicht selber erstellen - vielmehr wird sie lediglich die vorbereitete Datei einbetten.
Wir werden eine Index-Vorlage für die Erzeugung der separaten Datei verwenden. Diese enthält lediglich ein paar Zeilen, um die Liste der Einträge zu generieren. Ihr einziger Zweck ist es, von anderen Vorlagen benutzt zu werden. Sie wird niemals dem Benutzer direkt gezeigt werden.
Natürlich ist es wichtig, dass die Liste der Einträge erzeugt wird, bevor andere Vorlagen darauf zugreifen. Weil Movable Type aber Index-Vorlagen immer zuerst erstellt, kann dies garantiert werden.
Fangen wir am besten einfach an: öffnen Sie Ihr Movable Type Projekt. Klicken Sie auf "Vorlagen" in der linken Navigationsleiste. Eine Liste von Vorlagen erscheint. Klicken Sie auf "Neue Index-Vorlagen erstellen". Geben Sie "most-recent-entries" als Name der Vorlage ein und "most-recent-entries.html" als Ausgabedatei. Der Vorlagentext soll sein (wie oben)...
<h2>Aktuell veröffentlicht</h2>
<ul>
<MTEntries lastn="10">
<li><a href="<MTEntryLink>"><MTEntryTitle></li>
</MTEntries>
</ul>
Speichern Sie die Vorlage. Anschließend gehen Sie zur Liste der Vorlagen zurück und selektieren Sie die Vorlage für die Kategorie-Archive. Verändern Sie die Vorlage, indem Sie an der gwünschten Stelle die folgenden Zeilen einfügen.
<MTInclude file="ihr_pfad\most-recent-entries.html">
Der Pfad muss das normale Ausgabeverzeichnis Ihres Projekts sein. Es ist der gleiche Pfad, den Sie auch unter "Lokaler Sitepfad" in der Konfiguration Ihres Weblogs eingetragen haben.
Erstellen Sie nun Ihre Website neu. Anschließend werden auch die Kategorie-Archive die vollständige Liste der Einträge zeigen.
Erweiterungen
Der Name der hinzugefügten Vorlage kann völlig frei gewählt werden. Sie können die Vorlage benennen, wie Sie wollen.
Wenn Sie die Ausgabedatei für die Vorlage festlegen, können Sie einen beliebigen absoluten oder relativen Pfad vorgeben. Weil wir lediglich einen Dateinamen angegeben haben, wird die generierte Datei im normalen Ausgabeverzeichnis gespeichert. Sie können die Datei aber beispielsweise auch unter C:\DATA\MT\most-recent-entries.html ablegen lassen. Natürlich muss dann die MTInclude Anweisung entsprechend geändert werden.
Sie können auch eine andere Namenserweiterung für die Ausgabedatei festlegen. Manchmal werden Sie in Beispielen für derartige Dateien die Erweiterung "inc" sehen (inc = include). Wenn Sie der Datei eine andere Erweiterung geben, hat dies den Vorteil, dass Ihr Internet Server eine Anforderung nach der Datei zurückweisen wird. Wenn Sie den obigen Schritten folgen, wird die Datei "most-recent-entries.htm" in Ihrem Hauptverzeichnis liegen. Jeder Leser, der von der Existenz der Datei weiß, könnte diese über HTTP öffnen.
mgs
Feedback erwünscht!
Wie fanden Sie den Eintrag? Interessant? Langweilig? Ich freue mich über Ihren Kommentar. Wenn Ihnen der Eintrag geholfen hat, setzen Sie doch einen Link auf http://www.movable-type-weblog.de/.
Bitte keinen Spam
Um das Weblog vor Spam zu schützen, wird das MT-Approval Plugin eingesetzt. Sie müssen einen neuen Kommentar zunächst in der Vorschau ansehen, bevor dieser auf dem Server gespeichert werden kann. Ferner wird ein Kommentar erst gesichtet, bevor er freigegeben wird. Näheres finden Sie in meinem Artikel Weblog Spamming Grundlagen, wo einige Schutzmaßnahmen skizziert werden.
Wenn Sie sich an TypeKey angemeldet haben, wird Ihr Kommentar automatisch freigegeben.
Neuen Kommentar schreiben
TypeKey wurde an dieser Stelle vorübergehend deaktiviert. Erstellen Sie Ihren Kommentar bitte ohne TypeKey oder melden Sie sich im Vorschau-Dialog an.

