Как исправить ошибку "Warning: Invalid argument supplied for foreach() in"?

Discussion in 'Установка и обновление расширений Joomla' started by Ktif, Sep 9, 2012.

  1. Offline

    Ktif Недавно здесь

    Joined:
    Sep 8, 2012
    Messages:
    4
    Likes Received:
    0
    Gender:
    Male
    Warning: Invalid argument supplied for foreach() in …public_html/components/com_k2/helpers/permissions.php on line 203

    Тут исчез компонент К2
    Буду благодарен, если кто поможет решить проблему и устранить ошибки.
     
  2.  
  3. OlegK
    Offline

    OlegK Russian Joomla! Team Staff Member ⇒ Профи ⇐

    Joined:
    Jan 17, 2011
    Messages:
    7,812
    Likes Received:
    771
    Gender:
    Male
    код выложи от 200 до 210 строки
     
  4. Offline

    Ktif Недавно здесь

    Joined:
    Sep 8, 2012
    Messages:
    4
    Likes Received:
    0
    Gender:
    Male
    }
    $db->setQuery($query);
    $categories = $db->loadObjectList();
    foreach ($categories as $category) {
    if(in_array('add.category.'.$category->id, $K2Permissions->actions)){
    return true;
    }
    }

    return false;
    }
     
  5. OlegK
    Offline

    OlegK Russian Joomla! Team Staff Member ⇒ Профи ⇐

    Joined:
    Jan 17, 2011
    Messages:
    7,812
    Likes Received:
    771
    Gender:
    Male
    А можно было еще выше,не видно какой запрос и откуда $query
    Выведи тест массива,вставь перед циклом foreach
    echo '<pre> print_r($categories) '</pre>';
    Если массив пустой,проверяй таблицу,откуда выводятся данные
     
  6. Offline

    Ktif Недавно здесь

    Joined:
    Sep 8, 2012
    Messages:
    4
    Likes Received:
    0
    Gender:
    Male
    if($category){
    return in_array('add.category.'.$category, $K2Permissions->actions);
    }
    $db = &JFactory::getDBO();
    $query = "SELECT * FROM #__k2_categories WHERE published=1 AND trash=0";
    if(K2_JVERSION == '16'){
    $query .= " AND access IN(".implode(',', $user->authorisedLevels()).")";
    }
    else {
    $aid = (int) $user->get('aid');
    $query .= " AND access<={$aid}";
    }
    $db->setQuery($query);
    $categories = $db->loadObjectList();
    foreach ($categories as $category) {
    if(in_array('add.category.'.$category->id, $K2Permissions->actions)){
    return true;

    Привел код по строкам немного выше.
    Так как мой уровень не позволяет понять ваши рекомендации, просьба подробней писать что где проверять и как найти. Спасибо.
     

Share This Page

Loading...