Beiträge der Kategorie TYPO3

Extbase: Controller/Action per FlexForm konfigurierbar machen

In Extbase lassen sich die Controller&Actions zum einen mit Parameter in der URL steuern, dass kann jedoch nicht genug sein, wenn man auf einer Seite eine bestimmte Action aufrufen möchte, ohne Parameter an die Seite zu übergeben. Um in einem Plugin die Action (oder auch den Controller) konfigurierbar zu machen, definiert die Auswahl in Flexforms. Der so ausgewählte Controller bzw. die Action wird dann berücksichtigt.

Innerhalb des XML-Elements „el“ braucht man ein Knoten mit dem Namen „switchableControllerActions“, in dem später folgenden Abschnitt items gibt man als Value die Kombination aus Controller und Action an, die ausgeführt werden sollen. Dabei läßt man den Suffix „Controller“ bzw. „Action“ weg.

(mehr …)

TYPO3 4.2.12 läuft nicht mit PHP 5.1

Entgegen dieser Angabe auf typo3.org läuft TYPO3 in der aktuellsten Version 4.2.12 nicht auf PHP 5.1. Die Installation klappt, nach dem Einloggen ins Backend wird allerdings nicht der Seitenbaum angezeigt, da versucht wird, die Funktion filter_var aufzurufen, die erst ab PHP 5.2. verfügbar wird. Die umgebende Funktion in t3lib_div beinhaltet nur eine Zeile, das Anpassen dieser Funktion zieht allerdings weitere Änderungen nach sich.

Language Overlay auf Mailform mit TemplaVoila

Beim Language Overlay eines Mailformulars in TemplaVoila ist mir vor einiger Zeit ein Fehler aufgefallen. Ich hatte es als Bug gemeldet und dabei versucht, das Problem sehr ausführlich zu beschreiben, doch es ist nicht weiter behandelt worden und das Ticket wurde nun geschlossen.

Folgendes Problem tritt in Zusammenhang mit dem Mailformular und TemplaVoila auf:
Wenn für ein Mailformular eine Übersetzung in Form eines Language Overlays angelegt wird, dann wird das Formular an die Empfänger-Adresse aus dem ursprünglichen Datensatz gesendet. Die Feder und der Betreff wird jedoch übersetzt.

(mehr …)

Indexed Search Statistik

Beim Arbeiten mir der Indexed Search ist mir aufgefallen, dass die Indexed Search relativ ausführliche Statistiken schreibt – Anzahl der Treffer, Dauer der Abfrage, IP-Adresse, den Benutzer, der die Abfrage ausgelöst hat. Die von Indexed Search mitgelieferte Statistik ist dagegen ziemlich lächerlich – Suchwörter nach Trefferhäufigkeit sortiert. Dabei kann es interessant sein, wann gesucht wird und wonach und der Zusammenhang zwischen diesen Werten. Wenn man z.B. eine Seite mit einem Shop betreibt, kann man anhand der Suchworte bestimmte Tendenzen feststellen.

Ich habe nun angefangen, eine ausführliche Statistik zu schreiben. Die erste Version stellt die Suche nach Tagen dar – mit Auflistung der Suchwörter. Darüber wird in einer Grafik die Anzahl der Suchanfragen in einem bestimmten Zeitraum dargestellt.
Extension Key: np_indexed_search_stat

Ich habe selbst nur eine Seiten, in der ich die Statistik installiert habe, um sie zu testen. Allerdings werden da nicht allzuviele Suchanfragen durchgeführt. Es wäre daher interessant zu wissen, ob die Ansichten, die diese Statistik liefert, überhaupt aussagekräftig sind.

UPDATE: Ich habe eine Seite, auf der die Extension installiert ist und die aussagekräftige Ergebnisse liefert.
Screenshot np_indexed_search_stat
Der Screenshot stellt die Anzahl der Suchanfragen über die Zeit dar. Die Seite ist seit November ungefähr online, nach der Live-Schaltung nimmt die Anzahl der Suchanfragen zu.

TYPO3 Template Vorlage

Um eine Testseite anzulegen: einfach ein Template auf der Rootseite anlegen, css_styled_content inkludieren und den Code aus der Easy-Template Datei einfach ins Setup pasten. Diese CSS-Datei ins Fileadmin-Verzeichnis packen und schon hat man eine kleine TYPO3-Seite zum Testen.

Geschrieben in TYPO3 | Kommentare deaktiviert für TYPO3 Template Vorlage

Schönheitsfehler Modern FAQ (irfaq)

Die Extension Modern FAQ (irfaq) ist super – hat allerdings zwei kleine Macken, wenn man sie einfach so installiert:
Das leere Div nach der Frage in der Dynamic View – das wird im IE mit der Höhe 1em dargestellt und ist außerdem kein valides XHTML. Um dem vorzubeugen, muss man das Div durch einen Span ersetzen und dort ein Kommentar reinschreiben (<!– –>). Zusätzlich ist das um die Frage gewrappte p-Tag nicht valide, das wird aber durch lib.parseFunc_RTE auf beide Felder angewendet, auch wenns beim ersten Feld nicht nötig wäre. Ich habe einen Bugtracker-Eintrag verfasst und hoffe, dass es gefixt wird, ansonsten selbst machen (Zeile 703ff in class.tx_irfaq_pi1.php) und den Funktionsaufruf $this->formatStr entfernen.

$markerArray[‚###FAQ_Q###‘] = $this->cObj->stdWrap(
htmlspecialchars($row[‚q‘]),
$this->conf[‚question_stdWrap.‘]
);

Extension für Kurspläne

Mir ist aufgefallen, dass viele Fitnessclubs zwar Kurspläne auf deren Webseiten haben, meistens aber in Form von PDFs zum Download. Und an Feiertagen ist in den Studios sowieso ein anderer Plan und der ist dann wieder auf einer anderen Seite zu finden.
Typisch für Kurspläne in Fitnessstudios ist auch die Organisation – es gibt eine feste Anzahl an Kursen, zu denen eine Beschreibung vorliegt, die Kurse werden an verschiedenen Tagen angeboten von unterschiedlichen Trainern. Die Kurse kann man in wenige Kategorien einteilen – Ausdauer, Funktional, Kraft z.B.
Aus diesen Vorgaben habe ich eine Extension konzipiert, mit der sich so ein Kursplan anlegen lässt. Der Extension-Key ist np_timetable, und sollte ab heute im TER verfügbar sein. Ich freue mich über Tests und Feedback.

Regulärer Ausdruck zum Rausparsen des src-Attributs aus img-Tags

Das kann sinnvoll sein, wenn man Bilder mit lib/div mit der Klasse Image generiert und dann aber nicht das ganze Bild braucht, sondern nur das src-Attribut. Kann ja sein…
$this ist in diesem Fall die View.

$imgRo = $this->image($item[‚images‘][0], ’70‘, ’50‘, NULL, NULL, $item[‚title‘]);
$pattern = ‚/.*src\w*=\w*“([^“]*)“.*/‘;
$imgRoPath = preg_replace($pattern, ‚$1‘, $imgRo);

Geschrieben in TYPO3 | Kommentare deaktiviert für Regulärer Ausdruck zum Rausparsen des src-Attributs aus img-Tags

Indexsuche und Indizierung nach Gruppen

Die indexed_search findet nur die Datensätze, die mit den gleichen Benutzergruppen indiziert worden sind, wie der aktuell suchende Seitenbesucher. Das kann etwas nervig sein, wenn man viele Benutzergruppen hat und die alle unterschiedlich miteinander kombiniert werden können.

Beispiel: Es gibt nur zwei Bentuzergruppen „Gruppe A“ und „Gruppe B“. Wenn die Seiten also für Gruppe A und Gruppe B indiziert worden sind, und der Besucher der Webseite einer von beiden Gruppen angehört, werden Seiten gefunden. Gehört der Besucher gleichzeitig zu Gruppe A und Gruppe B, gibt es ein Problem – es werden beim Suchen keine Seiten gefunden. Nach dem Prinzip „Better save than sorry“ (steht so im Quelltext) wird lieber nichts ausgegeben.

(mehr …)