Monatsarchiv Februar 2012

Label für Elemente in der Listenansicht anpassen

In TYPO3 kann man in der TCA Konfiguration der eigenen Extension festlegen, welches Feld im Standardfall als Label für die Elemente benutzt wird. Es ist eigentlich ganz einfach: Man erstellt eine Datei mit der Klasse, die das Label erzeugt:

require_once(PATH_t3lib.'class.t3lib_befunc.php');
 
class user_TimeslotLabelClass {
 
	function getUserLabel($params, &$pObj) {
		$course = $params['row']['course'];
		$mylabel = $params['row']['time_start'];
 
		if ($course) {
			$item = t3lib_BEfunc::getRecord('tx_nptimetable_course', $course);
			$mylabel.= ', '.$item['title'];
		}
		$params['title'] = $mylabel;
	}
}

Dann muss man in der TCA-Datei die Datei mit der Klasse inkludieren und aufrufen:

$TCA['tx_nptimetable_timeslot'] = array (
	'ctrl' => array (
		'title'     => 'LLL:EXT:np_timetable/Resources/Private/Language/locallang_db.xml:tx_nptimetable_timeslot',		
		'label'     => 'time_start',
		'label_alt'	=> 'course,time_end',
		'label_userFunc' => "user_TimeslotLabelClass->getUserLabel",
...

Die Anleitung gibt es auf der Seite von Stefan Meissner.

Damit es wirklich funktioniert, muss man allerdings ein paar Kleinigkeiten beachten: Die Felder, die man der Funktion verwenden möchte, müssen zur Verfügung stehen, und das passiert erst dann, wenn sie als label oder label_alt angegeben sind. In dem Code-Schnipsel von mir habe ich das Feld course als label_alt angegeben, und das obwohl das Label danach mit einer Funktion gesetzt wird. Ansonsten steht es in $params nicht zur Verfügung.

Geschrieben in TYPO3 | Kommentare deaktiviert für Label für Elemente in der Listenansicht anpassen

Bug in tt_address

Schon wieder. Es ist nur eine kleine Klammer, aber mit großer Wirkung. Zumindest wurde bei mir nicht korrekt sortiert, wenn ich eine Eigenschaft ausgewählt habe (was anderes als name). Der Grund dafür ist die viel zu sehr verschachtelte Abfrage, um die Sortier-Reihenfolge festzulegen.
Was nicht funktioniert (class.tx_address_pi1.php Zeilen 140ff):

$this->conf['sortByColumn'] = $this->ffData['sortBy'] ?
	$this->ffData['sortBy'] :
		$this->conf['sortByColumn'] ?
			$this->conf['sortByColumn'] :
			'name';

Was aber funktioniert:

$this->conf['sortByColumn'] = $this->ffData['sortBy'] ?
	$this->ffData['sortBy'] :
		($this->conf['sortByColumn'] ?
			$this->conf['sortByColumn'] :
			'name');

Die fehlende Klammer sorgt dafür, dass die Sortierung immer auf „name“ gesetzt wird, egal was ausgewählt wurde.

Formular in TYPO3 nicht in deutsch

In der neuen TYPO3 Version werden die Formulare mit einem neuen Formularwizard erstellt. Im Vergleich zum alten Wizard kann man Felder mit Drag-and-Drop hinzufügen und diese mit Validierungsregeln überprüfen lassen, Felder in Fieldsets gruppieren und das Formular nicht nur per Mail verschicken, sondern mit eigenen Post-Prozessoren die Daten in die Datenbank speichern.
Im Frontend gefallen mir die neuen Formulare viel besser als die vom alten Wizard. Zum einen sind wir alle diese leidige Feld-Validierung mit JavaScript los, die mit einem alert etwas penetrant darauf hingewiesen hat, dass Felder nicht ausgefüllt sind. Zum zweiten kann man die Felder endlich gruppieren und dadurch das Formular evtl. individueller gestalten als vorher.
Leider ist der Wizard so neu, dass es dafür noch keine deutsche Übersetzung gibt. Zumindest habe ich keine gefunden. Und es gab noch keine Forumsbeiträge zu dem Thema. Ich hatte bei schlauen Leute nachgefragt, ob ich denn etwas übersehen hätte, aber sie hatten mir auch nur geraten, es so zu machen, wie ich es schon vorhatte: Die Übersetzung selbst im typo3conf/l10n Ordner einpflegen.
Die Übersetzungen mancher (vor allem neueren) Extensions befinden sich in Dateien, die im Order typo3conf/l10n gespeichert sind. Für jede Sprache und für jede Extension, zu der eine Übersetzung vorliegt, wird in diesem Ordner die folgende Struktur angelegt:
typo3conf/l10n/[sprache]/[extension]. So dass die Übersetzung für die Formularextension (alias der neue Form Wizard) in typo3conf/ext/de/form liegen müsste, dieser Ordner existiert aber nicht.
Und so übersetzt man selbst in freudiger Erwartung die Extension form wie folgt: Eine existierende Sprache für die Form-Extension aus dem TER laden (z.B. französisch). Dann den Ordner form aus typo3conf/ext/l10n/fr/ kopieren und in typo3ext/l10n/de einfügen. Im Ordner form navigiert man zu Resources/Private/Language und benennt die Dateien dort um, so dass sie mit de. anstatt fr. beginnen. Zum Testen kann man den Form-Wizard aufrufen und feststellen, dass alles auf französisch ist. Und dann kann man die Texte übersetzen. Die XML-Dateien sind die alte Art Extensions zu übersetzen, die XLF-Dateien die neue, die anscheinend bevorzugt wird. Daher die XML-Dateien ignorieren und nur die Labels in den XLF-Dateien anpassen.

<trans-unit id="title" xml:space="preserve" approved="yes">
    <source>Form Wizard</source>
<target state="translated">HIER DIE DEUTSCHE ÜBERSETZUNG REIN</target></trans-unit>

Ich bin nicht wirklich zufrieden mit dieser Übersetzungsmöglichkeit. Ein Update und die ganzen eingepflegten Texte sind hin, sie werden dann mit den Übersetzungen aus dem Repository überschrieben. Vielleicht gibt es ja eine Möglichkeit, die Texte per TypoScript zu setzen mit _LOCAL_LANG? Werde das mal weiter untersuchen.

UPDATE: Es gibt eine Möglichkeit, zumindest den Text, der nach dem Absenden angezeigt wird, per TypoScript zu setzen.

postProcessor {
	1 = mail
	1 {
		recipientEmail = receiver@domain.coom
		senderEmail = sender@domain.com
		subject = Contact Form
		messages.success = Das ist ein Text, der über TypoScript gesetzt wird
	}
}

Step Choreo

Block 1 (bilateral)
9 – Squat, Kick L auf 4, halber Turn Reverse auf Nordseite
7 – Box over R zurück zu Süd, Stomp R
Aufbau:

  • Repeater + 2 Basic
  • 2 Basic = 1 March + Mambo R + Stomp R
  • Repeater = Stomp + Kick auf 4 + March auf L
  • Stomp, dann Straddle + Kick auf 4 + halber Turn Reverse auf Südseite etc.

Block 2 (unilateral)
8 – Single Stomp over kreuzen, Double Stomp Tango auf dem Boden Südeseite
8 – Kneelift over zurück kreuzen, Mambo Chacha am Boden

Block 3 (bilateral)
10 – L-Step Kneelift, Tap R, 2 March Drehung zu 180° Frontwechsel, Switch
6 – Sixpoint, mit dem ersten Stomp zurück nach Süd kreuzen
Aufbau:

  • Repeater + 2 Basic
  • 2 Basic = 2 March + Sixpoint
  • Repeater = L-Step mit 3 Knee zur Seite
  • mittlerer Knee wird zu Tap
  • statt letzem Knee und 2 March = 2 March, Switch
  • zum Schluss den Frontwechsel

Block 4 (bilateral)
10 – Mambo seit, Box längs über Step, andere Seite Schritt nach außen
6 – Double Knee
Aufbau:

  • 2 Basic + Repeater
  • Repeater = 2 March + Double Knee
  • 2 Basic = Mambo + Basic
  • Mambo zur Seite, Basic als Box over mit Ausfallschritt nach außen

Block 5 (bilateral)
8 – 2 March rauf, Switch, Turn zur Nordseite ab, dabei Knie hoch
8 – Flieger over zurück, Mambo
Aufbau:

  • 2 Basic + Repeater
  • 2 Basic = 2 March rauf, Switch, March am Platz
  • Repeater = Flieger + Mambo

Geschrieben in choreos | Kommentare deaktiviert für Step Choreo