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) {
.........
.........
}
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").'&lang='.$lang.'&client='.$client.'" title="' . mi18n("Ebene") . ' '.$lvl.': ' . $db->f("name") . '">' . $db->f("name") . '</a>' . vpSitemap2($db->f("idcat"), $lvl) . "</li>\n";
}
else {
$result .= "<li> ".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>';
}
?>
Grüße Lars