[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Navigation u. simple_user Addon - Lösung - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
sandmaus
Beiträge: 569
Registriert: 27. Apr 2006, 11:26
Wohnort: Dresden
Kontaktdaten: Website

Navigation u. simple_user Addon - Lösung

28. Jun 2011, 03:12

Hallo Ihr,
ich nutze REX 4.3.2 utf8 sowie das simple_user Addon.
Weiterhin das Navigationstemplate von Peter Reiche - http://www.raybeam.de
* Universelle <ul>-Navigation (YAML)
* YAML-Navigationstemplate
* V 0.9
Nach Login wurden mir keine geschützten Bereiche angezeigt.
Habe in ca. Zeile 147 folgendes ausgetauscht...
vorher

Code: Alles auswählen

$arrUserGroupId = explode("|+|",$feUser['group']);
nachher

Code: Alles auswählen

$arrUserGroupId = explode("|",$feUser['group']);
Funktioniert nun einwandfrei.
Für alle mit gleichen Problemen.

Im Anhang der komplette Navigationsscript:

Code: Alles auswählen

<?php
/*
 * Universelle <ul>-Navigation (YAML)
 * YAML-Navigationstemplate
 * V 0.9
 *
 * YAML3.0-konformes universelles Navigations-Template
 * fuer Redaxo 3.x/4.x
 *
 *  Navigationstemplate zur Gestaltung von Seitennavigationen/-menues auf der
 *  Grundlage unsortierter Listen (<ul></ul>) mit folgenden Funktionen:
 *  - Durch eine Meta-Info cat_styleclass kann jeder beliebigen Kategorie eine
 *    individuelle Style-Klasse hinzugefuegt werden
 *  - An YAML CSS-Framework angepasst, funktioniert aber auch eigenstaendig
 *  - beliebige Verschachtelungstiefe
 *  - Veroeffentlichungszeitraum (Online vom/bis) wird beachtet
 *  - individuelle Benutzerbereiche des Simple User - Addon 0.9 und 1.1
 *    und Community Addon werden ausgewertet
 *  - Verschachtelung der unsortierten Listen wahlweise mit w3c-konformer
 *    <ul>-Gliederung im jeweils uebergeordnetern <li>-Element oder als
 *    "Pseudo"-Verschachtelung in nur einem <ul>-Element
 *  - Wahlweise Anzeige der Untermenuepunkte nur der aktuellen Kategorie oder
 *    Anzeige aller Untermenuepunkte
 *  - Wahlweise getrennte Anzeige von Haupt- und Untermenue
 *  - Generierung eines Breadcrumb-Menues
 *  - zusaetzliches Navigationsmenue aus root-Artikeln moeglich
 *
 * weitere ausfuehrliche Erlaeuterungen zu diesem Template neben den
 * Hinweisen im Quelltext auch unter:
 *
 * http://www.raybeam.de/index.php?article_id=20
 * http://www.raybeam.de/index.php?article_id=35
 *
 * -----------------------------
 * Peter Reiche - www.raybeam.de
 * -----------------------------
 * letzte Aenderung: 15.11.08
 * Individuelle Styleklassen ueber Meta-Infos
 * -----------------------------
 * letzte Aenderung: 06.09.08
 * Anpassung an Simple User 1.1
 * -----------------------------
 * letzte Aenderung: 15.08.08
 * Anpassung an redaxo-community-addon
 * -----------------------------
 * letzte Aenderung: 01.05.2008
 * -Neue Navigationsmoeglichkeit
 * anhand von root-Artikeln hinzugefuegt
 * -Bei getrennter Darstellung von Haupt-/Untermenue
 * wird dem Untermenue der Hauptmenuename als Titel hinzugefuegt
 * -----------------------------
 * letzte Aenderung: 27.02.2008:
 * Anpassung an redaxo 3.x/4.x
 * -----------------------------
 */

function build_navigation($feUser, $nav, $path, $subUl='on',$pathIndex=1)
{
  /* Wenn der Veroeffentlichungszeitraum "Online von / bis zum" nicht zutrifft, wird der
   * Navigationslink nicht angezeigt. Artikel die direkt ueber den URL aufgerufen
     * wurden, werden jedoch immer noch angezeigt. Das entsprechende Seiten-Template
     * muss also bezuegl. des Veroeffentlichungszeitraums ebenfalls angepasst werden. */
    $time = time();

    /* Type-ID fuer den "SuperUser", der alle individuellen Menuepunkte sehen darf.
   * Die ID sollte mit dem $su-Wert aus dem Authentifizierungstemplate uebereinstimmen. */
  $su = 99;

  /* -------> redaxo 4.x Anpassung:
   * online_from und online_to werden nunmehr ueber Metainformationen der Artikel zur
   * Verfuegung gestellt.
   * Folgende Felder muessen, fall nicht vorhanden, ueber "Metainformationen erweitern/Artikel"
   * angelegt werden
   * /////////////////////////////////
   * Prefix:    art_
   * Spaltenname: online_from
   * Feldposition: [nach belieben]
   * Feldbezeichnung: [nach belieben]
   * Feldtyp:   date
   * Feldattribute: [kein Eintrag]
   * Standardwert: [kein Eintrag]
   * /////////////////////////////////
   * und
   * ////////////////////////////////
   * Prefix:    art_
   * Spaltenname: online_to
   * ... wie oben

   * Werden die Metadaten im Backend gespeichert, so wird das aktuelle Datum in art_online_from
   * und art_online_to gespeichert, wenn dort zuvor keine Werte eingetragen waren. Um eine un-
   * beabsichtigte Sperrung der Artikel zu vermeiden, wird das Onlinedatum nur in die Pruefung
   * einbezogen, wenn sich art_online_from und art_online_to unterscheiden. */

    if($nav->getValue('online_from') != $nav->getValue('online_to'))
  {
      if($nav->getValue('online_from') > $time || $nav->getValue('online_to') < $time)
      {
        return;
      }
  }
    /* Wenn die Typ-ID des Startartikels = 1 ist oder der UserTyp des angemeldeten
     * Benutzers mit der Typ-ID des Startartikels der aktuellen Kategorie ueberein
     * stimmt, geht es weiter
     * -------> redaxo 4.x Anpassung:
     * Der Artikel-Typ wird nun ueber die Metainformationen der Artikel zur Verfuegung gestellt
     * Folgendes Feld muss, falls nicht vorhanden, ueber "Metainformationen erweitern/Artikel" angelegt werden
     * /////////////////////////////////
   * Prefix:    art_
   * Spaltenname: type_id
   * Feldposition: [nach belieben]
   * Feldbezeichnung: [nach belieben]
   * Feldtyp:   select
   * Parameter:   |[typ1]|[typ2]...
   * Feldattribute: size=1
   * Standardwert: [kein Eintrag]
   * /////////////////////////////////
   * WICHTIG: Im Unterschied zu den Beispielen in der Demo, erfolgt bereits vor
   * dem ersten Parameter [typ1] das Pipezeichen "|". Dadurch wird der Select-Auswahl
   * "Artikeltyp" im Backend ein "Leerfeld" vorangestellt. Dieser "Nullwert" stellt
   * die Standardeinstellung eines fuer alle sichtbaren Artikels dar. */

  // redaxo 4.x
  global $REX;
  global $csMetaInfo;

  if($REX['VERSION']>"3")
  {
    // Zugriffsberechtigung fuer redaxo-community pruefen
    if(OOAddon::isAvailable('community'))
    {
      $chkUsrPerm = rex_com_checkUserPerm($nav->getValue("art_com_perm"));
    }
    else
    {
      // permisson-Check fuer redaxo-community umgehen
      $chkUsrPerm = true;
    }

    // Zugriffsberechtigungen fuer Simple User 1.1 pruefen
    if(OOAddon::isAvailable('simple_user'))
    {
      // auf User-Gruppen pruefen
      $arrArticleGroupId = explode("|",$nav->getValue("art_type_group_id"));

      if($arrArticleGroupId[1]!="")
      {
        $arrUserGroupId = explode("|",$feUser['group']);
        if($feUser['group'] != "")
        {
          $chkSimpleUsrGrp = false;

          foreach($arrUserGroupId as $usrGroupId)
          {
            if(in_array($usrGroupId,$arrArticleGroupId))
            {
              $chkSimpleUsrGrp = true;
            }
          }
        }
      }
      else
      {
        $chkSimpleUsrGrp = true;
      }
    }
    else
    {
      $chkSimpleUsrGrp = true;
    }

    if($nav->getValue('art_type_id')=='' || $nav->getValue('art_type_id')=='Standard')
    {
      $artTypeId = '1';
    }
    else
    {
      $artTypeId = $nav->getValue('art_type_id');
    }
  }
  // redaxo 3.x
  else
  {
    $artTypeId = $nav->getTypeId();

    // permisson-Check fuer redaxo-community umgehen
    $chkUsrPerm = true;
    // Group-Check fuer simple_user umgehen
    $chkSimpleUsrGrp = true;
  }

    if($chkUsrPerm && $chkSimpleUsrGrp && ($artTypeId=='1' || $feUser['typ'] == $artTypeId || $feUser['typ'] == $su))
    {
      // Falls MetaInfo cat_styleclass vorhanden ist, Klasseneintrag
      // 'class="cat_styleclass-Wert" ' generieren
      if($nav->getValue($REX['csMetaInfo']))
      {
        $oStyleClass = ' class="'.$nav->getValue($REX['csMetaInfo']).'" ';
      }

      // "geoeffnete" Rootkategorie durch css-ID 'current' markieren
        if($pathIndex==1 || ($pathIndex==2 && $subUl=='extra'))
        {
          if($pathIndex==1)
          {
            $oStyleID=' id="current"';
          }
          else
          {
            $oStyleID=' id="current'.$pathIndex.'"';
          }
        }
    else
    {
          $oStyleID=' id="active"';
    }

        // Nur Submenue des aktuellen Root anzeigen
        if($subUl=='on' || $subUl=='off' || $subUl=='extra')
        {
          if($nav->getId()==$path[$pathIndex])
          {
            // Namen der aktuellen root-Kategorie als Titel fuer
            // das Submenue uebernehmen
            if($pathIndex==1)
            {
              $subNavigation='<li id="title"'.$oStyleClass.'>'.$nav->getName()."</li>\n";
            }

            // Durch ...->getChildren(1) anstatt ...->getChildren() werden
            // nur Kategorien durchlaufen die "online" sind
            if($nav->getChildren(1))
            {
              if((count($path) > $pathIndex) && ($path[$pathIndex + 1] > 0))
                {
                  if($pathIndex>1 && $subUl=='extra')
                  {
                    $subNavigation.='<li'.$oStyleID.$oStyleClass.'><a href="'.$nav->getUrl().'">'.$nav->getName().'</a>';
                  }
                  else
                  {
                  if($oStyleID==' id="active"')$oStyleID='';
                    $navigation.='<li'.$oStyleID.$oStyleClass.'><a href="'.$nav->getUrl().'">'.$nav->getName().'</a>';
                  }
                }
                else
                {
                  // bei 'extra' wuerde der root-Navigationspunkt ins submenue verschoben, soll er aber nicht
                  if($pathIndex>1 && $subUl=='extra')
                  {
                    $subNavigation.='<li'.$oStyleID.$oStyleClass.'><a  href="'.$nav->getUrl().'">'.$nav->getName().'</a>';
                  }
                  else
                  {
                    $navigation.='<li'.$oStyleID.$oStyleClass.'><a href="'.$nav->getUrl().'">'.$nav->getName().'</a>';
                  }
                }
                // Wenn keine untergeordneten <ul>-Tags im Menue verwendet
                // werden sollen ($subUl='off'), wird der <li>-Tag geschlossen
          if($subUl=='off')
                {
                  $navigation.= '</li>'."\n";
                }
                // Wenn untergeordnete <ul>-Tags im Menue verwendet
                // werden sollen ($subUl='on'), wird in dem noch offenen
                // <li>-Tag der <ul>-Tag geoeffnet
                else
                {
                  if($pathIndex>1 && $subUl=='extra')
                  {
                    $subNavigation.= "\n<ul class=\"subnav".$pathIndex."\">\n";
                  }
                  else
                  {
                    $navigation.= "\n<ul class=\"subnav".$pathIndex."\">\n";
                  }
                }
                // Durch ...->getChildren(1) anstatt ...->getChildren() werden
                // nur Kategorien durchlaufen die "online" sind - dazu wird die
                // Funktion erneut aufgegrufen
                foreach($nav->getChildren(1) as $sub)
                {
                  $tmpNav=build_navigation($feUser, $sub, $path,$subUl, $pathIndex+1);
                  $navigation.=$tmpNav[0];
                  $subNavigation.=$tmpNav[1];
                }
                // Wenn untergeordnete <ul>-Tags im Menue verwendet
                // werden sollen ($subUl='on'), wird der <ul>-Tag hier wieder geschlossen
                if($subUl=='on' || $subUl=='extra')
                {
                  if($pathIndex>1 && $subUl=='extra')
                  {
                    $subNavigation.="</ul>\n";
                  }
                  else
                  {
                    $navigation.="</ul>\n";
                  }
                }
              }
              else
              {
          if($pathIndex>1 && $subUl=='extra')
          {
                $subNavigation.='<li'.$oStyleID.$oStyleClass.'><a class="level'.$pathIndex.' active" href="'.$nav->getUrl().'">'.$nav->getName().'</a>';
              }
              else
              {
                $navigation.='<li'.$oStyleID.$oStyleClass.'><a href="'.$nav->getUrl().'">'.$nav->getName().'</a>';
              }

          if($subUl=='off')
              {
                $navigation.= '</li>'."\n";
              }
              }
            }
            else
        {
        if($pathIndex>1 && $subUl=='extra')
        {
          $subNavigation.='<li'.$oStyleClass.'><a href="'.$nav->getUrl().'">'.$nav->getName().'</a>';
        }
        else
        {
          $navigation.='<li'.$oStyleClass.'><a href="'.$nav->getUrl().'">'.$nav->getName().'</a>';
        }

        if($subUl=='off')
            {
              $navigation.= '</li>'."\n";
              }
            }
      if($subUl=='on' || $subUl=='extra')
          {
            if($pathIndex>1 && $subUl=='extra')
            {
              $subNavigation.= '</li>'."\n";
            }
            else
            {
              $navigation.= '</li>'."\n";
            }
          }
        }
        // Submenues aller Kategorien anzeigen
        elseif($subUl=='allOn' || $subUl=='allOff')
        {
          if($nav->getChildren(1))
          {
            // ID="active" bei aktiver Unterkategorie wieder loeschen
            if((count($path) > $pathIndex) && ($path[$pathIndex + 1] > 0))
            {
              if($oStyleID==' id="active"')$oStyleID='';
            }

            if($nav->getId()==$path[$pathIndex])
              {
                $navigation.='<li'.$oStyleID.$oStyleClass.' ><a href="'.$nav->getUrl().'">'.$nav->getName().'</a>';
              }
              else
              {
                $navigation.='<li'.$oStyleClass.'><a href="'.$nav->getUrl().'">'.$nav->getName().'</a>';
              }
              // Wenn keine untergeordneten <ul>-Tags im Menue verwendet
              // werden sollen ($subUl='allOff'), wird der <li>-Tag geschlossen
        if($subUl=='allOff')
              {
                $navigation.= '</li>'."\n";
              }
              // Wenn untergeordnete <ul>-Tags im Menue verwendet
              // werden sollen ($subUl='allOn'), wird in dem noch offenen
              // <li>-Tag der <ul>-Tag geoeffnet
              else
              {
                $navigation.= "\n<ul class=\"subnav".$pathIndex."\">\n";
              }
              foreach($nav->getChildren(1) as $sub)
              {
                $tmpNav=build_navigation($feUser, $sub, $path,$subUl, $pathIndex+1);
                $navigation.=$tmpNav[0];
              }
              // Wenn untergeordnete <ul>-Tags im Menue verwendet
              // werden sollen ($subUl='allOn'), wird der <ul>-Tag hier wieder geschlossen
              if($subUl=='allOn')
              {
                $navigation.="</ul>\n";
              }
          }
          else
          {
            if($nav->getId()==$path[$pathIndex])
            {
              $navigation.='<li'.$oStyleID.$oStyleClass.'><a href="'.$nav->getUrl().'">'.$nav->getName().'</a>';
            }
            else
            {
              $navigation.='<li'.$oStyleClass.'><a href="'.$nav->getUrl().'">'.$nav->getName().'</a>';
            }
              if($subUl=='allOff')
            {
              $navigation.= '</li>'."\n";
            }
          }
        }
      if($subUl=='allOn')
        {
        $navigation.= '</li>'."\n";
      }
    }
  // Kleiner Trick, falls ausser der root-Kategorie alle weiteren aufgrund
    // der Rechtevergabe ausgeblendet sind. Um validen HTML-Code zu erhalten
    // muss am Ende des $navigations-String "<ul class=\"subnav1\">\n</ul>"
    // geloescht werden
    if(strstr($navigation,"<ul class=\"subnav1\">\n</ul>"))
    {
      $navigation = str_replace("\n<ul class=\"subnav1\">\n</ul>","\n",$navigation);
    }
    $navArray=array();
    $navArray[0].=$navigation;
    $navArray[1].=$subNavigation;
    return $navArray;
}  // ------------------ Ende der function build_navigation ------------------

//////////////////////////////////////////////
//  " M E N U E - U M S C H A L T E R "
//////////////////////////////////////////////
//  Menue mit <ul></ul> Auszeichnung
//  auch in den Unter-Menuepunkten oder
//  alle Untermenuepunkte staendig anzeigen
//  <ul> einschalten:.................. on
//  <ul> ausschalten:.................. off
//  alle mit <ul> staendig anzeigen:.... allOn
//  alle ohne <ul> staendig anzeigen:... allOff
//  Untermenue extra:................... extra
//////////////////////////////////////////////
// Standardparameter fuer $subUl setzen, falls
// yaml-Layout-Template nicht benutzt wird
// (Bei Einsatz des yaml-templates werden diese
//  Werte dort gesetzt)
//////////////////////////////////////////////
if($subUl=='')$subUl='on';
//////////////////////////////////////////////
// Ein Zusaetzliches Menue (z. B. als topnav-Menue) kann auf Basis von root-Artikeln,
// die ueber eine Meta Info selektiert werden koennen, oder ohne eine Meta Info
// komplett in die Variable $raNavigation uebergeben werden.
// $raNav = 'on|off' (Bei Einsatz des yaml-templates wird dieser Wert dort gesetzt)
if($raNav=='')$raNav = 'off';
//////////////////////////////////////////////
// Standardwert fuer individuelle StyleKlassen der Kategorien ueber MetaInfo setzen
// ueber $REX['csMetaInfo'] ist der Wert automatisch global, also auch in der
// Funktion build_navigation sofort abrufbar (Bei Einsatz des yaml-templates wird
// dieser Wert dort gesetzt)
if($REX['csMetaInfo']=='')$REX['csMetaInfo']= 'cat_styleclass';
// Den Meta Infos wird unter *KATEGORIEN* folgendes hinzugefuegt:
// ---------------------------------
// Spaltenname: styleclass
// Feldposition: beliebiger Wert
// Feldbezeichnung: styleclass
// Feldtyp: select
// Parameter (z.B.): |rot|gruen|blau          (durch das erste Pipezeichen kann ein Eintrag spaeter wieder geleert werden)
// Feldattribute: size=1
// ---------------------------------
// Über Kategorie editieren/löschen im Strukturmenue kann man jetzt
// jeder Kategorie eine css-Klassenbezeichnung zufuegen, die dann im
// Quelltext z. B. aus <li> <li class="rot"> macht.

// ------------------ Navigation erstellen ------------------

// Voreinstellungen:
   $path = explode("|",$this->getValue("path").$this->getValue("article_id")."|");

// Usertyp und -gruppe festlegen, um Authentifizierung zu ermoeglichen

if(is_array($FORM))
{
  $feUser['typ']=$FORM['USR_TYP'];
  $feUser['group']=$FORM['USR_GROUP'];
}
else
{
  $feUser['typ']=$_SESSION['USR_TYP'];
  $feUser['group']=$_SESSION['USR_GROUP'];
}

// Durch ...::getRootCategories(1) anstatt ...::getRootCategories()
// werden nur die Root-Kategorien durchlaufen die "online" sind
$navi=array();
foreach (OOCategory::getRootCategories(1) as $nav)
{
  $navi=build_navigation($feUser, $nav, $path, $subUl);
  $navMain.=$navi[0];
  $navSub.=$navi[1];
}

$cssId = ' id="submenu"';

if($subUl=='extra')
{
  $navigation= "<ul> \n".$navMain."</ul>\n";
}
else
{
  $navigation= "<ul $cssId> \n".$navMain."</ul>\n";
}

if($navSub)
{
  $subNavigation= "<ul $cssId>\n".$navSub."</ul>\n";
}

// ------------------ Breadcrumb erstellen ------------------

$aktArticle = OOArticle::getArticleById($this->getValue('article_id'));
$tree = $aktArticle->getParentTree();

//////////////////////////////////////////////
//  Standardwerte fuer Titel und Trennzeichen
//  fuer die Breadcrumb-Links festlegen, falls
//  yaml-Layout-Template nicht benutzt wird
//  (Bei Einsatz des yaml-templates werden diese
//  Werte dort gesetzt)
//////////////////////////////////////////////
if($bcTitle=='')$bcTitle = 'SIE  BEFINDEN SICH HIER ';
if($bcDivi =='')$bcDivi  = ' | ';
//  Startartikel im Breadcrumbmenue verlinken (Dank an rudoo fuer die Idee!)
//  $bcServerLink='on|off'
if($bcServerLink=='')$bcServerLink='on';
//////////////////////////////////////////////

if(is_array($path))
{
  if($bcServerLink=='on')
  {
    $startArticle = OOArticle::getArticleByID($REX['START_ARTICLE_ID']);
    // $breadcrumb = '<div id="breadcrumb">'."\n".'<span class="bcTitle">'.$bcTitle.'<a href="'.$startArticle->getUrl().'">'.$REX ['SERVERNAME'].'</a>'.'</span>';
    $breadcrumb = '<div id="breadcrumb">'."\n".'<span class="bcTitle">'.$bcTitle.'<a href="'.$startArticle->getUrl().'"></a>'.'</span>';

  }
  else
  {
    $breadcrumb = '<div id="breadcrumb">'."\n".'<span class="bcTitle">'.$bcTitle.$REX ['SERVERNAME'].'</span>';
  }

    foreach($path as $bcNr)
    {
      if($bcNr!='')
      {
        $art = OOArticle::getArticleByID($bcNr);
        if($art->getValue('id')!=$this->getValue('article_id'))
        {
          // Pfad-Eintraege des Artikels verlinken
          $breadcrumb .= $bcDivi.$art->toLink();
        }
        else
        {
          // Artikelname der aktuellen Seite nicht verlinken
          $breadcrumb .= $bcDivi.'<span class="bcActive">'.$this->getValue("name")."</span>\n";
        }
      }
    }
    $breadcrumb .='</div>'."\n";
}

// ------------------ Navigationsmenue anhand von root-Artikeln erstellen ------------------
if($raNav=='on')
{
  $rootArticles = OOArticle::getRootArticles($ignore_offlines = true, $clang = false);
  $raNavigation='';
  $raCnt = 1;

  foreach($rootArticles as $rootArticle)
  {
    // ab redaxo 4.x
    // mit MetaInfo ob der root-Artikel im Menue erscheinen soll
    if($REX['VERSION']>"3" && $rootArticle->hasValue($raMetaInfo))
    {
      if($rootArticle->getValue($raMetaInfo)=='|true|')
      {
        if($raCnt>1)
        {
          $raNavigation=$raNavigation.$raDivi;
        }
        $raCnt++;
        $raNavigation = $raNavigation.$rootArticle->toLink($params='', $attributes=null, $sorround_tag=null, $sorround_attributes=null);
      }
    }
    // redaxo 3. oder redaxo 4.x ohne MetaInfo-Nutzung
    else
    {
      if($raCnt>1)
      {
        $raNavigation=$raNavigation.$raDivi;
      }
      $raCnt++;
      $raNavigation = $raNavigation.$rootArticle->toLink($params='', $attributes=null, $sorround_tag=null, $sorround_attributes=null);
    }
  }
}

?>
Grüsse Sandmaus

sandmaus
Beiträge: 569
Registriert: 27. Apr 2006, 11:26
Wohnort: Dresden
Kontaktdaten: Website

Re: Navigation u. simple_user Addon - Lösung

1. Jul 2011, 11:47

... Schnell ist die Jugend beim Wort. So richtig wills noch nicht funktionieren

Also, ich habe 2 Gruppen:
1. Gruppe Allgemein ("UserTyp ID" = 4), (Gruppen ID = 1, lt. rex_2_group)
2. Gruppe Admin ("UserTyp ID" = 99), (Gruppen ID = 2, lt. rex_2_group)

Menüpunkt "Intern" ist über Meta-Daten mit "Gruppe Admin" geschützt.
(art_type_group_id) -> SELECT extras,id FROM rex_2_group

Wenn sich nun die "Gruppe Allgemein" einloggt, bekommt diese Gruppe trotzdem den Menüpunkt "Intern" angezeigt (dürfte eigentlich nicht), bei klick auf den Navigationslink "Intern" wird auf die Error-Seite umgeleitet.
Wenn "Gruppe Admin" einloggt, geht alles seinen Gang.
Die Artikel in der rex_article DB sind in Spalte "art_type_group_id" mit |2| bzw. |1|2| im Fall eines geschützten Bereiches hinterlegt.

Hat jemand hier eine Idee, wo hier der Fehler liegen könnte?
Danke und Grüße Sandmaus

sandmaus
Beiträge: 569
Registriert: 27. Apr 2006, 11:26
Wohnort: Dresden
Kontaktdaten: Website

Auth-Template angepaßt

13. Jul 2011, 18:56

Hallo,
habe das Auth-Template entsprechend angepaßt.

Code: Alles auswählen

$USR_array_groupId = explode("|+|",$_SESSION['USER']->getValue("rex_2_user.user_group"));
durch

Code: Alles auswählen

$USR_array_groupId = explode("|",$_SESSION['USER']->getValue("rex_2_user.user_group"));
austauschen

Jetzt funktionierts. Prost, ein kühles Bier
Grüsse Sandmaus

Lara88
Beiträge: 6
Registriert: 13. Jul 2011, 16:18

Re: Navigation u. simple_user Addon - Lösung

14. Jul 2011, 12:21

Werd ich gleich mal testen :-)

Zurück zu „Allgemeines [R4]“