text: Weiterleitung abändern - Joomla! Programmierung - Joomla! Forum Deutschland
  Weiterleitung abändern
  Thema: Weiterleitung abändern (Gelesen 5697 mal)
  « am: 23. Oktober 2012, 13:56:43 »
  Hallo, mein Problem habe ich leider erfolglos an anderer Stelle gepostet: http://www.joomlaportal.de/plugins-j2-5/285249-plugin-f-r-weiterleitung.htmlNun hoffe ich auf Eure Hilfe.Wenn man unter den Aktionen "Beitrag erstellen" oder "Weblink erstellen" den "Abbrechen"-Button betätigt, wird man auf die "Root" der Seite weitergeleitet. Wie kann man das ändern?Hintergund ist der: Hat man eine Seite die ausschließlich für registrierte Benutzer gedacht ist und die anfangs (auf Home) nur einen Login zeigt, dann kommt man genau dort hin und sieht nur den Logout. Vielen Dank im voraus. Habak
  Antw: Weiterleitung abändern
  « Antwort #1 am: 23. Oktober 2012, 14:21:02 »
  Hallo,können bei dir Gäste Weblinks und Artikel hochladen?Du kannst entweder beim Edit-Link den gewünschten Link als base64-Verschlüsselten Parameter "return" mitgeben oder per Override das Formular abändern und in den versteckten return Parameter die base64-Verschlüsselte Zielurl eintragen.
  « Antwort #2 am: 23. Oktober 2012, 14:55:36 »
  Hallo Benjamin,vielen Dank für die Antwort. Die gesamte Seite ist nur für registrierte Mitglieder. Einzig die Login-Seite (Home) ist öffentlich. Somit dürfen nur registrierte Nutzer Artikel oder Weblinks hochladen.Mit dem Override komme ich leider noch nicht ganz klar. In der Datei "...\components\com_content\views\form\tmpl\edit.php" finde ich folgenden Abschnitt:<button type="button" onclick="Joomla.submitbutton('article.cancel')"> <?php echo JText::_('JCANCEL') ?></button> Wie baue ich jetzt dort die Zielurl ein? Statt "joomla\index.php" wohin man normalerweise geleitet wird, sollte es "joomla\startseite\index.php" sein.Und noch eine letzte Frage: Warum soll ich das verschlüsseln?Vielen Dank.GrußHabak
  « Antwort #3 am: 24. Oktober 2012, 09:12:57 »
  Hallo,Infos zu Overrides allgemein gibt es hier: www.joomla-wiki.de/dokumentation/OverrideUm einen String (bzw. eine URL) mit base64 zu kodieren brauchst du das hier: php.net/manual/de/function.base64-encode.php (oder einen Onlinegenerator: www.google.de/search?q=base64+generatorNun gibt es wie oben gesagt zwei Möglichkeiten:1. du hängst an deinen Edit-Link einfach an die url &return=xxxxxx wobei "xxxxxx" die Zielurl base64 kodiert ist, Joomla übernimmt dann alles2. du suchst in der Templatedatei des Views (wo du ja scheinbar schon drin bist) nach dem versteckten Feld "return" und gibst dort als Wert die Base64 kodierte URL an (als Override)
  « Antwort #4 am: 24. Oktober 2012, 11:35:05 »
  Hallo Benjamin,vielen Dank für die Tipps.Habe mich für Variante 2 (Override) entschieden; klappt prima.Gibt es in Joomla eigentlich eine Funktion die man verwenden kann, um zur letzten Ansicht zurück zu kommen?GrußHabak
  « Antwort #5 am: 24. Oktober 2012, 12:04:53 »
  Nur indem du beim Edit-Link die aktuelle Url (JFactory::getUri()->toString()) als return-Parameter mitgibst oder (unzuverlässig) in der Formansicht den Referer abfrägst.
  « Antwort #6 am: 24. Oktober 2012, 12:55:11 »
  Hallo Benjamin,was verstehst Du unter anhängen?Ich habe nur einen Menüpunkt "Weblink einreichen", der in einem Menü mit href..... aufgeführt ist.Wie soll ich da etwas anhängen?Vielen Dank.Gruß Habak
  « Antwort #7 am: 25. Oktober 2012, 12:38:36 »
  Das ganze kommt jetzt drauf an, was du PHP-mäßig kannst. Die Ideen gehen von einem Menüpunkt "externer Link", der auf den richtigen Menüpunkt zeigt über "custom HTML Modul" mit eigenen Links bis hin zu einem eigenen Modul, dass für gewisse Menüpunkte return-Parameter anhängt.
  « Antwort #8 am: 26. Oktober 2012, 17:42:54 »
  Hallo Benjamin,vielen Dank für die Antwort.Hört sich ja mächtig aufwendig an, nur das man auf die letzte Seite zurück kommt.Aber man wächst ja mit seinen Aufgaben.Trotz PHP-Laien habe ich mich am Modul versucht:Code: [Auswählen]defined('_JEXEC') or die;require_once dirname(__FILE__).DS.'helper.php';$session = JFactory::getSession();// die aktuelle url encodiert speichern$lasturl = base64_encode ( JURI::current() );// Menues einlesen$menus = &JSite::getMenu();//das aktive Menue einlesen$menu= $menus->getActive();$menuID = $menu->id; //menu item id$route = $menu->route; //page sef url path$menulink = $menu->link; //menu link//Falls Menü gleich Weblink-einreichen, dann return-Pfad anhängenif ($route =='weblink-einreichen') {	$menulink=$menulink.' &return='.$lasturl;	}require(JModuleHelper::getLayoutPath('mod_lasturl'));Leider funktioniert es nicht, denn ich werde wieder zur Jommla-Base (Root) weitergeleitet, wenn ich den "Abbrechen"-Button drücke.Was mache ich falsch?Vielen Dank.Gruß Habak
  « Letzte Änderung: 27. Oktober 2012, 17:05:31 von habak »
  « Antwort #9 am: 06. November 2012, 12:03:44 »
  Hallo zusammen,nachdem ich mit dem Modul weiterhin hänge, wollte ich mal nachfragen wie der Ansatz für ein "Custom HTML Modul" aussieht.Vielen Dank.GrußHabak
  « Antwort #10 am: 06. November 2012, 14:09:02 »
  Hallo,du suchst dir einen Link, auf den weitergeleitet werden soll nach dem Speichern. Diesen packst du in irgend einen Online-Base64-Generator um den Hash zu erhalten. Nun machst du Rechtsklick auf deinen "Bearbeiten Link" und kopierst diesen. Am Ende einfach in ein Custom-HTML Modul folgendes einfügen:Code: [Auswählen]<a href="http://www.example.org/link/zum/bearbeiten.html?return=base_64_hash">Editieren</a>Nun den Editierenlink irgendwo verstecken und das Custom-HTML Modul veröffentlichen, damit jeder immer über dieses Modul geht, wenn er bearbeiten will. Kann dann natürlich entsprechend formatiert werden.Alternativ würde ich aber eher über den Menütyp "externer Link" in Joomla! gehen. Dort einfach den Edit-Link + den Return-Hash (wie oben) einfügen und im Menü anzeigen lassen.
  « Antwort #11 am: 08. November 2012, 13:54:30 »
  Hallo Benjamin,wenn möglich, möchte ich nicht auf eine starre Seite verweisen, sondern zur letzten Ansicht zurück.Daher würde mich brennend interessieren, was ich mit dem Modul falsch mache, dass es nicht funktioniert.GrußHabak
  « Antwort #12 am: 14. November 2012, 08:03:28 »
  Hallo,Problem gelöst.Das Modul funktioniert nur dann, wenn man es mit einer tatsächlich vorhandenen Position im Template verbindet.GrußHabak