Beiträge von Sieger66

    Beachte aber das es nur mit den neu registrierten Benutzern korrekt funktioniert welche sich nach der Erstellung dieses neuen Menüeintrages registrieren !

    Weil die Links in der email an den "SuperUser" beginnen dann z.B. nicht mehr mit

    https://www.liubicia.de/interner-bereich/anmelden?task...


    Also bitte nicht mit den bereits zuvor vorhandenen Links in den Mails an den "SuperUser" testen!

    Ich denke mir ist nun klar warum du das Problem wahrscheinlich hast.

    Erstelle einen neuen Menüeintrag vom Menüeintragstyp Benutzer->"Registrierungsformular" und stelle diesen Menüeintrag unbedingt auf die Zugriffsebene "öffentlich" !

    Du kannst im Tab "Linktyp" auf Im Menü anzeigen auf "Nein" einstellen.

    Special = für Registierte

    ist meiner Meinung nach wohl besonders problematisch da die Zugriffsebene Spezial bei diversen Modulen im Backend, für die dort Berechtigten, den Zugriff ermöglicht.


    Aber ich habe noch eine zweite Seite, bei der die Gruppen und Zugriffsebenen noch in der Originalkonfiguration sind (keine Löschungen, keine Umbenennungen, keine neuen Gruppen und Ebenen), und dort habe ich das gleiche Problem.

    Und ist dort auch als Gast-Benutzergruppe die "Guest" eingestellt ?

    Siehe diesbezüglich #7

    sofern keine Erweiterung querschießt und siehe z.B. auch:


    Kannst mal versuchen:

    System Wartung-Datenbank Checkbox anklicken und Button "Reparieren" betätigen.

    Was vermutlich wohl weniger helfen wird, aber trotzdem mal gemacht werden kann, wenn sonst niemand in Joomla gleichzeitig angemeldet ist:

    System Wartung-Globales Freigeben Checkboxen anklicken und Button "Freigeben" betätigen.

    System Wartung-Cache leeren Checkboxen anklicken und Button "Löschen" betätigen.



    Wie wurde das Update auf 4.4.4 durchgeführt?


    Welche Joomla-Version war vor dem Update auf 4.4.4 zuvor vorhanden?

    Ich konnte aber nicht wissen ob er es womöglich in #13 auf andere weise gemacht hat, darum meine Frage in #14


    Ist das Plugin unter System -> Verwalten-Erweiterungen auch aktiviert ?

    Falls nein dann nun aktivieren (siehe z.B. auch #9 und #10)

    Falls der query-Teil der URL noch zu unspezifisch ist kannst du natürlich auch noch den path-Teil ergänzen.

    Entsprechend passend zu deinem Code z.B.:


    Code
     $uri     = Uri::getInstance();
     $absolute_url = $uri->toString(array('path','query'));

    oder z.B.:


    Code
    $uri     = Uri::getInstance();
    $absolute_url = $uri->getPath() . '?' . $uri->getQuery(); 
    Code
    if ($absolute_url = "http://Servername/joomla/index.php/orga/intern/uebersicht?view=article&id=" . ($artikel->id) . "&catid=24") : ?>


    Dieser Code aus #1 und #4 kann nicht wie gewünscht funktionieren weil in der if abfrage nur = ist anstatt == somit wird der Variablen $absolute_url der Wert nach dem einfachen Gleichheitszeichen zugewiesen und die Bedingung ist immer gültig.

    Ist übrigens ein typischer Anfängerfehler und hast du ja nun wohl auch selbst bemerkt.


    Würde aber anstatt der absoluten url nur den query-Teil der url vergleichen da du sonst bei einem Umzug z.B. auf eine andere Domain oder bei https oder Subdomain oder nach local (Xampp) die Funktionalität diesbezüglich verlierst.

    An den query-Teil der URL kommst du z.B. per:


    $uri = Uri::getInstance()->getQuery();


    Eventuell nützlich:


    URLs in Joomla – Joomla! Documentation


    Alternativ:


    manual.joomla.org/docs/general-concepts/input/


    Code
    use Joomla\CMS\Factory;
    
    $app   = Factory::getApplication();
    $input = $app->getInput()->server->get('QUERY_STRING', null ,'STRING');

    ...Ist das mit J-Boardmitteln möglich?...

    Leider hast du uns keinen Link zum Problem mitgeteilt und auch nicht wie die Anmeldung erfolgt und mit welchem Template...


    Sofern die Anmeldung per Joomla-Core Benutzer Anmeldung-Modul oder per Joomla-Core Menüeintragstyp "Anmeldeformular" erfolgt geht das gewünschte z.B. per Erstellung von zwei "Template-Override-Dateien" sowie einem zusätzlichen Menüeintrag wie folgt:


    Erstelle einen neuen Menüeintrag vom Menüeintragstyp -> Systemlinks -> URL

    Titel z.B. "Weiterleitung nach Login"


    Darin im Tab Details -> Link die nachfolgende URL eintragen:

    index.php?option=com_users&view=login&redirect=0815

    und im Tab Linktyp kannst du "Im Menü anzeigen" auf Nein stellen.


    Stelle in deinem vorhandenem Joomla-Core Benutzer-Anmeldung-Modul

    und/oder in deinem vorhandenem Menüeintrag( Joomla-Core Menüeintragstyp "Anmeldeformular")

    diesen Menüeintrag als Weiterleitungziel nach der Anmeldung ein!


    Erstelle einen diesbezüglichen Template-Override bei Cassiopeia wäre dies z.B.:

    /templates/cassiopeia/html/com_users/login/default.php

    darin nachfolgender Code:

    Dies führt dazu das nur wenn der obige neue Menüeintrag nach dem Login aufgerufen wird, wird die neue nachfolgende

    default_meinredirect.php ausgeführt werden. Ansonnsten bleibt alles wie zuvor.


    Erstelle eine weitere ensprechende Template-Datei bei Cassiopeia wäre dies z.B.:


    ‎/templates/cassiopeia/html/com_users/login/default_meinredirect.php


    darin nachfolgender Code:



    Bei $intersect1 siehe:

    $allowed1 = array(6);

    mußt du statt der 6 die ID der gewünschte Benutzergruppen eintragen weche zum ersten Ziel führen soll.

    Du kannst auch mehrere Benutzergruppen eintragen falls sie zum selben Ziel nach der Anmeldung geführt werden sollen z.B.:

    $allowed1 = array(6,7);


    Beachte aber das auch die Untergruppen einer Benutzergruppe deren Gruppen-ID zusätzlich erben bzw. haben.

    So ist z.B. der SuperBenutzer in einer neuen unveränderten Joomla-Installation in den Benutzergruppen 1 und 8 und der

    Administrator in den Benutzergruppen 1 + 6 + 7


    Als Ziel mußt du anstatt der 111 in

    index.php?Itemid=111

    die ID des Menüeintrages eintragen zu dem das erste Weiterleitungsziel am Ende führen soll.


    dito.

    bei $intersect2 für $allowed2 und das zweite Ziel index.php?Itemid=115


    Weitere entsprechende $intersect mit $allowed und Ziel sind natürlich auch leicht möglich einzufügen.


    Wenn keine Benutzergruppe zutrifft wird zum letzten Ziel(101) weitergeleitet, was man natürlich auch ändern kann...

    Ich bin nur ein Laie und habe mir das jetzt einmal etwas genauer angeschaut.

    Wenn ich mich nicht täusche wird das codesample-Plugin-Script ja wohl vom TinyMCE-Editor geladen

    und kommt nicht per Web Asset Manager.


    Da ich mich in Javascript nur wenig auskenne würde ich es wohl so lösen wenn kein besserer Vorschlag kommt:


    Lösung 1:

    Template-Override bei dem die beiden Core-Dateien einfach jedesmal überschrieben werden mit meiner Datei mit dem gewünschten Code sobald das Editor-Formular geöffnet wird z.B. per:


    Code
    chdir('media/vendor/tinymce/plugins/codesample/');
    copy ('meincodesample.plugin.js','plugin.min.js');
    copy ('meincodesample.plugin.js','plugin.js');


    fürs Frontend mit Cassiopeia müßte man obigen Code dort entsprechend in einem Template-Override ergänzen:

    ‎/templates/cassiopeia/html/com_content/form/edit.php


    Die Datei meincodesample.plugin.js mit dem geänderten Code müßte dazu dann dort sein:

    /media/vendor/tinymce/plugins/codesample/meincodesample.plugin.js


    Alternativ Lösung 2 :


    Erstelle einen Dateiordner für ein "eigenes TinyMCE-Plugin":


    z.B. /media/vendor/tinymce/plugins/meincodesample


    Kopiere dort hinein die identischen Dateien wie im Dateiodner

    media/vendor/tinymce/plugins/codesample/

    Ergänze darin die Dateien plugin.min.js und plugin.js mit deinem Code.

    Lösche darin plugin.min.js.gz wenn du keine entsprechende diesbezügliche komprimierte Datei erstellst.


    Gehe ins Backend zu

    System -> Plugins -> Editor – TinyMCE

    Trage bei im Feld bei 'Eigene Plugins' folgendes ein:

    meincodesample

    Trage im Feld bei 'Eigene Buttons' folgendes ein:

    meincodesample


    Wichtig ist das beide Einträge identisch wie der neue Dateiordner bennant werden!


    Speichern und testen.


    Es wird dadurch nun zusätzlich auch dein eigenes TinyMCE-Plugin geladen und gewinnt wohl

    weil es erst nach dem TinyMCE-Core-Plugin geladen wird...