Backend Zurück-Button beeinflussen

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • eS_IT
    Contao-Fan
    • 21.07.2010
    • 585

    #1

    Backend Zurück-Button beeinflussen

    Hallo Zusammen,

    ich beiße mir gerade an einem Problem die Zähne aus und hoffe Ihr könnt mir helfen.

    Hintergrund:
    Ich schreibe gerade einige Erweiterungen. Diese möchte ich nicht über ein Icon in der Seitenleiste anklicken (wie üblich), sondern über eine gefilterte Mitlgiederliste. Ich habe also nur ein Icon in der Seitenleiste, dies ruft die Mitgliederliste auf, in dieser werden dann die Icons eingeblendet. Sie werden über eigene Aktionen in
    PHP-Code:
    $GLOBALS['TL_DCA']['tl_member']['list']['operations'] 
    
    erstellt. In der Config-Datei der Erweiterungen stehen alle unter
    PHP-Code:
    $GLOBALS['BE_MOD']['Manager']['actions'] 
    
    Klappt alles, ich habe meine Icons und kann meine Erweiterungen so aufrufen. Die Erweiterungen werden im Sorting-Mode 4 angezeigt.

    Problem:
    Wenn ich in einer meiner Erweiterungen oben im Kopf den Zurück-Button drücke, lande ich auf einer leeren Seite. In meinen Erweiterungen steht immer do=actions. Nur bei dem Zurück-Button steht do=TABELLENNAME.

    Fragen:
    Wie kann man das Link-Ziel des Zurück-Links anpassen?
    Bin ich total auf dem Holzweg und mache alles falsch?
    Gibt es einen anderen Weg, Erweiterungen nicht in der Seitenleiste auftauchen zu lassen?

    Jeder Tipp ist willkommen.

    Viele Grüße,
    eS_IT
    Viele Grüße,
    eS_IT
    --
    e@sy Solutions IT - Ihr Partner für professionelle Softwareentwicklung
    Website - Contao Codebook - Partnerprofil - GitHub
  • markocupic
    Contao-Fan
    • 06.12.2010
    • 664

    #2
    Hallo Es_IT
    Du könntest es über den parseBackendTemplateHook lösen.
    In der Config-Datei registriest du den Hook und im dca-Verzeichnis in tl_sowieso schreibst du in der registrierten Methode "den Replace-Code".
    Unten ein Beispiel, wie ich es mache.
    Reicht dir das?
    Liebe Grüsse

    Marko

    PS: Dein Password-Resetter ist übrigens der absolute Hit.

    in die config.php
    Code:
    $GLOBALS['TL_HOOKS']['parseBackendTemplate'][] = array('MyClass', 'myParseBackendTemplate');
    in tl_sowieso die Methode wobei blabla zu deiner gewünschten Seite führen sollte:
    Code:
    	
    //MyClass.php
    public function myParseBackendTemplate($strContent, $strTemplate)
    {
    		
    		if ($this->Input->get('act') == '?????')
    		{
    			$strContent=preg_replace('/<a href=(.*?) class=\"header_back\"/','<a href="contao/main.php?do=blabla"',$strContent);		
    		}
    		return $strContent;
    }
    Zuletzt geändert von markocupic; 24.07.2011, 21:37.
    Anfragen für bezahlten Support oder Extension-Programmierung via PN.

    Kommentar

    • eS_IT
      Contao-Fan
      • 21.07.2010
      • 585

      #3
      Hallo Marko,
      danke für den Tipp und danke für das Lob.

      Es klappt super und ist genau das was ich gesucht habe. Ich musste nur eine Kleinigkeit ändern und möchte es hier für alle Interessierten festhalten:
      PHP-Code:
      $strContent=preg_replace('/<a href=(.*?) class=\"header_back\"/','<a href="contao/main.php?do=blabla"',$strContent); 
      
      Die Klasse muss wieder mit eingefügt werden, da sie mit gesucht wird. Sonst verschwindet das Icon. Es sieht dann so aus:
      PHP-Code:
      $strContent=preg_replace('/<a href=(.*?) class=\"header_back\"/','<a href="contao/main.php?do=blabla" class="header_back"',$strContent); 
      
      Vielen Dank noch mal und viele Grüße,
      eS_IT
      Viele Grüße,
      eS_IT
      --
      e@sy Solutions IT - Ihr Partner für professionelle Softwareentwicklung
      Website - Contao Codebook - Partnerprofil - GitHub

      Kommentar

      • The_Unknown
        Contao-Nutzer
        • 29.01.2013
        • 157

        #4
        Ich krame diesen Thread noch einmal raus, weil ich ein ähnliches Problem habe. Mit dem o.g. Workaround habe ich es fast hinbekommen, dass so so funktioniert, wie es soll. Nun scheint aber der Zurück-Button nicht nur eine URL aufzurufen, sondern auch die SESSION einzubeziehen. Ich habe Events erweitert, dass sie auch Unter-Events haben können und so eine Hierarchie aufgebaut werden kann. Dafür gibt es an jedem Event eine Operation, die mich zu den Unterevents des entsprechenden Events bringt. Angezeigt wird trotzdem einfach die Event-Liste von Contao, nur, dass ich anhand eines GET-Parameters filtere mit:

        Code:
        $GLOBALS['TL_DCA']['tl_calendar_events']['list']['sorting']['root'] = //filter...
        Dort können dann neue Events hinzugefügt werden, die wiederum Unter-Events haben können usw. Entsprechend der GET-Parameter passe ich nun den Zurück-Button immer entsprechend an. Wenn ich aber einem Event ein Unter-Event hinzufüge und dieses dann mit dem Stift bearbeite, dann auf Speichern und schließen gehe, und schließlich "Zurück" anklicke, wird zwar die richtige URL aufgerufen, aber die Liste der Events bleibt leer. Rufe ich dieselbe URL in einem Browser auf, der die entsprechenden Session-Daten nicht hat, wo ich also noch nicht in dieser Art navigiert bin, klappt der Aufruf.

        Vielleicht hat jemand einen Tipp?

        Kommentar

        Lädt...