Navi und Sitemap Probleme mit geschützten Kategorien

Antworten
larslunsen
Beiträge: 58
Registriert: Do 22. Jun 2017, 11:25

Navi und Sitemap Probleme mit geschützten Kategorien

Beitrag von larslunsen »

Hallo Ortwin,

ich weiß nicht, ob die Probleme an Conlite oder der PHP 8 Version liegen.

Ich setzte bei einem Kunden die Navigation "vpNavigation 0.2" ein. Diese funktioniert nach dem Update auch solange bis eine geschützte Kategorie ins Spiel kommt. Dann bricht der Quellcode an dieser Stelle ab und die Seite wird nicht weiter geladen.

Im Modul gibt es einen Codeabschnitt, wenn ich diesen lösche (also nur die 2 Zeilen und das Schließende })funktioniert es, aber geschützte Kategorien werden auch ohne eingeloggt zu sein, angezeigt:

Code: Alles auswählen

$visible = checkCatPermission($menupunkt["idcatlang"],$menupunkt["public"]);
if ($visible) { 
.........
.........
}
Wenn ich den gazen Modulcode posten soll sag Bescheid.

In der Errorlog steht:

Code: Alles auswählen

[22-May-2023 18:42:07 UTC] PHP Fatal error:  Uncaught TypeError: count(): Argument #1 ($value) must be of type Countable|array, null given in /var/www/vhosts/domain/httpdocs/2023/cms/includes/functions.navigation.php:512
Stack trace:
#0 /var/www/vhosts/domain/httpdocs/2023/cms/front_content.php(794) : eval()'d code(239): checkCatPermission()
#1 /var/www/vhosts/domain/httpdocs/2023/cms/front_content.php(794) : eval()'d code(257): liste()
#2 /var/www/vhosts/domain/httpdocs/2023/cms/front_content.php(794) : eval()'d code(257): liste()
#3 /var/www/vhosts/domain/httpdocs/2023/cms/front_content.php(794) : eval()'d code(272): liste()
#4 /var/www/vhosts/domain/httpdocs/2023/cms/front_content.php(794): eval()
#5 {main}
  thrown in /var/www/vhosts/domain/httpdocs/2023/cms/includes/functions.navigation.php on line 512

Bei dem Modul vpSitemap 0.4 ist es dann eher umgekehrt. Nach dem Login wurden mir in der Sitemap die geschützten Kategorien angezeigt, jetzt werden mir nach dem Update auf Conlite und PHP 8 in der Sitemap nur noch Kategrien angezeigt, die nicht geschützt sind.

Moduloutput:

Code: Alles auswählen

<?php 
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname   :     vpSitemap 0.4
* Author      :     Ingo van Peeren
* Copyright   :     Ingo van Peeren (ingo@van-peeren.de)
* Created     :     2005-01-14
* Modified    :     2006-09-07
* Credits     :     Nik Wyss & juergen@sotonic.de
************************************************/

// Includes
cInclude("frontend", "includes/functions.navigation.php");

// CMS_VALUES initialisieren
$anzahlEbenen      = "CMS_VALUE[11]";
$startkategorie    = "CMS_VALUE[10]";
$ebeneNullAnzeigen = "CMS_VALUE[12]";

function vpSitemap2($kategorie=0, $level)
{
  global $lang, $client, $cfg, $startkategorie, $anzahlEbenen, $ebeneNullAnzeigen;
  $db  = new DB_Contenido;
  $sql  = "SELECT
             *
           FROM
             ".$cfg["tab"]["cat_tree"]." AS A,
             ".$cfg["tab"]["cat"]." AS B,
             ".$cfg["tab"]["cat_lang"]." AS C
           WHERE
             A.idcat=B.idcat
             AND B.idcat=C.idcat
             AND C.idlang='$lang'
             AND B.idclient='$client'
             AND B.parentid=$kategorie
             AND level <= $anzahlEbenen
             AND C.visible=1
           ORDER by A.idtree";
    $db->query($sql);
    $treffer = $db->num_rows();
    if ($treffer) {
      if ($kategorie == $startkategorie) $result .= "\n" . str_repeat (" ", ($level * 4)) . "<ul id=\"sitemap\">\n";
      else $result .= "\n" . str_repeat (" ", ($level * 4) + 4) . "<ul>\n";
    }
    while ($db->next_record())
    {
       
      $visible = checkCatPermission($db->f("idcatlang"),$db->f("public"));
      if ($visible) {       
            
        $lvl = $db->f("level");
        $result .= str_repeat (" ", ($lvl * 4) + 2);
        if (($lvl > 0) || ($ebeneNullAnzeigen)) {
          $result .= '<li><a href="front_content.php?idcat='.$db->f("idcat").'&amp;lang='.$lang.'&amp;client='.$client.'" title="' . mi18n("Ebene") . ' '.$lvl.': ' . $db->f("name") . '">' . $db->f("name") . '</a>' . vpSitemap2($db->f("idcat"), $lvl) . "</li>\n";
        }
        else {
          $result .= "<li>&nbsp;".vpSitemap($db->f("idcat"), $lvl) . "</li>\n";
        }
      }
    } 
    if ($treffer) {
      if ($kategorie == $startkategorie) $result .= str_repeat (" ", ($level * 4));
      else $result .= str_repeat (" ", ($level * 4) + 4);
      $result .= "</ul>\n";
      $result .= str_repeat (" ", ($level * 4) + 2);
    }
    return($result);
  }

$sql = "SELECT
          level
        FROM
          ".$cfg["tab"]["cat_tree"]."
        WHERE
          idcat=$startkategorie";
$db->query($sql);
$db->next_record();
$startEbene = $db->f("level") + 1;
$anzahlEbenen += $startEbene;
if ($startkategorie==0) {
  if ($ebeneNullAnzeigen) $anzahlEbenen--;
  $startEbene--;
}



if ($auth->auth["uid"] == "nobody") {
echo '';
} else {
echo '<div id="Uebersichtslisteheadline">Weiter zu Ihren Dokumenten:</div>';
echo '<ul class="universell">';
echo vpSitemap2($startkategorie, $startEbene);
echo '</ul>';
}

?>
Ich weiß es sind eher alte Module, aber ich habe keinen Ersatz und vielleicht siehst du ja etwas.

Grüße Lars
Oldperl
Moderator
Beiträge: 83
Registriert: Do 9. Jun 2016, 15:27
Wohnort: Eltmann-Limbach
Kontaktdaten:

Re: Navi und Sitemap Probleme mit geschützten Kategorien

Beitrag von Oldperl »

Hallo Lars,
larslunsen hat geschrieben: Mo 22. Mai 2023, 20:48 Ich weiß es sind eher alte Module, aber ich habe keinen Ersatz und vielleicht siehst du ja etwas.
Das ist nun aber sehr nett ausgedrückt. Die Teile sind uralt, schaut man sich die Jahreszahlen an. Sind noch von Ingo, denke für Contenido 4.x oder so.
Ähm, ja, wir könnten so was auch für die aktuelle ConLite gebrauchen. Mir fehlt aber momentan da einfach die Zeit da kostenlos drüber zu schauen. Sollte sich da mal ein Auftrag ergeben, dann würde ich mit dem Kunden reden, ob wir das Ergebnis als Open Source zur Verfügung stellen könnten.
Gruß aus Franken

Ortwin
larslunsen
Beiträge: 58
Registriert: Do 22. Jun 2017, 11:25

Re: Navi und Sitemap Probleme mit geschützten Kategorien

Beitrag von larslunsen »

Hallo Ortwin,

Ich weiß, dass die Sachen älter sind, stößt man bei einem Update öfter drauf. Einiges kann man tauschen oder anpassen, bei anderen Sachen ist manchmal Nichts zu finden.

Für den Kunden brauche ich allerdings eine Navi-Lösung für seine geschützten Kategorien.

Hier wäre also nun die Frage: Welche Navigation kann Conlite, PHP8, geschützte Kategorien und alle Ebenen anzeigen? Gibt es was aus dem Demomandant oder aus dem Forum/System 4.8?
Oder denkst du mit nem Stündchen Arbeit könntest du die alten Sachen anpassen/erweitern? Was würde das kosten (gerne perPN)?

Vielleicht hast du da eine Idee, das Kundenupdate derzeit nur noch daran scheitert.

Grüße Lars
Oldperl
Moderator
Beiträge: 83
Registriert: Do 9. Jun 2016, 15:27
Wohnort: Eltmann-Limbach
Kontaktdaten:

Re: Navi und Sitemap Probleme mit geschützten Kategorien

Beitrag von Oldperl »

Hallo Lars,

schick mir mal bitte die beiden Module per PN oder per Mail, ich schau mal.
Gruß aus Franken

Ortwin
Oldperl
Moderator
Beiträge: 83
Registriert: Do 9. Jun 2016, 15:27
Wohnort: Eltmann-Limbach
Kontaktdaten:

Re: Navi und Sitemap Probleme mit geschützten Kategorien

Beitrag von Oldperl »

Hallo Lars,

der Fehler in der vpNavigation kommt nicht direkt vom Modul, sondern von der genutzten, und eigentlich veralteten, Datei cms/includes/functions.navigation.php.
Habe diese mal entsprechend modifiziert und ins Repo hochgeladen. :arrow: https://gitport.de/ConLite/ConLite/comm ... edac53c924
Einfach mal austauschen, dann sollte das Modul laufen.
Gruß aus Franken

Ortwin
larslunsen
Beiträge: 58
Registriert: Do 22. Jun 2017, 11:25

Re: Navi und Sitemap Probleme mit geschützten Kategorien

Beitrag von larslunsen »

Hallo Ortwin,

vielen Dank. Es funktioniert wieder.

Grüße Lars
Antworten