Mein altes Navi Modul geht nicht mehr

Alles rund um Module und Plugins in CONTENIDO 4.9.
Antworten
booker
Beiträge: 18
Registriert: Mi 18. Apr 2007, 11:43
Kontaktdaten:

Mein altes Navi Modul geht nicht mehr

Beitrag von booker » Do 20. Feb 2014, 10:45

Hallo,
nach update auf 4.9.3 geht mein Navi modul nicht mehr.
es kommt :
20-Feb-2014 09:44:59] PHP Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /var/www/clients/client5/web26/web/contenido/includes/frontend/include.front_content.php(657) : eval()'d code on line 195
[20-Feb-2014 09:44:59] PHP Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /var/www/clients/client5/web26/web/contenido/includes/frontend/include.front_content.php(657) : eval()'d code on line 126
[20-Feb-2014 09:44:59] PHP Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /var/www/clients/client5/web26/web/contenido/includes/frontend/include.front_content.php(657) : eval()'d code on line 132

das ist mein Modul:

<?php
$modcfg["start_parentid"] = 1;
$modcfg["renderSubFirst"] = true;

$modTemplate[0]["preblock"] = '';
$modTemplate[0]["postblock"] = '';
$modTemplate[0]["between"] = '';
$modTemplate[0]["before"] = '<li>';
$modTemplate[0]["after"] = '</li>';
$modTemplate[0]["maskNormal"] = '<a href="{link}">{name1}</a>';
$modTemplate[0]["maskSelected"] = '<a href="{link}">{name1}</a>';

$modTemplate[1]["preblock"] = '<ul>';
$modTemplate[1]["postblock"] = '</ul>';
$modTemplate[1]["before"] = '<li>';
$modTemplate[1]["after"] = '</li>';
$modTemplate[1]["between"] = '';
$modTemplate[1]["maskNormal"] = '<a href="{link}">{name1}</a>';
$modTemplate[1]["maskSelected"] = '<a href="{link}">{name1}</a>';

$modTemplate[2]["preblock"] = '<ul>';
$modTemplate[2]["postblock"] = '</ul>';
$modTemplate[2]["before"] = '<li>';
$modTemplate[2]["after"] = '</li>';
$modTemplate[2]["between"] = '';
$modTemplate[2]["maskNormal"] = '<a href="{link}">{name1}</a>';
$modTemplate[2]["maskSelected"] = '<a href="{link}">{name1}</a>';


// Version 4 vom 13.01.2014
// Ab hier keine Änderungen notwendig

global $auth, $user;

if ($auth->auth['uid'] == '' || !is_numeric($auth->auth['uid'])) {
$user = 0;
} else {
$user = $auth->auth['uid'];
}

$activeIds = GetActiveMenuIds($GLOBALS['idcat'], array());
RenderMenu($modcfg["start_parentid"]);

function RenderMenu($parentid, $ebene = 0)
{
global $cfg, $client, $lang, $user, $modTemplate, $activeIds, $modcfg;

$menu_sql = "SELECT DISTINCT
a.idcat,
a.parentid,
a.preid,
a.postid,
a.parentid,
b.name,
b.idlang,
IF (b.visible = 1 && (b.public = 1 || d.idfrontenduser IS NOT NULL), 1, 0) AS visible
FROM ".$cfg['tab']['cat']." AS a
LEFT JOIN ".$cfg['tab']['cat_lang']." AS b ON a.idcat = b.idcat
LEFT JOIN ".$cfg['tab']['frontendpermissions']." AS c ON ((c.item = b.idcatlang OR c.item = '__GLOBAL__') AND c.idlang = b.idlang AND plugin ='category')
LEFT JOIN ".$cfg['tab']['frontendgroupmembers']." AS d ON c.idfrontendgroup = d.idfrontendgroup AND d.idfrontenduser = ".$user."
LEFT JOIN ".$cfg['tab']['cat_tree']." AS e ON a.idcat = e.idcat
WHERE a.idclient = ".$client."
and a.parentid=".$parentid."
and b.idlang=".$lang."
and (IF (b.visible = 1 && (b.public = 1 || d.idfrontenduser IS NOT NULL), 1, 0))
ORDER BY e.idtree, b.name";

$menu_query = mysql_query($menu_sql);
$menu_count = mysql_num_rows($menu_query);

$counter = 0;
if($menu_count > 0)
echo str_replace('{idcat}', $parentid, $modTemplate[$ebene]["preblock"])."\n";

while($menu_rs = mysql_fetch_array($menu_query))
{
echo str_replace('{idcat}', $menu_rs["idcat"], str_replace('{parentid}', $parentid, $modTemplate[$ebene]["before"]))."\n";

ob_start();

$output = $modTemplate[$ebene]["maskNormal"];

if(in_array($menu_rs["idcat"], $activeIds))
$output = $modTemplate[$ebene]["maskSelected"];

$output = str_replace('{idcat}', $menu_rs["idcat"], str_replace('{parentid}', $parentid, str_replace('{name1}', $menu_rs["name"], str_replace('{link}', "front_content.php?idcat=".$menu_rs["idcat"], $output))));
echo $output."\n";

$output_current = ob_get_contents();
ob_end_clean();

if(!$modcfg["renderSubFirst"])
{
echo $output_current;

if($counter < ($menu_count-1))
echo $modTemplate[$ebene]["between"]."\n";
}

if($ebene < count($modTemplate))
RenderMenu($menu_rs["idcat"], ($ebene+1));

if($modcfg["renderSubFirst"])
{
echo $output_current;

if($counter < ($menu_count-1))
echo $modTemplate[$ebene]["between"]."\n";
}

echo str_replace('{idcat}', $menu_rs["idcat"], str_replace('{parentid}', $parentid, $modTemplate[$ebene]["after"]))."\n";

$counter++;
}

if($menu_count > 0)
echo str_replace('{idcat}', $parentid, $modTemplate[$ebene]["postblock"])."\n";
}

function GetActiveMenuIds($idcat, $idArray)
{
global $cfg, $client, $lang, $user;

$idArray[] = $idcat;

$menu_sql = "SELECT DISTINCT
a.parentid
FROM ".$cfg['tab']['cat']." AS a
LEFT JOIN ".$cfg['tab']['cat_lang']." AS b ON a.idcat = b.idcat
LEFT JOIN ".$cfg['tab']['frontendpermissions']." AS c ON ((c.item = b.idcatlang OR c.item = '__GLOBAL__') AND c.idlang = b.idlang AND plugin ='category')
LEFT JOIN ".$cfg['tab']['frontendgroupmembers']." AS d ON c.idfrontendgroup = d.idfrontendgroup AND d.idfrontenduser = ".$user."
WHERE a.idclient = ".$client."
and a.idcat=".$idcat."
and b.idlang=".$lang;

$menu_query = mysql_query($menu_sql);

while($menu_rs = mysql_fetch_array($menu_query))
if(intval($menu_rs["parentid"]) > 0)
$idArray = GetActiveMenuIds($menu_rs["parentid"], $idArray);

return $idArray;
}
?>



einer eine Idee ???

Danke
Booker

homtata
Beiträge: 1142
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

Re: Mein altes Navi Modul geht nicht mehr

Beitrag von homtata » Do 20. Feb 2014, 13:22

Ganz ehrlich? Nimm doch die eine der vorgefertigten Navigationen der 4.9-Reihe, die ist wahrscheinlich schneller angepasst als die alte gefixed...

Faar
Beiträge: 1919
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Mein altes Navi Modul geht nicht mehr

Beitrag von Faar » Fr 21. Feb 2014, 10:07

...oder aber er gibt mit echo die beiden $menu_sql aus und fügt das mal in phpMyAdmin ein und schaut, was da passiert und passt das an bis es ein Ergebnis gibt.
Das ist sicher eine fiese Arbeit, aber denkbar möglich :twisted: :roll:
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

Oldperl
Beiträge: 4256
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: Mein altes Navi Modul geht nicht mehr

Beitrag von Oldperl » Fr 21. Feb 2014, 11:43

... ich würde auch ein aktuelles aus der 4.9 nehmen. Das hier gepostete Modul nutzt nicht einmal die DB-Klasse von Contenido.

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

Antworten