Joomla mega.class.php
Nu ik al 5 minuten lid ben van dit forum zou ik graag direct een vraag stellen. Ik hoor wel asl dat te snel is!
Ik heb een site omgezet van joomla 1.5.26 en virtuemart 1.1.9 naar joomla 2.5.9 en virtuemart 2.0.12
Dat is met hulp goed gelukt, maar er doet zich een vervelende fout voor op de site, waarbij de fout verwijst naar het bestand megaclass.php. Ik weet van dit soort programmeertalen niets en php nog minder.
Ik kan slechts de fout herhalen die zich voordoet en de regeles uit het betreffende bestand.
De site is www.barbieredifigaro.nl.
Als ik (bijvoorbeeld) de functie oude bestellingen gebruik, dan lijkt de oriëntatie van megamenu plotseling verticaal en dat geeft een heel gek beeld natuurlijk.
Daarnaast verschijnt vele keren de volgende foutcode:
Warning: in_array() [function.in-array]: Wrong datatype for second argument in ////domains/barbieredifigaro.nl/public_html/plugins/system/jat3/jat3/core/menu/mega.class.php on line 277
Ik heb dat stukje bekeken, maar dat is voor mij Chinees.
Er staat dit: (heb zelf even de regelnummers hier beperkt toegevoegd)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/**
* Generate class item
*
* @param object $mitem Menu item
* @param int $level Menu level
* @param string $pos Position
*
* @return void
*/
function genClass($mitem, $level, $pos)
{
$iParams = new JRegistry($mitem->params);
$cls = "mega" . ($pos ? " $pos" : "");
if (@$this->children[$mitem->id] || (isset($mitem->content) && $mitem->content)) {
if ($mitem->megaparams->get('group'))
$cls .= " group";
else if ($level < $this->getParam('endlevel')) $cls .= " haschild";
}
277 $active = in_array($mitem->id, $this->open);
278 if (!preg_match('/group/', $cls)) $cls .= ($active ? " active" : "");
if ($mitem->megaparams->get('class')) $cls .= " " . $mitem->megaparams->get('class');
return $cls;
}
/**
* Echo markup before menu item markup
*
* @param object $mitem Menu item
* @param int $level Menu level
* @param string $pos Position
*
* @return void
*/
* Generate class item
*
* @param object $mitem Menu item
* @param int $level Menu level
* @param string $pos Position
*
* @return void
*/
function genClass($mitem, $level, $pos)
{
$iParams = new JRegistry($mitem->params);
$cls = "mega" . ($pos ? " $pos" : "");
if (@$this->children[$mitem->id] || (isset($mitem->content) && $mitem->content)) {
if ($mitem->megaparams->get('group'))
$cls .= " group";
else if ($level < $this->getParam('endlevel')) $cls .= " haschild";
}
277 $active = in_array($mitem->id, $this->open);
278 if (!preg_match('/group/', $cls)) $cls .= ($active ? " active" : "");
if ($mitem->megaparams->get('class')) $cls .= " " . $mitem->megaparams->get('class');
return $cls;
}
/**
* Echo markup before menu item markup
*
* @param object $mitem Menu item
* @param int $level Menu level
* @param string $pos Position
*
* @return void
*/
Ik zie dat het gebeurt als ik bepaalde extensies gebruik. Bijvoorbeeld een extensie om de fabrikanten te tonen of een extensie om te zoeken. Het lijkt erop alsof het dan fout gaat als het geen "eigen" joomla/vm-extensie is, want nu ik voor de fabrikanten weer de reeds in vm aanwezige extensie gebruik, dan heb ik niet de foutcode.
Dus nu ben ik op zoek naar iemand die dit misschien ook had en een oplossing daarvoor heeft.
PS: Als dit topic beter elders thuishoort, dan zal ik het aanpassen.
Bij voorbaat dank,
Eric
Gewijzigd op 30/12/2012 12:36:20 door Eric BdF
Door een @ toe te voegen onderdruk je de error melding. Maar dit lost het probleem eigenlijk niet op.
Edit: Op joomlanl.nl zit een gedreven community die je hierbij vast en zeker te hulp kan schieten! Ik zou daar eens kijken als ik jou was (op het forum).
Gewijzigd op 30/12/2012 14:44:47 door Dylan PHP
Ik heb de @ toegevoegd en dan krijg ik die error niet meer, dus heel hartelijk bedankt voor die tip.
Een andere module geeft in helper.php een zelfde soort fout, die te maken heeft met get item class, maar als ik daar op de betreffende regel de @ toevoeg, dan gaat er meer fou dan goed.
Maar ik ben voor de belangrijkste module nu wel geholpen.
Hartelijk dank voor het meedenken; de vraag staat idd. ook al uit op joomlanl.nl. Ik denk dat deze error nog niet veel vaker is voorgekomen. Voor mij zit het probleem dat ik ook niet weet, wat de fout precies betekent. Er wordt een array verwacht maar de waarde die gegeven wordt is null. Ik kan niet nagaan, waar in welk menu ik dan iets moet doen.
Ik ga verder zoeken!
Eric
Gewijzigd op 30/12/2012 15:18:37 door Eric BdF