Warning: extract() expects parameter 1 to be array

 
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1035
При создании нового модуля возникает варнинг
Warning: extract() expects parameter 1 to be array, null given in ..../system/core/template.php on line 1316

строка 1316
Код PHP:
  1.  
  2. public function renderWidget($widget, $data=array()){
  3. ...
  4. 1316: extract($data);
  5. ...
  6. }
  7.  
От чего может быть? $data ведь в любом случае является массивом.

p.s. версия 2.1.2
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3546
Rossoman, это от того, что до 1316 строчки доходит $data в которой уже не массив, а судя по фразе null given в ней вообще ничего нет. Он либо изначально не задан при вызове renderWidget($widget, $data); либо в процессе обработки теряет своё значение.
Реклама
cms
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1035
Loadырь:
а судя по фразе null given в ней вообще ничего нет
так на этот случай здесь же и прописано $data=array()
Код PHP:
  1. public function renderWidget($widget, $data=array())
то есть $data при вызове функции в любом случае будет являтся массивом
Редактировалось: 1 раз (Последний: 12 марта 2015 в 20:24)
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1035
var_dump($data) выводит NULL
но почему?
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3546
У вас var_dump($data) выводит NULL - это если прописать var_dump($data) сразу после
Код PHP:
  1. public function renderWidget($widget, $data=array()){
????
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 692
то есть $data при вызове функции в любом случае будет являтся массивом
Не в любом, а только в том случае если второй параметр не передавался вообще. Как вариант используйте приведение типа к массиву или проверку на is_array.... бог знает что там у вас в предыдущих 1315 строках
Skype: pasha--g
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3546
Rossoman:
var_dump($data) выводит NULL
в двойке используется
Код PHP:
  1. dump($data)
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1035
Loadырь:
в двойке используется
Код PHP:
dump($data)
выводит array()
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1035
вот вся функция до 1316

Код PHP:
  1.  
  2. public function renderWidget($widget, $data=array()){
  3.  
  4. $tpl_path = cmsCore::getWidgetPath($widget->name, $widget->controller);
  5.  
  6. $tpl_file = $this->getTemplateFileName($tpl_path . '/' . $widget->getTemplate());
  7.  
  8. extract($data);
  9.  
Это вообще из файла core/template.php
По идее он вообще должен быть не причем...
Редактировалось: 1 раз (Последний: 12 марта 2015 в 20:45)
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3546
Rossoman, тогда как вы вызаваете ваш виджет?
Код PHP:
  1. echo renderWidget('некий_виджет', $data)
или
Код PHP:
  1. echo renderWidget('некий_виджет')
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 692
Loadырь:
Rossoman, тогда как вы вызаваете ваш виджет?
А вернее что тогда возвращает ваш виджет? Должен вернуть массив, а на самом деле что?
Skype: pasha--g
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1035
Loadырь, Pasha,
виджет отображает то что и должен, ту инфу, которую я указываю, с этим проблем нет. Виджет полностью работает.
Виджет я никак не вызываю, я его после установки размещаю в нужном месте в админке.
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1035
блин!!! спать срочно)
спасибо всем за помощь)
сам туплю, из файла виджета не возвращаю ничего, вот он и ругается
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3546
Rossoman:
сам туплю
и такое бывает.
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1035
CLOSE
В начало страницы
Предыдущая темаСледующая тема Перейти на форум: