Ergebnis 1 bis 4 von 4

Thema: Feldtyp HTML für dma_elementgenerator möglich?

  1. #1
    Contao-Nutzer Avatar von sgei
    Registriert seit
    12.12.2011.
    Beiträge
    98

    Frage Feldtyp HTML für dma_elementgenerator möglich?

    Hallo JanoschSkuplik,

    Ich habe mal noch eine Bitte bzw. Frage:

    Kannst du auch ein HTML-Feldtyp mit bereitstellen, der dann z.B. den Inserttag {{iflng::}} bekommen kann und somit das nachfolgende Feld nur einblendet, wenn die Sprache passt?

    Folgender Hindergrund:

    Wir haben eine mehrsprachige Website. Es gibt selbstverständlich für jede Sprache einen eigenen Seitenbaum etc.
    Unsere Redakteure wollen gern den Inhalt in einer Ansicht für alle Sprachen pflegen. Prinzipiell geht das ja mit Contao so nicht.

    ABER:

    Ich habe folgendes gemacht:

    -in den Artikel der jeweiligen Fremdsprache habe ich ein Inhaltselement vom Typ Artikel gesetzt, dann auf den Artikel der Hauptsprache linkt
    -jetzt muss ich also den Inhalt für die unterschiedlichen Sprachen im Artikel der Hauptsprache pflegen
    -das geht z.B. indem man das jeweilige Inhaltselement entsprechend vervielfältigt und davor mit {{iflng::SPRACHE}} die jeweilige Sprache abfragt

    -man kann aber noch eleganter sich mit dem dma_elementgenerator z.B. ein Inhaltselement "Überschrift für alle Sprachen anlegen"
    -dies beinhaltet dann z.B. zwei Textfelder für die Überschrift in DE und EN

    Jetzt weiß ich nur nicht wohin mit dem Insertag {{iflng::}}, damit immer eines von beiden angezeigt wird.

    Ich habe dazu folgende Krücke gemacht:

    Bei den Einstellungen des Feldtyps habe ich bei den CSS-Klassen die Sprache mitgegeben z.B. de bzw. en

    Dann habe ich in die Templates eine Sprachweiche eingebaut:

    PHP-Code:
    <?php
        
    global $objPage;
        
    $lang_br $objPage->language;             // aktuelle Seitensprache
        
    $css $this->class;                    // CSS-Klassen vom Feld
        
    $de 'de';                            // CSS-Klassenname DE
        
    $en 'en';                            // CSS-Klassenname EN
        
    $uni 'uni';                            // CSS-Klassenname für UNI-Sprache
        // prüft wleche CSS-Klasse das Feld hat
        
    $l_de strpos($css$de);
        
    $l_en strpos($css$en);
        
    $l_uni strpos($css$uni);
        
    // speichert in $lang die vergebene Sprache aus der CSS-Klasse
        
    if ($l_de !== false) {$lang $de;};
        if (
    $l_en !== false) {$lang $en;};
        if (
    $l_uni !== false) {$lang $uni;};
        
    // zeigt den Rest nur an, wenn die aktuelle Seitensprache gleich der
        // vergebenen Sprache mittels CSS-Klasse ist
        
    if (($lang_br == $lang) OR ($lang == 'uni')):
    ?>

    <?php endif; // schließt das IF vom Anfangsblock der Sprachweiche, kommt ganz ans Ende ?>
    Zwischen den beiden PHP-Blöcken steht der Inhalt des Originaltemplates.

    Somit kann man den Inhalt für verschiedene Sprachen direkt in einem Inhaltselement pflegen:

    ie_ueberschrift_02.jpg

    Ich denke, dass man mit einem HTML-Feldtyp sich die Templateanpassungen sparen kann. Oder?


    Steffen
    Geändert von sgei (28.01.2014 um 14:31 Uhr)

  2. #2
    Contao-Fan Avatar von JanoschSkuplik
    Registriert seit
    13.08.2009.
    Ort
    Raesfeld
    Beiträge
    536
    Partner-ID
    6909
    User beschenken
    Wunschliste

    Standard

    Halle Steffen,

    das HTML-Feld sollte kein Problem sein. Allerdings weiß ich nicht, ob es dein Problem löst. Hier ist das eigene Template vermutlich sinnvoller.

    Viele Grüße
    Janosch

  3. #3
    Contao-Fan Avatar von JanoschSkuplik
    Registriert seit
    13.08.2009.
    Ort
    Raesfeld
    Beiträge
    536
    Partner-ID
    6909
    User beschenken
    Wunschliste

    Standard

    Gerade ist mir noch aufgefallen: das HTML-Feld gibt es doch eigentlich schon. Einfach eine Textarea verwenden, den TinyMCE nicht anhaken und HTML erlauben.

  4. #4
    Contao-Nutzer Avatar von sgei
    Registriert seit
    12.12.2011.
    Beiträge
    98

    Standard

    Hallo Janosch,

    ja, das geht. Ich habe mir dann dazu ein eigenes Template gemacht mit dem Inhalt:

    PHP-Code:
    <?php echo $this->value ?>
    Damit steht wirklich nur der reine Code fürs Frontend zur Verfügung und wird nicht durch DIVs etc. geklammert.

    Jetzt würde ich gern das Textfeld mit einem Vorgabewert belegen ( z.B. {{iflng::de}} ) und die Ausgabe im Artikel (Backend) unterdrücken.

    Für das Unterdrücken der Ausgabe gibt es ja die Checkbox - passt.

    Aber der Vorgabewert wird nicht übernommen. -> neues Thema:

    https://community.contao.org/de/show...t-%FCbernommen

    Gibt es da eine schnelle Lösung?

    Steffen

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •