URL dynamisch mit User-Email ergänzen

  • Hallo zusammen,


    ich möchte für angemeldete Mitglieder einer Homepage einen Link zum Webmailer einfügen.

    Das klappt mit dem Menüeintrag URL ohne Probleme. Um das ganze benutzerfreundlicher zu

    machen, möchte ich dem Link als GET-Parameter die EMail-Adresse des angemeldeten Benutzers mitgeben.

    Leider habe ich bisher nichts gefunden, wie ich das bewerkstelligen kann und wäre über Hilfe dankbar.

    Grüße

    mm

  • Das ist kein Joomlaproblem. Kommt darauf an welcher Webmailer verwendet wird. Der Server und die Anmeldefunktion muss das erlauben.

    Wenn Dein Webmailer HORDE ist, dann sieht das so aus: login.php?new_lang=de_DE&horde_user=info%40example.orgmuss an die URL angehängt werden und info%40example.org gegen die richtige eMail Adresse ausgetauscht werden.

  • Für mich ist es schon ein Joomla-Problem, da ich nicht weiß, wie ich an die URL das $user->email anhängen kann.


    Der eingesetzte Webmail ist Roundcube, und ich möchte quasi, dass aus dem jetzigen

    http://webmail.xyz.net dann http://webmail.xyz.net/?_user=<Email des angemeldeten Users> wird.

  • Code
    $link = 'http://webmail.xyz.net';
    $uri = JUri::getInstance($link);
    
    $email = urlencode(JFactory::getUser()->get('email', ''));
    $uri->setVar('_user', $email);
    
    $link = $uri->toString();
    
    echo $link;

    Folgt für einen User mit Email

    Code
    test@example.org

    der $link:

    Code
    http://webmail.xyz.net?_user=test%40example.org

    Wenns keine Email gibt, bleibt $link unverändert.

  • Danke schon mal für die Hilfe, mal weiter als Noobie outen...


    Das habe ich schon mal verstanden, aber wie verheirate ich das jetzt mit dem URL-Menüeintrag, also

    wo packe ich den Code jetzt hin ?

  • In einen Template-Override von

    mod_menu,


    in Datei

    default_url.php


    setzt du nach Zeile

    Code
    defined('_JEXEC') or die;

    das hier ein (eine Abwandlung des obigen Codes):

    Code
    if (strpos($item->anchor_css, 'add-email') !== false)
    {
        $uri = JUri::getInstance($item->flink);
        
        $email = urlencode(JFactory::getUser()->get('email', ''));
        $uri->setVar('_user', $email);
        
        $item->flink = $uri->toString();
    }

    Dann trägst ins Feld "CSS-Klasse für Link" des betr. Menüeintrags noch ein:

    Code
    add-email
  • dann in der default_url-datum-uhrzeit.php

    So eine Datei gibt es normalerweise nicht in Joomla.


    Aaahh:

    Vermutlich hattest du schon einen Override default_url.php im betr. Template-Ordner. Dann legt Joomla eine neue Datei an mit so einem Zeitstempel. Das ist zugegebenermaßen verwirrend ;)


    Du musst also die schon bestehende default_url.php anpassen.

    Da ist sicherlich auch so ein

    Code
    defined(....

    als erste Zeile drinnen.

  • Ich hatte zuerst die default_url.php angepasst mit demselben Effekt, dann dachte ich es funktioniert nicht, weil ich den override vergessen hatte.


    Ende vom Lied, die default_url.php ist angepasst, aber immer noch das Problem, dass er nur die im Link eingetragene URL nimmt...

  • Also angepasst hast du die Datei

    Code
    /templates/DEINTEMPLATENAME/mod_menu/default_url.php

    Wenn dem so ist, fällt mir nur noch ein, dass du vielleicht ein anderes Menü-Modul verwendest oder dein Template dazwischenpfuscht.


    Oder das betr. Modul ein anderes Layout verwendet als "Default".


    Oder du gerade gar nicht im Frontend angemeldet bist.


    Getestet habe ich mit Joomla-Standard, wo es funktioniert.

  • Genau, habe folgende Datei angepasst (nutze Helix ultimate):

    Code
    /templates/sharper_helixultimate/html/mod_menu/default_url.php

    Das Template ist als Standard für alle Seiten gesetzt, und ich bin im Frontend angemeldet, weil der Link nur im internen Bereich zu finden ist.


    Danke trotzdem für deine Bemühungen, werde mal weitersuchen...