Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Warning: Invalid argument supplied for foreach() in...

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

323182

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Данная ошибка появилась на сайте в рабочем плагине, т.е. плагин работает, но после определенных успешных действий появляется ошибка: Warning: Invalid argument supplied for foreach() in...
Код для правки:

Код:
 
<?php foreach ($this->items[$category] as $item) {
 
$itemdate = isset($item->published) ? $item->published : $item->modified;
 
$title = $item->title.'<i class="rlicon-toggle pull-right"></i><div class="header_date"><span class="author">'.JText::sprintf('RL_TBAUTHOR',$item->author).'</span><span class="date">'.JHtml::_('Date',$item->modified,JText::_('RL_TBDATE')).'</span></div>';?>

Подскажите, пожалуйста, кто знает, что нужно исправить?

Всего записей: 44 | Зарегистр. 07-01-2012 | Отправлено: 12:48 19-08-2015 | Исправлено: 323182, 12:50 19-08-2015
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
323182
В данном куске - ничего. Ошибка же явно говорит, что
Цитата:
$this->items[$category]  

не является массивом. А что там, откуда берутся данные и почему там не массив - из этого куска не видно.
Сделайте для себя до этой строки
var_dump($this->items);
и смотрите что там и как.

Всего записей: 15100 | Зарегистр. 20-09-2014 | Отправлено: 12:53 19-08-2015
323182

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Сделайте для себя до этой строки
var_dump($this->items);
и смотрите что там и как.

Выводятся еще больше ошибок.

Всего записей: 44 | Зарегистр. 07-01-2012 | Отправлено: 18:38 19-08-2015 | Исправлено: 323182, 18:39 19-08-2015
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
323182

Цитата:
Выводятся еще больше ошибок.

var_dump не выводит ошибки, он выводит содержимое переменной.
чтобы посмотрели, что находится в
Цитата:
$this->items[$category]  

и почему это не является массивом.
одновременно неплохо посмотреть значение $category

Всего записей: 15100 | Зарегистр. 20-09-2014 | Отправлено: 19:41 19-08-2015
323182

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Что именно выводится:Подробнее...
и  
Подробнее...

Всего записей: 44 | Зарегистр. 07-01-2012 | Отправлено: 20:08 19-08-2015
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
323182

Цитата:
Что именно выводится:

Важна часть
Цитата:
array(1) { ["Статьи"]=> array(1) { [0]=> object(stdClass)#409 (50) { ["id"]=> string(2) "76" ["asset_id"]=> string(3) "203" ["title"]=> string(52) "Бесплатный интернет магазин" ["alias"]=> string(18) "free-internet-shop" ["introtext"]=> string(2027) "  

как видно, массив $this->items состоит из одного элемента с ключом "Статьи"
значит $category содержит что то иное или вообще пустое, о чем и говорит второй вывод.
Смотреть откуда берется и почему пустое.
Можно, конечно, добавить проверку вида

Код:
if (isset($this->items[$category]) && is_array($this->items[$category]))
foreach ($this->items[$category] as $item) {
....
}

что уберет сообщение об ошибке и не будет ничего выводить если в массиве нет нужного элемента.

Всего записей: 15100 | Зарегистр. 20-09-2014 | Отправлено: 20:12 19-08-2015
323182

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii Спасибо огромное за помощь и решение:

Код:
<?php
if (isset($this->items[$category]) && is_array($this->items[$category]))
foreach ($this->items[$category] as $item) {$itemdate = isset($item->published) ? $item->published : $item->modified;
$title = $item->title.'<i class="rlicon-toggle pull-right"></i><div class="header_date"><span class="author">'.JText::sprintf('RL_TBAUTHOR',$item->author).'</span><span class="date">'.JHtml::_('Date',$item->modified,JText::_('RL_TBDATE')).'</span></div>';?>


Всего записей: 44 | Зарегистр. 07-01-2012 | Отправлено: 20:56 19-08-2015
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » Warning: Invalid argument supplied for foreach() in...


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru