invalid argument

balazsgabi képe

Üdv Mindenkinek!

Egy oldalon amit éppen csinálgatok az alábbi hibaüzenet kapom:

Invalid argument supplied for foreach() in /site.hu/includes/menu.inc on line 743.

A Taxonomy Menu-vel hoztam létre blokkokat ami eddig működött is. Ma egy újabb menu blokkot akartam létre hozni, de miután megjelent rájöttem ez nem az ami - és ahol - nekem kell így töröltem a szótárat. Ekkor jelent meg a warning.

Röviden a fenti modul úgy működik, hogy menüblokkot lehet létre hozni már meglevő szótárak alapján, amik aztán megjelennek a blokkoknál.

Tehát itt valóban elkövettem egy ballépést, miszerint előbb a blokkott kellett volna törölnöm, majd a tax,-ot de hát nem így történt.

Ezek után láttam, hogy a fenti modulból van újabb verzió, frissítettem hátha ez segít, de nem segített.

az idevonatkozó kód részlet a következő:

function menu_tree_output($tree) {
  $output = '';
  $items = array();
 
  // Pull out just the menu items we are going to render so that we
  // get an accurate count for the first/last classes.
(ez itt a 734.sor)  foreach ($tree as $data) {
    if (!$data['link']['hidden']) {
      $items[] = $data;
    }
  }
 
  $num_items = count($items);
  foreach ($items as $i => $data) {
    $extra_class = array();
    if ($i == 0) {
      $extra_class[] = 'first';
    }
    if ($i == $num_items - 1) {
      $extra_class[] = 'last';
    }
    $extra_class = implode(' ', $extra_class);
    $link = theme('menu_item_link', $data['link']);
    if ($data['below']) {
      $output .= theme('menu_item', $link, $data['link']['has_children'], menu_tree_output($data['below']), $data['link']['in_active_trail'], $extra_class);
    }
    else {
      $output .= theme('menu_item', $link, $data['link']['has_children'], '', $data['link']['in_active_trail'], $extra_class);
    }
  }
  return $output ? theme('menu_tree', $output) : '';
}

Arra gondoltam, hogy a modul hatására módosult ez a core inc, ezért egy "szűzzel" felülírtam. Ez sem segített, a warning továbbra is ott van.

Kérdésem: mit lehet ezzel tenni, hogy helyre álljon a világbéke?

ui. természetesen nincs adatbázis mentésem

Drupal verzió: 
Fórum: 
aboros képe

talán a {block} táblában van jegyezve ez valahol. nem tudom. nézd meg a block.module -ban hogyan csinálja :) (beszt pp: az opensourceban az a jó, hogy ha nem tudod hogy működik valami, akkor megnézed:)

ha drush -al törölteted az összes cachet, nem veszi észre a taxonomy_menu hogy hiányoznak a szótárak és talán el is tűnteti a rájuk épített menüt/blokkot?

ha ez nem megy, akkor sajnos kiscicák vérét kell ontani.
bele kell nyúljál a core menu.inc -be, hogy ne szaladjon ebbe a hibába. rakjad azt az egész foreach ágat egy if -be, az a feltétel, hogy if (is_array($tree)) .. ezzel elkerülöd majd, hogy invalid argumentet kapj, kikapcsolod a blokkokat és kész. minden kesst törölj is azért, de miután a blokkoktól megszabadultál, rögvest csináld vissza a menu.inc -et!

0
0

-
clear: both;

balazsgabi képe

Viszont kössz a segítséget és azt is, hogy kinézted belőlem, hogy megértem a block.module működését :) Viszont ha érteném valószínű nem tennék fel ilyen jellegű kérdéseket :)

Ezen kívül a mészárlásban sem vagyok jártas, bár pont ezt az egyet értettem, - mármint a feltételes elágazást - azokból amit említettél.
Az, hogy nem a blokkok okozták, arra alapozom hogy miután töröltem őket még mindig fent állt a warning. Délelőtt már olvastam a hsz-ed, de csak most itthon volt időm és energiám értelmezni amiket írtál. Szóval a blokkok törlése után elkezdtem törölgetni a szótárakat is, illetve az első eltávolítása után eltűnt a warning. Amit úgy élek meg, hogy ez volt a hiba forrása.

Egyébként négy szótár, mindegyik külön tartalomtípusban volt. A hiba akkor jelentkezett amikor egy ötödik tax.-ot is felvettem a meglévő tartalomtípusok egyikéhez, ahhoz amelyiknek az eredeti szótárát töröltem. Bár erre vonatkozóan nem találtam sehol utalást, hogy nem lehetne - miért is ne lehetne? - egyazon tartalomtípushoz több szótárat kapcsolni.

Egy a tuti: ebben a (taxonómia) témában jobban el kell merüljek.

Kössz még egyszer a segítséget!

0
0
szantog képe

Ez a taxonomy menu okossága, néha elég egy menu rebuild, de volt már olyan, hogy a összes taxonomy_menu által kezelet rekordot törölni kellet a menu_router táblából, és utána update.php.

0
0

----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.