...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:
<?php
/**
* @package Joomla.Site
* @subpackage com_users
*
* @copyright (C) 2009 Open Source Matters, Inc. <https://www.joomla.org>
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
defined('_JEXEC') or die;
use Joomla\CMS\Factory;
/** @var \Joomla\Component\Users\Site\View\Login\HtmlView $this */
$cookieLogin = $this->user->get('cookieLogin');
if (!empty($cookieLogin) || $this->user->get('guest')) {
// The user is not logged in or needs to provide a password.
echo $this->loadTemplate('login');
} else {
// The user is already logged in.
$app = Factory::getApplication();
$input = $app->getInput();
if ($input->get('redirect','','CMD') == '0815') :
echo $this->loadTemplate('meinredirect');
endif;
echo $this->loadTemplate('logout');
}
Alles anzeigen
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:
<?php
/**
* @package
* @subpackage com_users
*
* @copyright
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
defined('_JEXEC') or die;
use Joomla\CMS\Factory;
use Joomla\CMS\Access\Access;
use Joomla\CMS\Router\Route;
$myApp = Factory::getApplication();
$user = $myApp->getIdentity()->get('id');
// Gruppen des angemeldeten Besuchers.
$myGroups = Access::getGroupsByUser(Factory::getUser()->get('id'));
// erlaubte ids bzw. Benutzergruppen.
$allowed1 = array(6);
$allowed2 = array(7);
$intersect1 = array_intersect($allowed1, $myGroups);
$intersect2 = array_intersect($allowed2, $myGroups);
if ($intersect1)
{
$url = Route::_('index.php?Itemid=111');
$myApp->redirect($url);
return;
}
if ($intersect2)
{
$url = Route::_('index.php?Itemid=115');
$myApp->redirect($url);
return;
}
$url = Route::_('index.php?Itemid=101');
$myApp->redirect($url);
return;
Alles anzeigen
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...