IPhone => DAM => YouTube => Darstellung auf GoogleMaps

Für das Projekt www.zielpunkt-meer.de sollte die bisherige GoogleMaps-Karte um eine Video-Darstellung erweitert werden. Die Bilder werden bislang entweder mit dem IPhone oder einer Kamera mit externem GPS-Empfänger geocodiert.
Der Upload findet während der Fahrt via (S)FTP in ein vorgegebenes Verzeichnis statt.
Mittels eines Cronjobs und einem speziellen Service werden die EXIF-Daten inklusive Geokoordinaten aus den Bildern gelesen und in der DAM-Tabelle erfasst.

Neue Erweiterung ssch_feedme – RSS-Feeds from everywhere

Eine neue inoffizielle Erweiterung ist geboren.
Für ein Projekt benötigte ich einen RSS-Feed-Importer für zahlreiche verschiedene Quellen.
Ich konnte im TER keine Extension finden, die zum einen unterschiedliche Formate bedienen und die nötige Flexibilität mitbrachte.

SQL-Injection bei TypoScript DB-Queries – Man kann es nicht oft genug betonen

Vorsicht ist geboten bei der naiven Verwendung von GET- oder POST-Parametern innerhalb von TypoScript DB-Queries.

Gegeben sei folgendes Beispiel:

lib.category_headline = TEXT
lib.category_headline {
cObject = CONTENT
cObject {
table = tx_cal_category
select.selectFields = title
select.pidInList = 309
select.languageField = sys_language_uid
select.where = deleted=0 AND hidden=0
select.andWhere = uid={GPvar:tx_cal_controller|category}
select.andWhere.insertData = 1
renderObj = TEXT
renderObj.field = title
}
}

Sieht nicht weiter schlimm aus? Ist es aber.

Kurze Erinnerungsstütze – tt_news PrevAndNextArticle

Schon einmal gewundert, dass die integrierte Vor- und Zurück Blätterfunktion in tt_news nicht das gewünschte Ergebnis geliefert hat?
Beispielsweise wurde eine Nachricht verschluckt?
Die Lösung ist vermutlich so einfach wie blöd: Zwei Nachrichten haben ein und das gleiche Datum (Uhrzeit und Datum sind exakt gleich).
Einfach eine kleine Abweichung einbauen und schon ist das Problem verschwunden.

Drittanbieter Lösungen nicht GPL-kompatibel?

Bei der Entwicklung der Erweiterung ssch_simpleviewer wurde ich darauf aufmerksam gemacht, dass das Angebot auf simpleviewer.net wohl nicht GPL-kompatibel sei. Auf Grund der Tatsache, dass die Erweiterung ssch_simpleviewer mit den einzelnen swf´s von simpleviewer.net ausgeliefert wird, widerspricht die Erweiterung damit der Guideline unter http://wiki.typo3.org/Overview_Extension_manuals#GPL-incompatible_extensions_.28to_be_removed_from_TER.29.
Abhilfe schafft dabei die Erweiterung package_manager.
Zukünftig wird die Erweiterung ssch_simpleviewer die Einzelnen swf´s nicht mehr direkt mitliefern. Diese müssen dann über den package_manager
explizit installiert werden.

Symfony Actions – Kein Echo benutzen

Kleiner Hinweis bzw. kleine Erinnerungsstütze:
Im Rahmen einer Implementierung von ZendAmf in Symfony habe ich darüber nachgedacht wie man am besten das Ergebnis aus dem Aufruf der handle() Methode der Zend_Amf_Server-Klasse ausgibt.
Man sollte dabei nicht einfach das beliebte Konstrukt echo oder den Befehl print aufrufen.
Stattdessen sollte man das Ergebnis wie folgt ausgeben:
return $this->renderText($server->handle());

Um dann noch den Fehler „Cannot modify header information – headers already sent by“ zu vermeiden, ist die Kapselung in:

ob_start();
return $this->renderText($server->handle());
ob_end_clean();

Neue Erweiterung ssch_pagecurl

Die Erweiterung ssch_pagecurl ermöglicht die Einbindung eines Banners in Form einer
animierten und attraktiven Einbindung von Werbemitteln in die rechte obere Ecke des Browserfensters.

Der Banner kann dabei mit einem Link versehen werden.
Dieser sollte nicht explizit im Werbemittel (bspw. im Flash-Banner) hinterlegt werden.
Der Link wird bei der Einpflege hinterlegt und im Frontend automatisch erzeugt.
Die Erweiterung verlinkt nicht direkt auf die Seite, sondern realisiert dies aus Gründen der statistischen Erfassung mittels eines Redirects.

Extdeveval

Seit der Version 4.3 gibt es für Erweiterungen den Autoloader-Mechanismus über die Datei ext_autoload.php im Root-Verzeichnis einer Erweiterung.
Jetzt kann man die Datei natürlich manuell erstellen. Allerdings kann dies bei vielen Klassen / Dateien sehr mühselig sein.

Bei vielen Erweiterungen sieht man in der Datei ext_autoload.php den Hinweis
// DO NOT CHANGE THIS FILE! It is automatically generated by extdeveval::buildAutoloadRegistry.[..]„.

Javascript in Fluid

Der Einsatz von Inline-Javascript mit gleichzeitiger Verwendung von Template-Variablen scheint in Fluid momentan auf Grund der Bedeutung der geschweiften Klammern ({) innerhalb der beiden Syntaxen noch etwas holprig zu laufen.
Dies kann mittels der CDATA-Section Notation (zwar ein wenig unschön, aber wirkungsvoll) folgendermaßen umgangen werden: