Archive for the ‘Web’ Category
Von Typo3 zu WordPress
Eigentlich sollte es nur eine Testinstallation von »WordPress« werden, um einerseits Erfahrungen zu sammeln und um zu sehen, inwiefern es dazu taugt, auch als Content Management System (CMS) und damit als Alternative zu z.B. »Typo3« eingesetzt zu werden. Gut »Typo3« ist jetzt kein ganz so guter Vergleich, bei sehr großen Projekten hat man hier sicher noch einiges mehr an Möglichkeiten, gerade auch was das Backend-Management für große Benutzergruppen angeht. Auch die Übersicht bei 100+ Seiten (nicht Blog-Einträgen) im Backend stell ich mir unter »WordPress« noch etwas schwierig vor, dies ist aber eher eine Designfrage und sicher mit überschaubarem Aufwand änderbar. Für kleine bis mittlere Projekte aber kann WordPress einige Vorteile haben. Was mir besonders gefallen hat und letztendlich auch die Entscheidung für den Umstieg gegeben hat, ist die einheitliche Handhabung von Blog-Einträgen und (statischen) Seiten. Interessant fand ich nämlich die Idee, auch auf normalen Seiten die Kommentar-Möglichkeit und die Trackback-Funktion vom Blog nutzen zu können.
Auch auf Anhieb überzeugt haben mich das Plugin »NextGEN Gallery«, die bereits gut integriert Userverwaltung und in Verbindung hiermit das Plugin »User Access Manager«, um einen abgetrennten Userbereich einrichten zu können. Alles das sind Dinge, die ich mit gewissem Aufwand natürlich auch unter Typo3 hätte realisieren können, warum aber das Rad neu erfinden, wenn hier schon viele Dinge wie selbstverständlich von Haus aus funktionieren?
Twitter-Tweets unter Typo3 importieren
Nachdem ich mir heute zum Testen einen Twitter-Account angelegt habe, habe ich nun versucht die Tweets (so werden die unter Twitter angelegten Mini-Blog-Einträge genannt) auf meine Typo3-Seite hier zu bekommen. Am einfachsten geht das über den RSS-Link, der sich ganz einfach auf der Twitter-Seite unter dem Menüpunkt »Profile« und dann ganz unten Rechts kopieren lässt.
Nun habe ich die Typo3-Extension »tw_rssfeeds« installiert und den Feed hierrüber anzeigen lassen. Etwas, dass mich hier gestört hat, war die Tatsache, dass jeder Feed-Eintrag mit meinem Twitternamen begonnen hat (siehe Bild). Da es über Twitter direkt leider nicht abzustellen war, kam folgende PHP-Seite zum Einsatz, welche den Feed quasi filtert und stattdessen in der Extension eingetragen wird :
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php $url = "http://twitter.com/statuses/user_timeline/TWITTERNUMBER.rss"; $rssin = curl_init(); curl_setopt($rssin, CURLOPT_URL, $url); curl_setopt($rssin, CURLOPT_RETURNTRANSFER, 1); $rssout = curl_exec($rssin); curl_close($rssin); $rssout = ereg_replace(">TWITTERNAME: ", ">", $rssout); echo $rssout; ?> |
MooTools und SWFObject
Tja da habe ich die Anzeige meines Blogs mit dem Internet Explorer 6 und 7 (voherige Versionen nicht getestet) erfolgreich unterbunden. Beim Aufruf ist schlicht und einfach eine Fehlermeldung gekommen »Vorgang abgebrochen«. Grund dafür ist die gemeinsame Nutzung der »MooTools«, genutzt von der Typo3-Extension »perfectlightbox«, die ich zur Anzeige meiner Bilder im Einsatz habe, und des »SWFObjects«, genutzt von der Extension »bddb_flvvideogallery«, für die Darstellung der Flash-Filme. Von allen gängigen Browsern (Firefox, Opera, Safari) korrekt verarbeitet, führt scheinbar ein Bug im Internet Explorer dazu, dass die Seite an der Stelle, an dem das SWFObject zum Einsatz kommt, nicht weiter verarbeitet wird. Für eine genaue Fehlerbeschreibung könnt ihr die Suchmaschine eures Vertrauens befragen, es gibt einige Leidensgenossen – wir sind es ja aber gewohnt, dass Microsoft sein Produkt nicht patcht, sondern wir unsere Seiten für den Browser des Weltmarkführers anpassen
Wer »bddb_flvvideogallery« wie ich in der Version 0.6.0 verwendet, kann den Fehler ganz einfach mit einer Änderung in der Datei typo3conf/ext/bddb_flvvideogallery/pi1/, Zeile 759 von
1 | $JS .= '<script type="text/javascript">'; |
in
1 | $JS .= '<script type="text/javascript" defer="defer">'; |
umgehen. Hiermit wird der Internet Explorer angewiesen, noch keine Inhalte auszugeben, sondern mit dem Rendern der Seite fortzufahren.
Übrigens kann, bei der »perfectlightbox« sogar als Default gesetzt, als Alternative zu den »MooTools« das JavaScript-Framework »Prototype« genutzt werden, an dem Problem und der Lösung ändert sich hierbei allerdings nichts.
Videoserver selbst gemacht
Die Tage habe ich überlegt wie ich am schönsten Flash Videos auf meine Seite bekomme. Auf der Arbeit gab es hierzu einmal ein Serverprojekt, welches jedem Benutzer erlaubt, per FTP Videodateien hochzuladen. Egal welches Format hier hochgeladen wird, bevor das File veröffentlicht wird durchläuft es einen Encoder, der, egal was vorne rein kommt, hinten ein Video im FLV-Container (Flash) ausgibt. In Anlehnung an dieses Projekt habe ich etwas ähnliches bei mir auf der Linux-Shell eingerichtet. Ein Script überwacht einen Incoming-Ordner, über »Crontab« wird dieser Ordner alle 2 Minuten abgefragt. Wird nun ein neues File hochgeladen, startet dieses Script den »mencoder«, legt ein .flv-File im Flash-Ordner an und verschiebt das original File nach erfolgreichem Encoden in einen Archivordner.
Hier der Quellcode (vid2flv.sh)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | #!/bin/bash SOURCE_DIR=/var/www/.../fileadmin/upload-directory DEST_DIR=/var/www/.../fileadmin/flash-directory ARCHIVE_DIR=/var/www/.../fileadmin/upload-directory/.archive PREFIX=`date +%Y-%m-%d` cd $SOURCE_DIR #check whether mencoder is running, if so exit if ps ax |grep -v grep |grep mencoder >/dev/null then echo "mencoder already running, skipping..." exit 1 fi #running mencoder for each file in SOURCE_DIR for i in `ls -1` do #if file ist not in use or uploading, continue... if ! fuser -s $i; then echo echo "processing file: $i"; #removing file-extension FILE_NAME=`echo $i | sed 's/\(.*\)\..*/\1/'` echo "output file: $DEST_DIR/$PREFIX-$FILE_NAME.flv" echo #encode vid mencoder "$i" -o "$DEST_DIR/$PREFIX-$FILE_NAME.flv" -of lavf -ovc lavc -oac mp3lame -lavcopts vcodec=flv:vbitrate=832:autoaspect:mbd=2:mv0:trell:v4mv:cbp:last_pred=3: predia=2:dia=2:precmp=2:cmp=2:subcmp=2:preme=2:turbo:acodec=mp3:abitrate=64 -vf scale=720:400 -srate 22050 -af lavcresample=22050 -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames RETURN=$? echo echo "encoding done with errorlevel $RETURN" echo #moving source to archive dir mv $i $ARCHIVE_DIR fi done |
/etc/crontab
1 | */2 * * * * root /path/to/vid2flv.sh >> /var/log/vid2flv.log 2>&1 |
mencoder installieren
Um das Script zu nutzen wird lediglich der »mencoder« benötigt. Unter Ubuntu z.B. ist er meine ich ganz einfach über »apt-get install mencoder« installierbar. Auf meinem Server läuft Debian etch, hier muss vorher noch folgende Quelle unter /etc/apt/sources.list hinzugefügt werden
1 2 | deb http://debian.netcologne.de/debian-multimedia.org stable main deb-src http://debian.netcologne.de/debian-multimedia.org stable main |
Um den Keyring für diese Quellen zu bekommen könnt ihr folgenden Datei herunterladen und über
1 | dpkg -i debian-multimedia-keyring_2008.10.16_all.deb |
installieren. Der mencoder und die gängigen Video-Codecs werden wie folgt installiert:
1 2 | apt-get update apt-get install mencoder w32codecs |
Auflösung, Bitrate, etc…
Eine wichtige Frage, welche Auflösung und welche Bitrate sollen die Videos auf der Seite haben. Hier habe ich auch lange überlegt und bin mir noch immer nicht sicher, ob ich die optimale Konfiguration gefunden habe. Für mich ist klar, es soll eine 16:9-Auflösung sein. Sie sieht zum einen moderner aus, zum anderen besitze ich einen HD-Camcorder und nehme natürlich auch nur in 16:9 auf. Wieviel Qualität man nun zugunsten der Bandbreite und den möglicherweise anfallenden Volumenkosten her gibt, muss jeder für sich entscheiden. Ich habe mich für eine Auflösung von 720×400 bei einer Video-Bitrate von 832kbit entschieden. Audio wird auf eine Samplerate von 22050 mit einer Bitrate von 64kbit heruntergerechnet. Zum Verständnis und Vergleich bitte noch einmal oben im Script den »mencoder«-Aufruf ansehen (»vbitrate«, »abitrate« und »scale«. »srate« einfach bei Änderungen von 22050 auf z.B. 44100 mit »lavcresample« gleichsetzen).
Die Auflösung könnte bei der doch recht niedrigen Bitrate noch ein bisschen kleiner ausfallen, werde ich allerdings kleiner, so bekommt der von mir gewählte FLV-Player Darstellungsprobleme im Vollbild. Hier wird das Bild also einfach wieder vom Player herunterskaliert, solange dieser sich nicht im Vollbild-Modus befindet.
Im Großen und Ganzen lande ich bei der von mir gewählten Konfiguration bei einer Übertragungsrate von ca. 896kbit (das entspricht 112kb/s) und sollte so ab einem DSL1000-Anschluss gut abspielbar sein. Ein Video mit der Länge von 1:33Min ist hier ca 10,5MB groß.
Integration in die Website
So nun habt ihr also einen Ordner auf der Website, in dem die ganzen FLV-Dateien landen. Einfach drauf auf die Website und den Anwender noch kurz auffordern, seinem Browser Flash-Unterstützung zu spendieren, reicht leider nicht ganz aus. Gut in Zeiten von Youtube und co. ist das mit dem Flash natürlich nicht mehr das Problem. Für das Abspielen eines im FLV-Container verschachtelten Filmes wird allerdings noch ein, ich sage mal, Steuer-Container benötigt. Diese zumeist in Flash und Java programmierte Schnittstelle zaubert u.a. den Fortschrittbalken und die Steuertasten unter die Filme. Meine Wahl fiel hier unter Typo3 auf die Extension namens bddb_flvvideogallery. Zum Einsatz kommt in dieser Extension der FLV-Player von Jeroen Wijering. Ich muss aber gestehen, nicht alle durchprobiert zu haben und lasse mir hier gerne Alternativen empfehlen.
Da es sicher im allgemeinen Interesse ist, hier ein Testvideo. Nehmt euch 1:30Min Zeit und lauscht dem Klang der Kaffeemaschine
Update 4.2.2009
Anscheinend gibt es doch noch Probleme zwischen den »MooTools« und dem »SFWObject«, das Video ist daher erst einmal von der Seite genommen.
Update 23.4.2009
Unter WordPress nun kommen andere Bibliotheken zum Einsatz, und siehe da, es geht:
schmidt24.org bloggt auch mit T3BLOG
Eigentlich habe ich nur durch Zufall auf einer der vielen Typo3-Newsseiten entdeckt, dass es für Typo3 seit Ende 2008 das durch die Schweizer Typo3 Agentur »snowflake« entwickelte T3BLOG nun endlich eine würdige Alternative zu WordPress gibt. Zugegeben habe ich TIMTAB nie selber ausprobiert, bei dem was ich so lese, denke ich, ist vorher sowieso ein Großteil, der unter Typo3 ein Blog aufbauen wollte, wieder bei WordPress gelandet. Das Schöne an T3BLOG ist die Eigenschaft, dass die Blogeinträge aus den gewohnten Typo3-Contentelementen zusammengestellt werden können. Hier sind der Gestaltung der Beiträge also keine Grenzen gesetzt.
Wie dem auch sei, dies ist doch eine gute Gelegenheit, dachte ich mir, mal etwas mehr aus dem Boden zu stampfen, als nur eine schlecht designte Testwebseite. Aus dieser Idee ist also dieser Blog hier entstanden. Da die Installation von T3BLOG (für mich zumindest) auch nicht ganz trivial war, bzw. noch nicht ausreichend dokumentiert ist, werde ich hier bei Gelegenheit noch einmal alles genau zusammenschreiben. Zu bekommen ist die Extension wie gewohnt im TER. Hier noch der Link zu der offiziellen Releasemeldung: T3BLOG per sofort verfügbar.
You are currently browsing the archives for the Web category.
