Ergebnis 1 bis 7 von 7

Thema: Wie Contao Funktion (updatesicher) überschreiben?

  1. #1
    Contao-Fan
    Registriert seit
    02.09.2009.
    Beiträge
    307

    Frage Wie Contao Funktion (updatesicher) überschreiben?

    Hallo,

    ich möchte eine Funktion der Backend Klasse tl_page überschreiben und habe dazu die Klasse my_tl_page angelegt und in einem eigenen Modulordner abgelegt.

    Code:
    class my_tl_page extends tl_page
    { 
     public function generateArticle(DataContainer $dc)
    	{
    		[...] // code zur Übersicht verkürzt!
    
    		if( $arAlias = explode('/',$dc->activeRecord->alias) )
    			$arrSet['alias'] = end($arAlias);
    		else
    			$arrSet['alias'] = $dc->activeRecord->alias;
    		
    		[...] // code zur Übersicht verkürzt!
    	}
    }
    Nun müsste die Klasse "my_tl_page" noch statt der Klasse "tl_page" registriert und das Ausführen meiner Funktion veranlasst werden. Leider bin ich php-mäßig nicht der König und auch Contao-mäßig immernoch Anfänger. Hat jemand einen Tipp wie ich es schaffe, dass meine Funktion statt der in der ursprünglichen Klasse ausgeführt wird um den Artikelalias zu generieren?

    Tausend Dank,
    juju

  2. #2
    Administrator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    14.557
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao
    Contao Community Administrator

    [Unterstützungsmöglichkeiten]

  3. #3
    Contao-Fan
    Registriert seit
    02.09.2009.
    Beiträge
    307

    Standard

    Hallo xchs,

    danke für die links!

    Den oberen hatte ich natürlich schon gelesen. Leider scheitert es an $GLOBALS[BE_MOD], da ich nicht finden konnte wo ich mich da einklinken kann. Aber ich werd mir den zweiten link gleich mal zu Gemüte führen und mich ggf. nochmal melden.

    Danke & Gruß,
    juju

  4. #4
    Contao-Urgestein Avatar von FloB
    Registriert seit
    19.06.2009.
    Ort
    Sonnensystem
    Beiträge
    1.618

    Standard

    Zitat Zitat von juju Beitrag anzeigen
    Leider scheitert es an $GLOBALS[BE_MOD], da ich nicht finden konnte wo ich mich da einklinken kann.
    In der config.php eines eigenen Moduls (nachdem die relevanten Module geladen wurden, im Zweifel das Modul mit 'zzz_' beginnen lassen) oder in dcaconfig.php.

    Allerdings musst du wohl nicht BE_MOD ändern, denn du scheinst einen DCA-Callback modifizieren zu wollen. Dazu einfach die entsprechende Callback-Referenz im DCA modifizieren und die Klasse dazupacken.
    So long,
    FloB since Nov. 2007 +706P +115P and counting

  5. #5
    Contao-Fan
    Registriert seit
    02.09.2009.
    Beiträge
    307

    Standard

    Hallo FloB,

    auch Dir danke für die Antwort.

    Ich bin halt nicht sicher wo ich damit hin muss. Es geht um den Moment in dem eine neu erstellte Seite gleichzeitig einen neuen Artikel erzeugt. Hier darf bei installierter Extension folderUrl nicht der gleiche (die Ordnerstruktur der Site abbildende) Alias auch für den Artikel verwendet werden, da das zu einer Fehlermeldung beim Speichern des Artikels führt. Also muss ich da irgendwie zwischen und weiß nicht wie.

    Nebenbei: Wenn ich den Code direkt in der tl_page Klasse anpasse funktioniert das schon, aber es sollte ja updatesicher sein.

    Gruß,
    juju

    PS: Achso und mein Modulordner hieß schon "z_modulname" :-) Aber danke für den Tipp

  6. #6
    Administrator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    14.557
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von juju Beitrag anzeigen
    Hier darf bei installierter Extension folderUrl nicht der gleiche (die Ordnerstruktur der Site abbildende) Alias auch für den Artikel verwendet werden, da das zu einer Fehlermeldung beim Speichern des Artikels führt.
    Ah, auf das hier beziehst Du Dich. Hat Andreas hierfür noch keine Lösung gefunden?
    Contao Community Administrator

    [Unterstützungsmöglichkeiten]

  7. #7
    Contao-Urgestein Avatar von jan.theofel
    Registriert seit
    23.06.2009.
    Ort
    Berlin
    Beiträge
    1.846

    Standard

    Hi Juju,

    Zitat Zitat von juju Beitrag anzeigen
    ich möchte eine Funktion der Backend Klasse tl_page überschreiben und habe dazu die Klasse my_tl_page angelegt und in einem eigenen Modulordner abgelegt.
    Ich halte das Ableiten einer neuen Klasse von einer Basisklasse generell für eine Herangehensweise, die man nicht einsetzen sollte.

    Sobald du mehrere Erweiterungen hast, die neue Funktionen zu tl_page (in deinem Beispiel) hinzufügen wollen, wir nur eine es schaffen - aber nie alle.

    Der bessere Weg dazu sind Hooks. Leider fehlen die noch an vielen Stellen in Contao. Ein Umstand, den ich gerne auch auf der Contao Developer Conference in größerer Runde diskutieren würde.

    Jan
    Jan Theofel
    Barcamp-Moderator für Corporate-Barcamps und öffentliche Barcamps

Aktive Benutzer

Aktive Benutzer

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

Ähnliche Themen

  1. Login Modul Template Updatesicher hinzufügen / überschreiben
    Von christian.kolb im Forum Entwickler-Fragen
    Antworten: 6
    Letzter Beitrag: 16.04.2010, 10:58
  2. ContentTeaser.php updatesicher überschreiben
    Von Arno im Forum Sonstiges zu Contao
    Antworten: 10
    Letzter Beitrag: 13.04.2010, 19:37
  3. Plugins updatesicher machen
    Von andreasisaak im Forum Sonstiges zu Contao
    Antworten: 1
    Letzter Beitrag: 24.07.2009, 15:04

Lesezeichen

Lesezeichen

Berechtigungen

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