Ergebnis 1 bis 5 von 5

Thema: Bestehende Content Elemente automatisch erweitern

  1. #1
    Contao-Nutzer
    Registriert seit
    17.07.2010.
    Beiträge
    127

    Standard Bestehende Content Elemente automatisch erweitern

    Hallo zusammen,

    ich entwickle gerade meine erste offizielle Extension mit der es möglich wird, für jedes Content Element ein eigenes Template zu wählen.

    Das gewählte Template wird mit folgendem Code gesetzt:
    PHP-Code:
    class ContentTextTemplate extends ContentText
    {    
        
    /**
         * Generate content element
         */
        
    protected function compile()
        {
            if (
    $this->ce_template) {            
                
    $this->Template = new FrontendTemplate($this->ce_template);
            }        
            
    parent::compile();    
        }    

    Nun müsste ich für jedes CE eine eigene Klasse nach diesem Muster anlegen, wobei der Code identisch ist. Einzig die erweiterte Klassen unterscheiden sich.

    Fällt jemandem eine Möglichkeit ein, das zu vereinheitlichen/"automatisieren"? Die regulären Funktionen eines CE sollen natürlich beibehalten werden.

    Mfg
    sans
    Geändert von sans (02.04.2011 um 20:50 Uhr)

  2. #2
    Contao-Nutzer
    Registriert seit
    17.07.2010.
    Beiträge
    127

    Standard

    Ich versuche den Weg nun über den Hook getContentElement(), mit dem es meiner Meinung nach möglich sein sollte.

    Nur finde ich jetzt keine Lösung um das Template in $objElement zu ändern. Das Objekt schaut wie folgt aus:
    PHP-Code:
    ContentImage Object
    (
        [
    strTemplate:protected] => ce_image
        
    [arrData:protected] => Array
            (
                [
    id] => 82
                
    [pid] => 29
                
    [sorting] => 128
    [...] 
    Die Werte in arrData (also z.B. id) kann ich ohne weiteres über $objElement->id erreichen.
    Aber wie erreiche ich strTemplate?

    Auch mit new FrontendTemplate() hatte ich keinen Erfolg.

    Wo liegt mein Fehler?

  3. #3
    Contao Core-Team
    Association Vorstand
    Avatar von andreas.schempp
    Registriert seit
    15.06.2009.
    Ort
    Lyss
    Beiträge
    5.622
    Partner-ID
    8667
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Der "Fehler" liegt wohl darin dass das nicht vorgesehen ist? Ich zweifle ob das möglich ist...
    terminal42 gmbh
    Wir sind Contao Premium-Partner! Für Modulwünsche oder Programmierungen kannst du uns gerne kontaktieren.
    Hilfe für Isotope eCommerce kann man auch kaufen: Isotope Circle

  4. #4
    Contao-Nutzer
    Registriert seit
    17.07.2010.
    Beiträge
    127

    Standard

    Vorgesehen vermutlich nicht, aber ich hoffte trotzdem irgendwie möglich.
    Fällt dir zufällig eine andere Lösung für das eigentliche Problem (aus dem ersten Post) ein, oder bleibt mir nichts anderes übrig als jeweils eine eigene Klasse zu erstellen?

  5. #5
    Gesperrt
    Registriert seit
    02.12.2009.
    Ort
    Berlin
    Beiträge
    103

    Standard

    ja, manchmal ist Contao etwas starr. Insbesondere die Tatsache, dass man die Variablen wie in deinem Fall sieht, sie aber nicht ändern kann, da sie protected sind. Und da sie das sind, kannst Du sie nur verändern, wenn Du in einer Klasse bist, die sich von dieser ableitet, was Du an der Stelle der Hooks aber nicht bist.

    Ein public hier und da mehr, hätte da etwas mehr Flexibilität reingebracht - auch wenn das protected sicher vernünftiger ist. :P

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
  •