Startseite
03.06.10
As the integration of Flattr into Movable Type weblogs might be interesting for none German speaking audience too, I translated my German using Flattr with Movable Type howto into English. You can just to that with simple template changes. An extension or plugin is not needed.
Weiter lesen "Howto: Using Flattr with Movable Type" »
Tags: flattr
Geschrieben von Jan Theofel am 3.06.2010 um 0:07 Uhr | Permalink
Abgelegt unter Movable Type | 0 Kommentare
02.06.10
Zur Zeit wird Flattr in meinem Umfeld relativ stark gehypet. Es ist ein neuer Dienst, der ein einfaches Micropayment für freie Inhalte zwischen Content-Anbietern und Konsumenten im Internet ermöglichen soll. Kurz gesagt kann jeder Content-Anbieter einen Flattr-Button neben seinen freien Content anbringen und jeder Konsument, dem der Inhalt gefällt kann den Button anklicken. Pro Klick wird dabei ein kleiner Geldbetrag freiwillig bezahlt. In diesem Video könnt ihr euch das erklären lassen. Ein Beispiel findet ihr unterhalb des Artikels, bei den Tags.
Für diverse Systeme gibt es Flattr-Erweiterungen, mit denen man den Button ganz leicht in eigene Weblogs einbinden kann. Für Movable Type ist das nicht nötig, denn die Integration kann eigentlich auch ganz einfach manuell vorgenommen werden. Und zwar so:
Weiter lesen "Flattr in Movable Type integrieren" »
Tags: flattr
Geschrieben von Jan Theofel am 2.06.2010 um 23:33 Uhr | Permalink
Abgelegt unter Movable Type | 0 Kommentare
25.04.10
Bei Oliver habe ich eine kleine Anleitung gefunden, wie man einen FaceBook-"Like-It"-Button in ein Wordpress-Blog integriert. Diese Anleitung habe ich leicht abgewandelt um damit den FaceBook-"Like-It"-Button auch in Movable Type Weblogs einbinden zu können.
Die Darstellungsart des Buttons könnt ihr hier bei FaceBook konfigurieren. Kopiert einfach den dort erzeugten Code, so dass ihr nur noch die URL austauschen müsst.
Die URL ersetzt ihr dann durch den Movable-Type-Tag zum aktuellen Blogpost:
<$MTEntryPermalink encode_url="1"$>
Den Code müsst ihr dann nur noch an geeignete Stelle in euer Template für den einzelnen Blogpost reinkopieren und fertig ist der FaceBook-Like-It-Button unter eurem Blogpost.
Ein Beispiel wie diese Anleitung umgesetzt aussehen kann, seht ihr unten. Bitte fleißig anklicken... :-)
Hinweis: Das bekommt ihr so nicht "HTML strict" durch den Validator durch. Wie ihr den Code dazu noch umbauen müsst, könnt ihr hier nachlesen.
Tags: facebook like-it-button
Geschrieben von Jan Theofel am 25.04.2010 um 14:30 Uhr | Permalink
Abgelegt unter Movable Type | 2 Kommentare
07.09.08
Wer wie ich mit Movable Type statische Dateien für seine Weblogs erzeugt, wird das Problem kennen: Mit der Zeit wird die Generierung von Seiten immer langsamer. Bei meinen beiden Hauptweblogs mit inzwischen 1687 (Jans Technik-Blog) bzw. 1792 (Jans Küchenleben) Blog-Einträgen ist dadurch vor allem die Neugenerierung über die Funktion "Rebuild Site" in Movable Type nicht mehr möglich. Jeder Aufruf endet mit einem Timeout im Browser. Das ist insbesondere ärgerlich, da Anpassungen an den Templates zum einzelnen Artikel sich nur bei neuen Blogposts auswirken.
Abhilfe schafft hier das Tool mt-rebuild, das den Neuaufbau der Seiten auf der Kommandozeile ermöglicht. So ist es möglich für ein oder alle Weblogs einzelne oder alle Seiten neu zu bauen. Unterstützt wird Movable Type ab Version 2.64. Ich habe es erfolgreich mit Version 3.2 getestet.
Die Installation ist denkbar einfach: Man muss das Programm nur herunterladen und in das Hauptverzeichnis der eigenen Movable-Type-Installation kopieren. Danach stehen einem dann folgende Optionen offen:
- Vollständige Neugenerierung aller Einträge in allen Weblogs:
mt-rebuild -all
- Vollständige Neugenerioerung aller Einträge eines bestimmten Weblogs:
mt-rebuild -mode="all" -blog_id=<id>
- Einen bestimmten Archivtypen für ein Weblog neu generieren:
mt-rebuild -mode="archive" -blog_id=<id> -archive_type="(Individual|Daily|Weekly|Monthly|Category)"
- Einen einzelnen Artikel neu generieren:
mt-rebuild -mode="entry" -blog_id=<id> -entry_id=<id>
- Eine Index-Seite neu erzeugen:
mt-rebuild -mode="index" -blog_id=<id> -template="<Template Name>"
Eine vollständige Auflistung aller Parameter gibt es in der Dokumentation. Insbesondere mit der Option, eine einzelne Seite neu zu generieren wäre der Weg zu einem konsolenbasierten Blog-Editor damit nicht weit. Das wäre doch mal ein nettes Feature.
Die Laufzeit bei der Erzeugung meiner Weblogs betrug übrigens 6,5 Minuten (Jans Technik-Blog) und 30 Minuten (Jans Küchenleben). Gerade wegen der riesigen Archive im Küchenleben sind das ziemlich gute Zeiten. Ich schätze, dass das mit einem Wechsel auf Movable Type 4 nochmal deutlich beschleunigt werden kann.
Dank mt-rebuild werde ich nun in den nächsten Wochen mal einige Änderungen in Angriff nehmen können, die schon länger ausstehen. Eine davon wird auch der Wechsel auf die aktuelle Version von Movable Type sein.
Tags: mt-rebuild
Geschrieben von Jan Theofel am 7.09.2008 um 13:34 Uhr | Permalink
Abgelegt unter Movable Type | 2 Kommentare
22.05.07
Six Apart weißt auf eine wichtige Änderung der SPAM-Schutz-Einstellungen in Movable Type hin: Die Blacklist auf dem Hosting opm.blitzed.org wird nicht mehr betrieben. Statt dessen soll ein vergleichbarer Dienst auf dem Server zen.spamhaus.org genutzt werden. Davon betroffen ist aber nicht nur Movable Type sondern prinzipiell auch jede andere Weblog-Software, die diese Blacklist bislang genutzt hat.
In Movable Type kann man das wie folgt umstellen:
- In Movable Type einloggen.
- Auf der Übersichtsseite rechts im Menü auf "Plugins" gehen.
- Dort für das Plugin "SpamLookup - Lookups" (ziemlich weit unten) "Show Settings" aufrufen.
Unter "IP Blacklist Services" den Host "opm.blitzed.org" durch "zen.spamhaus.org" ersetzen. ACHTUNG! Update 8.10.2007: Bei mir sind zahlreiche Kommentare dem Dienst zum Opfer gefallen. Mehr gibt es hier.
- Einstellungen mit "Save Changes" abspeichern.
Die Änderung greift dabei bei Installationen mit mehreren Weblogs für alle eingerichteten Weblogs.
via: einfach persönlich
Tags: blacklist
Geschrieben von Jan Theofel am 22.05.2007 um 20:03 Uhr | Permalink
Abgelegt unter Movable Type | 0 Kommentare
20.05.07
Falls es von euch auch mal jemand machen will: Mit dem folgenden SQL-Statement kann man alle SPAM-Kommentare direkt in der Datenbank zu Movable Type löschen. Bei mir waren es gerade 155147 Stück.
delete from mt_comment where comment_junk_status = -1 and comment_visible = 0;
Es gibt zwar auch eine Möglichkeit Movable Type SPAM nach einer bestimmten Anzahl von Tagen löschen zu lassen unter /Settings/Feedback/Auto-Delete Junk. Allerdings verlasse ich mich nicht gerne auf unregelmäßig laufende CGIs sondern auf einen Cronjob, der das direkt in der Datenbank erledigt.
Tags: spam sql
Geschrieben von Jan Theofel am 20.05.2007 um 9:59 Uhr | Permalink
Abgelegt unter Movable Type | 3 Kommentare
18.03.07
Bekanntlich bin ich klarer Anhänger von Movable Type. Dennoch kann ein objektiver Blick auf die Weblog-Landschaft nicht schaden - vor allem wenn es um neue Projekte geht. Eine Hilfe kommt dabei von der Weblogmatrix, die diverse Eigenschaften verschiedener Blog-Programme vergleicht.
via: einfach persönlich
Tags: weblogmatrix
Geschrieben von Jan Theofel am 18.03.2007 um 0:29 Uhr | Permalink
Abgelegt unter Movable Type | 0 Kommentare
06.11.06
Gerade geht hier in meiner "Umgebung" ein neues Weblog auf Basis von Movable Type an den Start. Zu der Gelegenheit wollte ich mal alle meine Artikel, die so zum Start mit Movable Type sinnvoll sind, in einer kleinen Übersicht zusammenfassen. Die Themen, die inzwischen obsolet sind (z.B. Plugins für Tagging) lasse ich dabei natürlich weg.
Weiter lesen "Meine Artikel über Movable Type" »
Tags: installation konfiguration
Geschrieben von Jan Theofel am 6.11.2006 um 18:34 Uhr | Permalink
Abgelegt unter Movable Type | 2 Kommentare
26.10.06
Ein Punkt der mich in Movable Type immer gestört und um den ich Nutzer anderer Weblog-Systeme beneidet habe, war der Link "Ältere Beiträge" unten auf der Startseite, sprich die Pagination der Beiträge. Gerade wenn man in kurzer Zeit viele Beiträge veröffentlicht ist es sinnvoll zumindest die letzten 50 bis 100 Beiträge durchblättern zu können.
Allerdings habe ich mir nie wirklich Gedanken darüber gemacht bis mir diese Kritik im Bezug auf das Brettspiel-Blog geäußert wurde. Und wenn man kurz darüber nachdenkt ist es auch bei einer Movable-Type-Konfiguration mit statischen Dateien möglich. Es geht allerdings auf die Performance beim Einfügen bzw. Aktualisieren von Artikeln und beim Kommentieren - daher habe ich mich auf die ersten 50 Beiträge auf 5 Seiten beschränkt. Danach verlinke ich auf die Übersicht über die Titel aller bislang erschienenen Beiträge.
Weiter lesen "Pagination der Startseite mit Movable Type" »
Tags: pagination
Geschrieben von Jan Theofel am 26.10.2006 um 22:46 Uhr | Permalink
Abgelegt unter Movable Type | 0 Kommentare
13.09.06
Die neue Version 3.3 von Movable Type wurde ursprünglich nur bis zum 31.8. zum Einführungspreis angeboten. Nun wurde der Einführungspreis aber bis zum 30.9. verlängert. Die Basislizenzen sind dabei 30% preiswerter. Eine Preisübersicht und Bestellmöglichkeit gibt es direkt bei Sixapart.
Tags: mt3.3
Geschrieben von Jan Theofel am 13.09.2006 um 8:26 Uhr | Permalink
Abgelegt unter Movable Type | 0 Kommentare
18.04.06
Vor über einem Jahr hatte ich hier mal den Wunsch niedergeschrieben, dass ich gerne wüsste, wieviele Leser meine RSS-Feeds abonniert haben. Bekanntermaßen gibt es inzwischen einige neue Dinge im Web wie beispielsweise FeedBurner. Wer dort seine Feeds verwaltet, bekommt auch eine Auswertung der Leseranzahl. Wie die das machen - keine Ahnung.
Allerdings wollte ich meinen Feed nicht in fremde Hände geben. Denn wer weiß, auf was für Ideen die Leute hinter FeedBurner (oder irgendeinem anderen Dienst) noch kommen. Also lieber nicht verwenden. Aber so Statistik wäre trotzdem schön.
Bei einfach persönlich habe ich nun eine Anleitung zur Integration von FeedBurner in Movable Type gefunden, die mit dieser Abhängigkeit Schluß macht. Man leitet einfach die Feed-URLs per HTTP-Redirect im Apache auf die FeedBurner-URL weiter. Wenn einem FeedBurnern nicht mehr passt sucht man sich eben einen neuen Dienst und leitet dann auf diesen weiter. Ebenso einfach wie genial.
Und noch ein Vorteil für euch als Leser meines Weblogs: Für euch ändert sich gar nichts. Ihr müsst keine Änderung in eurem Feedreader vornehmen und bekommt dennoch in Zukunft den FeedBurner-Feed.
Tags: movable-type feed rss feedburner
Geschrieben von Jan Theofel am 18.04.2006 um 7:55 Uhr | Permalink
Abgelegt unter Movable Type | 0 Kommentare
12.01.06
Seit Movable Type 3.2 wird in dem Standard-Template kein Kalender mehr mit ausgeliefert. Ein einfaches Copy'n'Paste des Kalenders von Movable Type 3.1.x scheiterte bei mir. Daher habe ich mich nach Anleitungen für die Einbindung des Kalenders unter Movable Type 3.2 umgeschaut. Dabei bin ich auf diese Anleitung gestoßen: Calendars with Movable Type 3.2.
Diese Anleitung hat jedoch zwei kleine Haken: Zum einen ist der Kalender Englisch - was sich leicht auf Deutsch anpassen lässt. Zum anderen verlinkt der Kalender immer nur auf den ersten Eintrag des Tages und nicht auf das Tagesarchiv. Ich verwende ein Tagesarchiv, welches jeweils unter dem Dateinamen "yyyy/mm/dd/index.html" gespeichert wird. Daher habe ich auch den Link im Kalenderarchiv angepasst. Und so sieht der neue Code dann aus:
<div class="module-calendar module">
<h2 class="module-header"><$MTDate language="de" format="%B %Y"$></h2>
<div class="module-content">
<table summary="Monatskalender mit Links zu den Tagesarchiven">
<tr>
<th abbr="Sonntag">So</th>
<th abbr="Montag">Mo</th>
<th abbr="Dienstag">Di</th>
<th abbr="Mittwoch">Mi</th>
<th abbr="Donnerstag">Do</th>
<th abbr="Freitag">Fr</th>
<th abbr="Samstag">Sa</th>
</tr>
<MTCalendar>
<MTCalendarWeekHeader><tr></MTCalendarWeekHeader>
<td>
<MTCalendarIfEntries>
<MTEntries lastn="1">
<a href="<MTBlogArchiveURL><$MTEntryDate format="%Y/%m/%d/index.html"$>" title="<MTEntries> | <$MTEntryTitle encode_html="1"$> | </MTEntries>"><$MTCalendarDay$></a>
</MTEntries>
</MTCalendarIfEntries>
<MTCalendarIfNoEntries>
<$MTCalendarDay$>
</MTCalendarIfNoEntries>
<MTCalendarIfBlank> </MTCalendarIfBlank></td>
<MTCalendarWeekFooter></tr></MTCalendarWeekFooter>
</MTCalendar>
Ich habe den Code bei mir vor der Suchbox eingefügt, so dass der Kalender direkt oberhalb erscheint.
Tags: movable-type kalender deutsch
Geschrieben von Jan Theofel am 12.01.2006 um 23:09 Uhr | Permalink
Abgelegt unter Movable Type | 0 Kommentare
11.01.06
In vielen Weblogsystemen sind die Artikelüberschriften auf den Übersichtsseiten jeweils mit der Permalink-URL des entsprechenden Artikels verlinkt. Was in anderen Weblog-Systemen in vielen Templates Standard ist, muss man bei Movable Type 3.2 mit einem kleinen manuellen Eingriff selbst vorgenommen werden. Wie das geht stelle ich euch nun kurz vor. Hierbei handelt es sich um eine Kurzfassung der englischsprachigen Anleitung Entry Titles Linked to Permalinks, in der auch eine passende Vorgehensweise für Movable Type 3.1 beschrieben ist.
In den Templates das CSS-Template editieren und dort den folgenden Eintrag suchen (im Original-Template befindet sich dieser etwa nach 3/4 des CSS-Codes):
.entry-header
{
margin-top: 0;
border-left: 5px solid #dae0e6;
padding: 0 0 0 10px;
color: #666;
font-size: 18px;
}
Danach einfach folgenden Code einfügen, der die Formatierung der Überschrift als Link passend beeinflusst:
.entry-header a, .entry-header a:link, .entry-header a:visited { text-decoration: none; color: #666; }
.entry-header a:hover
{
color: #709800;
}
Nun in allen betroffenen Übersichtstemplates (bei mir ist das aus "Indexes" das "Main Index" und aus "Archives" die Templates "Date-Based Archive (Day)", "Date-Based Archive (Month)" und "Category Archive") die folgende Zeile suchen
<h3 class="entry-header"><$MTEntryTitle$></h3>
und dort jeweils einen passenden Link einbauen:
<h3 class="entry-header"><a href="<$MTEntryPermalink archive_type="Individual"$>"><$MTEntryTitle$></a></h3>
Danach noch einen Rebuild auf alle Seiten laufen lassen und fertig. So einfach ist das.
Tags: movable-type permalink titel
Geschrieben von Jan Theofel am 11.01.2006 um 0:02 Uhr | Permalink
Abgelegt unter Movable Type | 0 Kommentare
12.12.05
Gerade rollt mal wieder eine kleine Kommentar-SPAM-Welle über meine Weblogs. Ein guter Zeitpunkt einen SPAM-Schutz für Kommentare zu implementieren und zu testen: Ich schalte einfach eine Rewrite-Regel im Apache (geht auch per .htaccess), die alle Zugriffe auf mein Kommentar-CGI verhindert, wenn der Referer nicht eine meiner Domains ist.
Das ist natürlich kein sicherer Schutz, weil der Referer beliebig fälschbar ist. Aber wir wissen ja um die Intelligenz der meisten Spammer. Sollte ein Besucher seinen Übertragung des Referers abgeschaltet haben, bekommt er eine entsprechende Fehlermeldung. (Der Kommentar-Spammer bekommt die natürlich auch.)
Dieser Schutz lässt sich nicht nur mit Movable Type sondern auch mit allen Weblogsystemen umsetzen, die ein eigenes CGI-Skript bzw. eine eigene PHP-Datei für das Übermitteln der Kommentare verwenden.
Und so geht es: Voraussetzung ist ein Apache-Webserver mit aktiviertem Rewrite-Modul. Einfach eine .htaccess-Datei mit folgendem Inhalt anlegen und wohlfühlen. Ein entsprechender Eintrag in der Apache-Konfigurationsdatei geht natürlich auch.
RewriteEngine On
RewriteCond %{HTTP_REFERER} !erste-domain\.de [NC]
RewriteCond %{HTTP_REFERER} !zweite-domain\.de [NC]
RewriteRule /cgi/mt-comments.cgi /referer-error.html
Dabei sind folgende Werte beim Anpassen für euch zu ersetzen:
"erste-domain\.de" und "zweite-domain\.de" stehen für Domains, die einen korrekten Referer darstellen. Dort sind alle Domains einzutragen, von denen aus auf das Kommentar-Skript verwiesen wird. Die Punkte in dem Domainnamen sind durch einen Backslash zu entwerten. Pro Domain ist eine eigene Zeile einzutragen, also auch nur eine Zeile bei einer Domain oder beliebig viele Zeilen bei mehr Domains.
"/cgi/mt-comments.cgi" ist der Dateiname des Kommentar-CGIs bzw. der PHP-Datei
"/referrer-error.html" ist die Datei mit der Fehlermeldung, die angezeigt wird, wenn der Referer nicht zulässig ist
PS: Während ich diesen kleinen Beitrag geschrieben habe, hat mir diese einfache Regel bereits 39 SPAM-Kommentare vom Leib gehalten.
Tags: movable-type spamschutz kommentar
Geschrieben von Jan Theofel am 12.12.2005 um 8:11 Uhr | Permalink
Abgelegt unter Movable Type | 9 Kommentare
17.11.05
Schon vor einiger Zeit habe ich Tagging über Technorati hier im Weblog eingeführt und das Plugin hierfür auch beim Einsatz von mtview.php nutzbar gemacht. Nun wollte ich das Tagging umstellen. Ziel der Umstellung sollte sein, dass die Tag auf interne Seiten verlinkt werden, die alle Artikel zu diesem Thema anzeigen.
Dieser Beitrag beschreibt, welche Anforderungen ich an das Tagging richte, welche Lösungen für mich in Betracht kamen und welche ich nun wie implementiert habe. Wie das in der Praxis aussieht könnt ihr übrigens im Brettspiel-Blog betrachten.
Anforderungen an das Tagging
Folgende Anforderungen habe ich an mein Tagging gestellt:
- Die Tags sollen auf interne Seiten verweisen. Damit scheiden die Plugins Technoratitags und MT-Tagslite leider aus.
- Alle Tags sollen über eine einheitliche URL erreicht werden können. Dies ist idealerweise $bloghome/tags/$tag. (Hier muss ich beim genannten Brettspiel-Blog nochmals ran.)
- Das Plugin sollte mit möglichst vielen Installationsarten von Movable Type zurechtkommen.
Verfügbare Plugins / Lösungsansätze
Bei der Suche nach Möglichkeiten hierzu bin ich im wesentlichen auf drei mögliche Lösungen gestoßen:
- Die erste Lösung stammt von einfach persönlich und wird in dem Tutorial Kreatives Tagging im Movable Type Weblog vorgestellt. Die Lösung erfüllt meine ersten beiden Punkte vollständig, den dritten nur eingeschränkt, da ich entsprechende Rewrite-Rules für Apache definieren können muss, was nicht immer der Fall ist. Der Hauptgrund, warum ich mich gegen diese Lösung entschieden habe, war die Nutzung der Suchfunktion zum Anzeigen der Artikel zu einem Tag. Das ist nicht nur dynamisch und erzeugt damit Serverlast sondern es findet auch immer Artikel, die das Tag zwar im Text aber nicht als Tag enthalten. Dies ist vor allem bei negativen Vergleichen ("Dieses Spiel ist kein Geschicklichkeitsspiel.") lästig. Daher schied diese Lösung für mich aus.
- Die zweite Lösung, gefunden bei pixelgrafix, basiert auf dem Tagwire Plugin für Movable Type. Leider habe ich weder in der Originaldokumentation noch in dem Artikel einen Hinweis darauf gefunden, wie ich die Tags innerhalb meines Weblogs verlinken kann. Da damit zumindest augenscheinlich meine ersten beiden Punkte nicht oder nur bedingt erfüllt sind, habe ich auch diese Lösung verworfen.
- Als dritte Lösung habe ich mir das Tag-Plugin von Six Apart angeschaut. Auch dieses hat eine Schwäche: Kategorien und Tags werden vermischt, was vom Benutzer wieder zu trennen ist. Diese Schwäche ist aber zugleich auch eine Stärke des Plugins: Alles, was Movable Type für Kategorien unterstützt wird auch von diesem Plugin unterstützt. Das bedeutet vor allem, dass auch statische Archiv-Seiten für jeden Tag erzeugt werden. Und das war mir wichtig. Das Problem ist also, hier die Vermischung von Tags und Kategorien zu durchbrechen.
Realisierung
Das Hauptproblem ist das Ausblenden der Tags in der Kategorieliste unter jedem Eintrag und der Kategorieübersicht für das gesamte Weblog. Dazu bietet sich das Plugin FilterCategories an. Allerdings unterstützt dieses die Erkennung von Tag-Kategorien leider nicht von Haus aus. Also habe ich es um die Parameter exculde_parents, exclude_tags und only_tags erweitert. exclude_tags blendet alle Tag-Kategorien aus der reinen Kategorieliste aus, only_tags blendet alle echten Kategorien aus und lässt nur Tags stehen um z.B. eine Tag-Cloud zu erzeugen.
Die gepatchte Version gibt es hier zum Download (5kB).
Mit diesem Plugin ist die Bereinigung der Kategorieliste um die Tags ein Kinderspiel:
<MTTopLevelCategories>
<MTFilterCategories exclude_tags="1">
<MTSubCatIsFirst><ul class="module-list"></MTSubCatIsFirst>
[...]
</MTFilterCategories>
</MTTopLevelCategories>
Unter einem Eintrag können die Tags mit folgendem Code eingebunden werden:
Tags: <MTEntryTags> <a href="<$MTTagArchiveLink$>"><$MTTagName$></a> </MTEntryTags>
Offene Nachteile dieser Lösung
Auf Leserseite ist nun nichts mehr von der Vermischung von Kategorien und Tags zu sehen. Im Autorenbereich von Movable Type tauchen allerdings immer noch die Kategorien in der Tag-Liste und umgekehrt die Tags in der Kategorieliste auf. Ich werde versuchen auch das noch durch kleine Hacks zu beheben.
Tags: tagging movable-type
Geschrieben von Jan Theofel am 17.11.2005 um 0:46 Uhr | Permalink
Abgelegt unter Movable Type | 1 Kommentare
13.10.05
Auf einfach persönlich findet sich zum Start der deutschen Version von Movable Type 3.2 eine Zusammenstellung von verschiedenen Artikeln über Movable Type 3.2: Erste Hilfe bei Start mit Movable Type 3.2 Deutsch
Tags:
Geschrieben von Jan Theofel am 13.10.2005 um 9:46 Uhr | Permalink
Abgelegt unter Movable Type | 0 Kommentare
So sehr ich Movable Type auch schätze, es hat eine gewisse Schwäche in der Standardinstallation: Die statischen Artikelseiten, die erzeugt werden sind ziemlich leer. Es steht nicht viel mehr als der Artikel und ein Link auf die Startseite sowie die benachbarten Artikel drauf. Das komplette Menü mit den aktuellen Einträgen, Rubriken, etc. fehlt. Das muss so auch sein, denn schließlich kann nicht wegen jedem Eintrag einige hundert oder gar tausend statischen Seiten umgebaut werden.
Eine von Movable Type mitgelieferte Lösung ist der Einsatz des PHP-Skripts mtview.php. Dies halte ich aus zwei Gründen aber für keine gute Lösung. Zum einen werden die Seiten nun dynamisch erzeugt was eine zusätzliche Serverlast bedeutet. Und zum anderen unterstützen viele Movable-Type-Plugins PHP noch nicht, so dass diese Lösung diese Plugins ausschließt.
Es gibt aber eine ziemlich einfache Lösung: Die Server Side Includes (SSI) die der Apache Webserver anbietet. Diese Anleitung beschreibt, wie man mittels SSI die statischen Artikelseiten mit aktuellen Inhalten ergänzen kann.
Diese Anleitung bezieht sich auf Movable Type 3.2. Ich habe ein ähnliches Setup aber auch schon mit älteren Movable-Type-Versionen erstellt. Da müsst ihr nur ein bisschen bei den Templates anders vorgehen, weil die sich eben geändert haben.
Wichtig! Wenn ihr diese Anleitung nicht an einer Neuinstallation durchführt, müsst ihr unbedingt ein Backup machen! Wenn ihr eine Neuinstallation gemacht habt, legt zwei oder drei Testeinträge an, weil sonst haut das mit dem Testen nicht hin. Alle Angaben hier sind ohne Gewähr. Sollte sich in der Anleitung oder der Umsetzung ein Fehler einschleichen könnt ihr eure komplette Blog-Darstellung zerstören. Also fertigt das Backup wirklich an!
Zum Zeitaufwand: Auch wenn diese Anleitung recht lang aussieht, braucht ihr nur etwa 60 Minuten um das alles durchzuführen. Wer einen eigenen Root-Server sein Eigen nennt, wird etwas schneller sein, wer mittels FTP Verzeichnisse anlegen und Rechte ändern muss, wird etwas länger brauchen.
Voraussetzungen
Movable Type (ideal in Version 3.2, andere müssen leicht anders bearbeitet werden)
Apache Webserver mit SSI und XBitHack
Zugriff auf die Apache-Konfiguration für eure Domain
SSI aktivieren
Was ist SSI überhaupt? Mittels SSI kann man vereinfacht gesagt den Apache Webserver anweisen bestimmte Inhalte in die HTML-Dateien zu integrieren. In unserem Fall nutzen wir das um die aktuellen Einträge, Kategorien, etc. aus zwei anderen Dateien, die wie die Index-Datei bei jedem neuen Eintrag generiert werden. Mehr Informationen über SSI findet bei Bananajoe.
Um SSI zu aktivieren müsst ihr in der Apache-Konfigurationsdatei die Option "+Includes" für das entsprechende Verzeichnis aktivieren. Zusätzlich empfehle ich den so genannten XBitHack zu aktivieren. Sonst müsst ihr den Dateien spezielle Endungen (z.B. .shtml) geben, damit diese per SSI verarbeitet werden können. Das Erschwert einen späteren Wechsel zurück zu statischen Seiten. (Aus welchen Gründen auch immer man das vielleicht mal will). Dazu müsst ihr in der Apache-Konfiguration noch die Zeile "XBitHack On" eintragen. Damit reicht es die Dateien als "executable" zu markieren (das X-Bit zu setzen, daher der Name), damit diese per SSI behandelt werden.
Bei mir sieht das so aus:
In der Datei default-server.conf steht außerhalb jedes Containers ganz am Anfang:
XBitHack On
In meiner Virtual-Host-Datei für theofel.de steht:
<Directory "/.../.../theofel.de/htdocs">
Options -Indexes SymLinksIfOwnerMatch -ExecCGI +Includes
Allow from all
</Directory>
SSI mit Movable Type vorbereiten
Auch Movable Type müssen wir noch ein wenig konfigurieren, damit das mit dem SSI klappt. Zunächst müssen wir Movable Type anweisen, unsere zukünftigen HTML-Dateien als ausführbar zu markieren, damit der XBitHack von oben zieht. Dazu tragen wir in der Konfigurationsdatei folgende Parameter ein: (Die sind schon als Kommentare da. Einfach reinnehmen und die Zeilen anpassen.)
HTMLPerms 0755
UploadPerms 0644
Dadurch werden alle HTML-Dateien mit x-Bit geschrieben. Alle Uploaddateien bekommen dieses Flag aus Sicherheitsgründen nicht.
Alle bereits existierenden HTML-Dateien müsst ihr noch manuell anpassen und dort auch die Rechte 755 (rwxr-xr-x) setzen.
Module für SSI vorbereiten
Nun legen wir die Template-Module an, die wir später auch für die SSI-Datei benötigen. Dazu gehen wir in der Movable-Type-Administration auf den Menüpunkt "Templates" und dort dann auf "Modules". Die Liste ist noch leer, wir legen ein neues Modul an. Dieses bekommt den Namen "head" (im Feld "Template Name" eintragen). Nun öffnen wir in einem zweiten Browserfenster parallel nochmal die Movable-Type-Administration, gehen dort auf die Templates und öffnen das Template "Main Index". Dort schneiden wir alle Zeilen zwischen
<body class="layout-two-column-right">
und
<MTEntries>
aus (jeweils ohne diese Zeilen!).
Diese Zeilen fügen wir im anderen Browserfenster in unser neues Module "head" ein und speichern dieses ab.
In dem Index-Template tragen wir in die entstandene Lücke folgenden Code ein:
<$MTInclude module="head"$>
Dieser sorgt dafür, dass an dieser Stelle das Modul "head", welches wir soeben angelegt haben, eingebunden wird. Nun speichern wir auch dieses Template.
Auf dies selbe Art legen wir nun auch noch ein Module namens "foot" an. Hierzu kopieren wir genau nach der soeben beschrieben Vorgehensweise aus dem Index-Template alle Zeilen, die nach dieser hier folgen (wieder ohne diese Zeile!):
</MTEntries>
Nicht wundern: Das ist ziemlich viel HTML-Code, den ihr hier kopieren müsst. (Etwas 2/3.)
Diese Zeilen in das "foot"-Module einfügen und dieses Speichern. Im Index-Template nun die entfernten Zeilen durch folgenden Code ersetzen und auch Abspeichern:
<$MTInclude module="foot"$>
Zeit für einen ersten Test: Einmal auf "Rebuild Site" im Menü klicken und dann "Rebuild Indexes Only" auswählen. Wenn ihr danach die Startseite eures Blogs aufruft, sollte sich dort nichts geändert haben. Wenn doch stimmt was nicht.
Einbindbare SSI-Dateien erzeugen
Jetzt legen wir ein Verzeichnis an, in dem alle SSI-Dateien angelegt werden sollen. Ich benenne dies sinnigerweise "ssi" und lege es im Wurzelverzeichnis der Webseite ab. Das Verzeichnis muss für den Apache-Benutzer schreibbar sein.
Im nächsten Schritt legen wir die Dateien an, die wir später per SSI einbinden möchten. Dazu gehen wir wieder in die Templateverwaltung und legen ein neues Index-Template an. Dieses benennen wir "SSI head" und legen es unter "ssi/head.html" ab. In den Content-Body schreiben wir nur eine einzige Zeile rein, mit der wieder das bereits angelegte Modul geladen wird:
<$MTInclude module="head"$>
Die Option "Rebuild this template automatically when rebuilding index templates" muss zwingend aktiviert bleiben.
Dann speichern wir dieses neue Template ab und wiederholen auch diesen Vorgang für den "foot". Also ein weiteres neues Index-Template mit dem Namen "SSI foot", der Datei "ssi/foot.html" und dem folgenden Inhalt anlegen:
<$MTInclude module="foot"$>
Und schon sind wir bereit für den nächsten Test: Wieder über "Rebuild Site" ein "Rebuild Indexes Only" durchführen. Nun müssen im vorhin angelegten Verzeichnis ssi die Dateien head.html und foot.html geschrieben werden.
SSI-Dateien bzw. Module einbinden
So, nun können wir uns auch schon daran machen, dass wir die soeben erzeugten Dateien per SSI oder als Modul einzubinden. Die Unterscheidung wann wir was benötigen ist einfach: Das Modul können wir auf allen dynamisch erzeugten Seiten (wie z.B. die Kommentarvorschau) und auf allen Seiten, die mit jedem neuen Blogeintrag überarbeitet werden ("Rebuild this template automatically when rebuilding index templates") verwenden. In allen anderen Dateien kommt SSI zum Zug.
Als erstes nehmen wir uns das Template "Master Archive Index" vor. Öffnet dieses in der Templateverwaltung. Wie ihr seht können wir hier die Integration über das Modul verwenden. dazu entfernen wir im Template alle Zeilen zwischen
<body class="layout-two-column-right">
und
<div class="archive-date-based archive">
und ersetzen diese wieder durch
<$MTInclude module="head"$>
Am Ende des Templates wird alles nach den folgenden Zeilen entfernt (diese Zeilen bleiben drin!):
</MTArchiveList>
</ul>
</div>
</div>
Und wir fügen wieder ein:
<$MTInclude module="foot"$>
Das template jetzt mit "Save and Rebuild" abspeichern und danach die Index-Datei anschauen, ob alles stimmt. Alles ok? Gut, weiter:
Als nächstes nehmen wir uns das "Individual Entry Archive" vor. Dieses findet ihr bei den Templates unter "Archives". Einfach öffnen und wie folgt abändern:
Wir löschen hier die Zeilen zwischen
<body class="layout-one-column" onload="individualArchivesOnLoad(commenter_name)">
und
<p class="content-nav">
Dort setzen wir statt dessen ein:
<!--#include virtual="/ssi/head.html"-->
Zusätzlich ersetzen wir die Klasse im body-Tag durch layout-two-column-right. Die Zeile sieht also danach so aus:
<body class="layout-two-column-right" onload="individualArchivesOnLoad(commenter_name)">
Am Ende dieses Templates entfernt ihr alle Zeilen nach
</MTIfCommentsActive>
(diese befindet sich ziemlich am Ende des Templates) und ersetzt dies mit
<!--#include virtual="/ssi/foot.html"-->
Nun speichert ihr das Template ab und erzeugt über "Rebuild Site" und "Rebuild Individual Archives Only" die einzelnen Artikelseiten. Und nun das ganze mal anschauen. Gar nicht so übel, oder?
SSI- und Modul-Einbindung auf andere Seiten übertragen
Im Prinzip sollte jetzt klar sein, wie das mit den Template funktioniert. Die einzige Ausnahme ist das Suchtemplate, dazu komme ich gleich noch. Erst mal zu den anderen Templates. Ich schreibe hier immer nur noch den Blog, wie er nach der Ersetzung oben und unten im Template aussieht. Damit seht ihr die Zeilen auch jeweils davor und danach. (Vergesst bei der davor nicht die Klasse jeweils mit anzupassen!)
Im Template "Category Archive" sieht es oben wie folgt aus:
<body class="layout-two-column-right">
<!--#include virtual="/ssi/head.html"-->
<p class="content-nav">
Und am Ende stehen diese Zeilen:
</MTEntries>
<!--#include virtual="/ssi/foot.html"-->
Das Template "Date-Based Archive" ist exakt gleich wie das gerade beschrieben "Category Archive" anzupassen.
Das Template "Comment Preview Template" aus "System" sieht oben wie folgt aus:
<body class="layout-two-column-right" onload="individualArchivesOnLoad(commenter_name)">
<$MTInclude module="head"$>
<h3>Previewing your Comment</h3>
Und unten sieht es dann so aus:
>/MTIfCommentsActive>
<$MTInclude module="foot"$>
Beim "Comment Pending Template" sieht es wie folgt aus:
<body class="layout-two-column-right">
<$MTInclude module="head"$>
<h3>Thank you for commenting.</h3>
Und unten:
<p><a href="<MTEntryLink>">Return to the original entry</a></p>
<:$MTInclude module="foot"$>
Die Suche anpassen
Das Template der Suche wird nicht in der Datenbank gespeichert sondern befindet sich in der Datei search_templates/default.tmpl im CGI-Verzeichnis eures Webservers (wo ihr auch Movable Type hininstalliert habt). Dort müsst ihr wie folgt oben ändern:
<body class="layout-two-column-right">
<$MTInclude module="head"$>
<h2><MT_TRANS phrase="Search"></h2>
Unten sieht es nach der Änderung wie folgt aus:
</MTNoSearch>
-->
<$MTInclude module="foot"$>
Finale
Das war auch schon alles. Nun könnt ihr vorrangig in der CSS-Datei (findet ihr auch in den Templates) und den beiden Modulen "head" und "foot" eure Layout anpassen. Viel Spaß!
Wenn ihr diese Anleitung beim Einrichten/Anpassen eures Weblogs verwendet habt, würde ich mich über einen Kommentar mit einer URL zu eurem Weblog freuen. Danke!
Tags:
Geschrieben von Jan Theofel am 13.10.2005 um 0:12 Uhr | Permalink
Abgelegt unter Movable Type | 1 Kommentare
18.09.05
Ich habe nun schon eine ganze Weile Movable Type 3.2 laufen und muss sagen, dass ich von den meisten Verbesserungen sehr begeistert bin. Unter anderem ist das Editieren von Einträgen, Kommentaren und Trackbacks über mehrere Blogs hinweg deutlich einfacher geworden. Allerdings finde ich die Integration von SpamLookup noch nicht wirklich gelungen: Bei dem alten Plugin konnte man über Blacklists Begriffe und reguläre Ausdrücke eingeben, die direkt zur Ablehnung des Beitrags geführt haben. Nun landet der ganze Mist zwar immer noch im Junk-Verzeichnis, aber dort muss ich ihn dann manuell löschen. Das war mit dem Plugin besser. Weiß jemand hierfür eine Lösung?
Bei einfach persönlich gibt es inzwischen auch eine erste Übersicht einiger Plugin für Movable Type 3.2. Davon werde ich mal auch einige ausprobieren.
Tags:
Geschrieben von Jan Theofel am 18.09.2005 um 20:15 Uhr | Permalink
Abgelegt unter Movable Type | 0 Kommentare
16.08.05
Six Apart sammelt zur Zeit Feature-Requests für die neue Movable-Type-Version 3.2. Ich habe schon angemeldet, dass ich gerne einen Template-Mechanismus hätte, bei dem ich sagen kann "Neuer Artikel basierend auf der Vorlage 'Rezept'". Wer auch Vorschläge und Wünsche äußern möchte kann dies hier in den Kommentaren tun. Ich bezweifel zwar, dass noch vieles davon in die neue Version einfliessen wird, aber dann eben in die übernächste.
Tags:
Geschrieben von Jan Theofel am 16.08.2005 um 13:10 Uhr | Permalink
Abgelegt unter Movable Type | 1 Kommentare
15.08.05
Bei Blogs, in denen ihr regelmäßig Inhalte für eure Leser veröffentlichen möchtet, ist es manchmal notwendig "auf Vorrat zu bloggen". Soll heissen ihr schreibt aktuelle Einträge, die aber erst in ein paar Stunden oder ein paar Tagen erscheinen, wenn ihr z.B. im Urlaub seit. So bekommen eure Leser trotz eurer Abwesenheit dennoch regelmäßig Nachschub. Der Gadet-Blogger (Edit 18.11.2013: Link gelöscht, Blog offline) nutzt das beispielsweise. Mit Movable Type ist das ganz leicht einzurichten, wenn ihr Cronjobs auf dem Webserver ausführen könnt.
Weiter lesen "Anleitung: Bloggen für die Zukunft mit Movable Type" »
Tags: movabletype
Geschrieben von Jan Theofel am 15.08.2005 um 0:43 Uhr | Permalink
Abgelegt unter Movable Type | 5 Kommentare
12.08.05
Das hat mich schon eine ganze Weile gestört und sollte nun ab diesem Eintrag besser werden: Movable Type kürzt beim Erzeugen der Archiv-Dateien den Dateinamen immer auf einige wenige Stellen.
Warum will ich das nicht? Ganz einfach:
- Es sieht dämlich aus. Lieber ewig lang als kurz und abgehackt.
- Der volle Titel als Dateiname ist für Suchmaschinen besser geeignet, weil diese dadurch ein höheres Ranking vergeben.
Also habe ich gesucht und gefunden: File Names and URLs aus dem Blog Learning Movable Type. Hier die kurze Zusammenfassung:
- Auf "Weblog Config" klicken.
- Weiter zu "Archive Files".
- Bei "Individual" eintragen:
<$MTEntryTitle dirify="1"$>.html
- Und abspeichern nicht vergessen - das war's schon!
Hinweis: Das klappt natürlich nur, wenn ihr einzelne Dateien als Archivformat verwendet. Daszu schreibe ich die Tage noch was.
Countdown: n-6
Tags:
Geschrieben von Jan Theofel am 12.08.2005 um 23:21 Uhr | Permalink
Abgelegt unter Movable Type | 4 Kommentare
29.05.05
Movable Type verwendet für die eigene Template-Sprache spezielle Tags. Damit man diese sicher einfacher merken kann, hat Jörg Petermann in seinem Weblog einfach persönlich einen Spickzettel für Movable Type veröffentlicht. Dort finden sich alle Template-Tags von Movable Type auf einem Blatt. Sehr praktisch!
Tags:
Geschrieben von Jan Theofel am 29.05.2005 um 21:17 Uhr | Permalink
Abgelegt unter Movable Type | 0 Kommentare
05.05.05
Hier nun noch der Rewrite-Code, den ich für Apache 2 einsetze um dynamische Seiten mit Movable Type zu realisieren. (Die Seiten für diesen Blog werden noch statisch erzeugt, daher sind sie in den Regeln nicht zu finden.)
In der Anleitung von six apart und Anleitung bei Learning Movable Type wird als Redirect-Condition (RewriteCond) jeweils angegeben:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
Das hat bei mir jedoch nicht geklappt, so dass alle Bilder und sonstige Dateien, die ebenfalls im Archiv-Verzeichnis abgelegt worden sind, auch der Rewrite-Regel zum Opfer gefallen sind und danach nicht mehr anzeigbar waren. Statt dessen hat sich bei mir folgender Code bewährt:
# general rewrite rules
RewriteEngine on
RewriteLog "/home/srv/www/theofel.de/logs/rewrite.log"
RewriteLogLevel 2
# rewrite rules for stdp blog
RewriteCond /home/srv/www/theofel.de/htdocs/%{REQUEST_FILENAME} !-d
RewriteCond /home/srv/www/theofel.de/htdocs/%{REQUEST_FILENAME} !-f
RewriteRule ^/stdp-archives/(.*)$ /stdp/mtview.php [L,QSA]
# rewrite rules for the plog blog
RewriteCond /home/srv/www/theofel.de/htdocs/%{REQUEST_FILENAME} !-d
RewriteCond /home/srv/www/theofel.de/htdocs/%{REQUEST_FILENAME} !-f
RewriteRule ^/plog-archives/(.*)$ /plog/mtview.php [L,QSA]
Dabei ist /home/srv/www/theofel.de/htdocs/ das Wurzelverzeichnis meiner Webseite (DocumentRoot). Allerdings habe ich die Regeln im Gegensatz zu den oben genannten Anleitungen nicht mittels einer .htaccess-Datei realisiert sondern direkt in die Apache-Serverkonfiguration eingetragen. Vielleicht kommt daher dieser kleine aber feine Unterschied.
Tags:
Geschrieben von Jan Theofel am 5.05.2005 um 19:11 Uhr | Permalink
Abgelegt unter Movable Type | 0 Kommentare
Ich hatte kürzlich berichtet, dass ich Technorati-Tagging eingeführt habe. Leider stellt das verwendete verwendete Plugin keinen passenden Template-Code für PHP zur Verfügung. Damit kann das Template nur genutzt werden, wenn man statische Seiten durch Perl erzeugen lässt.
Heute wollte ich aber meinen persönlichen Blog auf dynamische Seiten umstellen. Dazu werden einige Rewrite-Regelen für Apache erzeugt, die alle Seitenabrufe auf mtview.php umleiten. Das Problem ist nun, dass mtview.php nicht mit dem Template-Tag <$MTTechnoratiTags class="tags"$> zurecht kommt, weil dieses nur für das Template-Parsing in Perl bekannt ist.
Was bleibt mir also übrig, als die fehlende Funktion in PHP nachzubauen? Ich meine, nicht das ich vorher in meinem Leben jemals eine Zeile PHP Code produziert habe, aber das macht ja nichts. ;-)
Nach einem Studium der PHP Plugin API und dem Artikel PHP Dynamic Publishing: Developing Plugins aus dem Six Apart Professional Network (erst nach Anmeldung zugänglich) habe ich schließlich einen kleinen PHP-Code (Download als TGZ-Datei) geschrieben, den ihr nur in das Verzeichnis mt-root/php/plugins entpacken müsst. Und schon klappen die Technorati-Tags auch auf den dynamisch erzeugten Seiten.
Tags:
Geschrieben von Jan Theofel am 5.05.2005 um 18:35 Uhr | Permalink
Abgelegt unter Movable Type | 0 Kommentare