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

Тема в разделе "Установка и обновление расширений Joomla", создана пользователем Ktif, 09.09.2012.

  1. Offline

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

    Регистрация:
    08.09.2012
    Сообщения:
    4
    Симпатии:
    0
    Пол:
    Мужской
    Warning: Invalid argument supplied for foreach() in …public_html/components/com_k2/helpers/permissions.php on line 203

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

    draff Russian Joomla! Team Команда форума

    Регистрация:
    17.01.2011
    Сообщения:
    6 037
    Симпатии:
    518
    Пол:
    Мужской
    код выложи от 200 до 210 строки
     
  4. Offline

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

    Регистрация:
    08.09.2012
    Сообщения:
    4
    Симпатии:
    0
    Пол:
    Мужской
    }
    $db->setQuery($query);
    $categories = $db->loadObjectList();
    foreach ($categories as $category) {
    if(in_array('add.category.'.$category->id, $K2Permissions->actions)){
    return true;
    }
    }

    return false;
    }
     
  5. draff
    Offline

    draff Russian Joomla! Team Команда форума

    Регистрация:
    17.01.2011
    Сообщения:
    6 037
    Симпатии:
    518
    Пол:
    Мужской
    А можно было еще выше,не видно какой запрос и откуда $query
    Выведи тест массива,вставь перед циклом foreach
    echo '<pre> print_r($categories) '</pre>';
    Если массив пустой,проверяй таблицу,откуда выводятся данные
     
  6. Offline

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

    Регистрация:
    08.09.2012
    Сообщения:
    4
    Симпатии:
    0
    Пол:
    Мужской
    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;

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

Поделиться этой страницей

Загрузка...