[TYPO3-german] Eigene Seiteneinstellung sliden und Seitenübersetzung mit Fallback auf Standardsprache

David Gurk dgurk at medienwerft.de
Thu Dec 13 11:03:34 CET 2012


Hallo zusammmen,

folgende Situation: An den Seiten selbst kann man ein Hintergrundbild pflegen. Wenn kein Bild gepflegt ist, wird in den Elternseiten nach ein vorhandenes Bild gesucht (slide). Zusätzlich gibt es noch ein paar mehr Optionen mit selben Verhalten, welche ich hier der Übersicht zur Liebe weggelassen habe.

Dies funktioniert auch bei mehreren Sprachen gut, solange ein Hintergrundbild für alle Sprachen genommen werden kann. Nun ist es aber so, dass ich gerne dieselbe Funktionalität auch in übersetzten Seiten verfügbar machen möchte, mit einen Fallback auf die Standardsprache. Also soll im Grund bei pflegen alles so bleiben wie ist, nur wenn man in der Übersetzung doch mal ein anderes Hintergrundbild haben möchte, soll dieses das Standardbild überschreiben.

Hier mal mein Aufbau:
Verwendetes System TYPO3 CMS 4.6.15 mit einer kleinen Extension, welche die Anpassungen bündelt.

ext_tables.sql
http://pastebin.com/uEerj1EL
[sql]
#
# Table structure for table 'pages'
#
CREATE TABLE pages (
    tx_extendtest_background_image text,
);

#
# Table structure for table 'pages_language_overlay'
#
CREATE TABLE pages_language_overlay (
    tx_extendtest_background_image text,
);
[/sql]

ext_tables.php
http://pastebin.com/gSrg6ziV
[php]
// TCA Konfigurationen

/***
* pages-Tabelle Erweitern
*/
$TCA['pages']['columns']['tx_extendtest_background_image'] = array(
    'label' => 'LLL:EXT:'.$_EXTKEY.'/Resources/Private/Language/extend-pages.xlf:tx_extendtest_background_image.label',
    'config' => array(
        'type' => 'group',
        'internal_type' => 'file',
        'uploadfolder' => 'uploads/pics',
        'show_thumbs' => 1,
        'size' => 1,
        'allowed' => 'jpg',
        'disallowed' => '',
    ),
);

/***
* pages_language_overlay-Tabelle Erweitern
*/
$TCA['pages_language_overlay']['columns']['tx_extendtest_background_image'] = $TCA['pages']['columns']['tx_extendtest_background_image'];
$TCA['pages_language_overlay']['columns']['tx_extendtest_background_image']['l10n_cat'] = 'media';
$TCA['pages_language_overlay']['columns']['tx_extendtest_background_image']['l10n_mode'] = 'mergeIfNotBlank';
[/php]

ext_localconf.php
http://pastebin.com/ZY3wPE5t
[php]
/***
* pages-Tabelle Erweitern
*/
// Elemente 'slide'-bar machen
$GLOBALS['TYPO3_CONF_VARS']['FE']['addRootLineFields'] .= ',tx_extendtest_background_image';

/***
* pages_language_overlay-Tabelle Erweitern
*/
$TYPO3_CONF_VARS['FE']['pageOverlayFields'] .= ',tx_extendtest_background_image';
[/php]

Und im TypoScript habe ich dann schon so einiges versucht:
http://pastebin.com/CwXpXmdc
[typoscript]
page.5 = COA
page.5 {
    5 = TEXT
    5 {
        wrap = -Field: |-
        field = tx_extendtest_background_image
    }
    10 = IMG_RESOURCE
    10 {
        wrap = -IMG_RESOURCE: |-
        file.import = uploads/pics/
        file.import.data = tx_extendtest_background_image:-1,slide
        file.import.override.field = tx_extendtest_background_image
    }
    20 = TEXT
    20 {
        wrap = -TEXT: |-
        data = tx_extendtest_background_image:-1,slide
        override.field = tx_extendtest_background_image
    }
    30 = TEXT
    30 {
        wrap = -TEXT2: |-
        data = levelfield:-1, tx_extendtest_background_image, slide
        override.field = tx_extendtest_background_image
    }
}[/typoscript]

In der Standardsprache bekomme ich bei allen Varianten die korrekten Werte ausgelesen, nur bei Übersetzungen bleibt der Wert immer leer, es sei ich weise der Übersetzung ein eigenes Bild zu. Es findet also kein Fallback auf das Bild der Standardsprache statt.

In der Datenbank ist das Feld für der Hintergrundbild in "pages_language_overlay" natürlich leer. Aber das sollte es logischerweise auch sein.

Ich habe jetzt soweit die "l10n_mode"'s durch. "mergeIfNotBlank" empfinde ich immer noch als am logischsten.

Habe ich hier irgendwo einen Denkfehler, oder kann das überhaupt nicht klappen?


More information about the TYPO3-german mailing list