Не работает геокомпонент после миграции на 1.10.3

#1 3 ноября 2013 в 15:42
Мигрировал с 1.10.2 до актуальной ерсии. Все отлично. Но ГЕОкомпонент работать не захотел и до сих пор не хочет.

Проверил базу данных — все таблицы созданы и заполнены.

В админке и вовсе геокомпонент не открывает настройки и пишет: На этой странице обнаружена циклическая переадресация

а в пользовательской части выдает ошибку:

Fatal error: Unsupported operand types in /components/geo/model.php on line 50

в чем может быть дело? может какое дополнительное ресширение надо установить на сервер?
#2 3 ноября 2013 в 17:20
yury, а обновление самого компонента под icms 1.10.3 от разработчиков получали?
#3 3 ноября 2013 в 18:56

yury, а обновление самого компонента под icms 1.10.3 от разработчиков получали?

Василий
я не про инстантМап, а про компонент Гео, который теперь встроен для автоопределения города в профиле. он также теперь и в ИнстантВидео встроен.

но у меня не работает:(
#4 4 ноября 2013 в 17:44
Братцы, кто всеже может подсказать? Куда копать, что смотреть?
#5 4 ноября 2013 в 18:21

Fatal error: Unsupported operand types in /components/geo/model.php on line 50

yury
Вот эта строчка:
  1. return array('0'=>$_LANG['GEO_SELECT_COUNTRY']) + $this->getItems('cms_geo_countries');
php ворчит о недопустимом операнде "+". Давайте разбираться. Ошибка, скорее всего, из-за того, что мы пытаемся сложить массив с другим типом, например с булевым. array('0'=>$_LANG['GEO_SELECT_COUNTRY']) — это у нас всегда массив. $this->getItems('cms_geo_countries') — вот здесь может быть или массив или false. false возвращается, если из таблицы cms_geo_countries не получены данные. Проверьте есть ли таблица и есть ли в ней данные, это одна из возможных причин.
#6 4 ноября 2013 в 21:17
/components/geo/model.php on line 50 строка срабытывает в настройке профиля при клике в селекте ГОРОД.При всплывающем окне выбора города
Установите OPENSERVER open-server.ru
Создайте домен my.ru
Скопируйте сайт, и установите базу. И мучайте сколько угодно.
Просмотр кода элемента->Resources
увидите ошибки js типа
Нажимаем на скрипт с ошибкой, и справа копируем и показавыем место приводящее к ошибке
Проблема может быть всего одной стоке js!
PS//Одна из методик.
#7 4 ноября 2013 в 21:25
Установите OPENSERVER open-server.ru
Создайте домен my.ru
Скопируйте сайт, и установите базу. И мучайте сколько угодно.
Вызываем отладчик
  1. public function getCountries(){
  2. ini_set ('xdebug.collect_assignments', 1);
  3. xdebug_start_trace('C:\links');
  4. global $_LANG;
  5.  
  6. $this->inDB->orderBy('ordering, name');
  7.  
  8. return array('0'=>$_LANG['GEO_SELECT_COUNTRY']) + $this->getItems('cms_geo_countries');
  9. xdebug_stop_trace();
Окончание вызова — последние строки..
  1. => $_html_result .= '<option label="Яхрома" value="4480">Яхрома</option>\n' C:\usr\domains\InstantCMS1103-shema5\includes\smarty\libs\plugins\function.html_options.php:79
  2. => $_html_result = '<select name="cities" onchange="geo.changeCity(this)">\n<option label="-- Выберите город --" value="0">-- Выберите город --</option>\n<option label="Абрамцево" value="4313">Абрамцево</option>\n<option label="Алабино" value="4314">Алабино</option>\n<option label="Апрелевка" value="4315">Апрелевка</option>\n<option label="Архангельское" value="4316">Архангельское</option>\n<option label="Ашитково" val...' C:\usr\domains\InstantCMS1103-shema5\includes\smarty\libs\plugins\function.html_options.php:91
  3. => $this->_cache_including = FALSEinstantcms.ru\includes\smarty\libs\Smarty.class.php:1294
  4. 1.3230 4419648 -> error_reporting()instantcms.ru\includes\smarty\libs\Smarty.class.php:1306
  5. 1.3231 4417008 -> cmsCore::isAjax()instantcms.ru\core\cms.php:873
  6. 1.3232 4417040 -> mb_strtoupper()instantcms.ru\core\cms.php:873
  7. 1.3232 4417104 -> ob_get_clean()instantcms.ru\core\cms.php:873
  8. 1.3234 4404800 -> cmsCore::callEvent()instantcms.ru\core\cms.php:873
  9. 1.3234 4404800 -> cmsCore::getInstance()instantcms.ru\core\cms.php:265
  10. 1.3235 4404800 -> cmsCore->getEventPlugins()instantcms.ru\core\cms.php:265
  11. => $plugins_list = array ()instantcms.ru\core\cms.php:302
  12. => $plugin = array ('id' => '17', 'plugin' => 'p_auto_forum', 'config' => '---\nAF_DELETE_THREAD: 1\nAF_LINK_TREAD: 1\nAF_ADDTREADFORUM_ID: 1\nAF_NOCREATETREAD: 0\n', 'event' => 'ADD_ARTICLE_DONE')instantcms.ru\core\cms.php:304
  13. => $plugin = array ('id' => '8', 'plugin' => 'p_ping', 'config' => '---\nYandex HOST: ping.blogs.yandex.ru\nYandex PATH: /RPC2\nGoogle HOST: blogsearch.google.com\nGoogle PATH: /ping/RPC2\n', 'event' => 'ADD_ARTICLE_DONE')instantcms.ru\core\cms.php:304
  14. => $plugin = array ('id' => '8', 'plugin' => 'p_ping', 'config' => '---\nYandex HOST: ping.blogs.yandex.ru\nYandex PATH: /RPC2\nGoogle HOST: blogsearch.google.com\nGoogle PATH: /ping/RPC2\n', 'event' => 'ADD_BOARD_DONE')instantcms.ru\core\cms.php:304
  15. => $plugin = array ('id' => '8', 'plugin' => 'p_ping', 'config' => '---\nYandex HOST: ping.blogs.yandex.ru\nYandex PATH: /RPC2\nGoogle HOST: blogsearch.google.com\nGoogle PATH: /ping/RPC2\n', 'event' => 'ADD_POST_DONE')instantcms.ru\core\cms.php:304
  16. => $plugin = array ('id' => '17', 'plugin' => 'p_auto_forum', 'config' => '---\nAF_DELETE_THREAD: 1\nAF_LINK_TREAD: 1\nAF_ADDTREADFORUM_ID: 1\nAF_NOCREATETREAD: 0\n', 'event' => 'DELETE_ARTICLE')instantcms.ru\core\cms.php:304
  17. => $plugin = array ('id' => '17', 'plugin' => 'p_auto_forum', 'config' => '---\nAF_DELETE_THREAD: 1\nAF_LINK_TREAD: 1\nAF_ADDTREADFORUM_ID: 1\nAF_NOCREATETREAD: 0\n', 'event' => 'GET_ARTICLE')instantcms.ru\core\cms.php:304
  18. => $plugin = array ('id' => '14', 'plugin' => 'p_hidetext', 'config' => '---\n', 'event' => 'GET_COMMENT')instantcms.ru\core\cms.php:304
  19. => $plugin = array ('id' => '14', 'plugin' => 'p_hidetext', 'config' => '---\n', 'event' => 'GET_COMMENTS')instantcms.ru\core\cms.php:304
  20. => $plugin = array ('id' => '14', 'plugin' => 'p_hidetext', 'config' => '---\n', 'event' => 'GET_FORUM_POSTS')instantcms.ru\core\cms.php:304
  21. => $plugin = array ('id' => '14', 'plugin' => 'p_hidetext', 'config' => '---\n', 'event' => 'GET_POST')instantcms.ru\core\cms.php:304
  22. => $plugin = array ('id' => '14', 'plugin' => 'p_hidetext', 'config' => '---\n', 'event' => 'GET_POSTS')instantcms.ru\core\cms.php:304
  23. => $plugin = array ('id' => '14', 'plugin' => 'p_hidetext', 'config' => '---\n', 'event' => 'GET_WALL_POSTS')instantcms.ru\core\cms.php:304
  24. => $plugin = array ('id' => '3', 'plugin' => 'p_fckeditor', 'config' => '---\n', 'event' => 'INSERT_WYSIWYG')instantcms.ru\core\cms.php:304
  25. => $plugin = array ('id' => '16', 'plugin' => 'p_loginza', 'config' => '---\nPL_PROVIDERS: >\n vkontakte,facebook,mailruapi,google,yandex,openid,twitter,webmoney,rambler,flickr,mailru,loginza,myopenid,lastfm,verisign,aol,steam\nPL_LANG: ru\n', 'event' => 'LOGINZA_AUTH')instantcms.ru\core\cms.php:304
  26. => $plugin = array ('id' => '16', 'plugin' => 'p_loginza', 'config' => '---\nPL_PROVIDERS: >\n vkontakte,facebook,mailruapi,google,yandex,openid,twitter,webmoney,rambler,flickr,mailru,loginza,myopenid,lastfm,verisign,aol,steam\nPL_LANG: ru\n', 'event' => 'LOGINZA_BUTTON')instantcms.ru\core\cms.php:304
  27. => $plugin = array ('id' => '19', 'plugin' => 'p_neomessenger', 'config' => '---\nтаймаут обновления чата (сек): 2\n', 'event' => 'PRINT_PAGE_HEAD')instantcms.ru\core\cms.php:304
  28. => $plugin = array ('id' => '17', 'plugin' => 'p_auto_forum', 'config' => '---\nAF_DELETE_THREAD: 1\nAF_LINK_TREAD: 1\nAF_ADDTREADFORUM_ID: 1\nAF_NOCREATETREAD: 0\n', 'event' => 'UPDATE_ARTICLE')instantcms.ru\core\cms.php:304
  29. => $plugins = array ()instantcms.ru\core\cms.php:265
  30. 1.3247 4404736 -> cmsCore::halt()instantcms.ru\core\cms.php:873
  31. 1.3257 4400624 -> cmsDatabase->__destruct()instantcms.ru\core\classes\db.class.php:0
  32. 1.3258 4400656 -> mysqli_close()instantcms.ru\core\classes\db.class.php:41
Это с рабочей версии. Установите отладку в функции, и покажите что у ВАс.
PS//Одна из методик.
#8 4 ноября 2013 в 22:02
ошибок в скриптах не показвает вкладка ресоурс

с дебагером не совсем понял что надобно сделать, т.к ранее не работал с ним. что-то и куда-то надо установить? или что за папку links надобно создать?

функцию прописал по Вашему примеру, но выдало в окне теперь:

Fatal error: Call to undefined function xdebug_start_trace() in /components/geo/model.php on line 46

вот скрин из БД, вроде все таблицы на месте?

#9 4 ноября 2013 в 22:14
links это текстовый файл лога. Можно именовать по желанию log-debag… От создается автоматически при перезагрузке страницы и его содержимое обновляется при каждом цикле обработки исследуемого кода. Открыть это файл для просмотра можно в любом редакторе, notepad++ или аналогичном на чем привыкли работать.
Если файл не обновляется в редакторе — значит php не обрабатывает фрагмент кода — (НЕ проходит) это место, где размещен вызов xdebug.
Запуск отладки — установкой строк в отлаживаемом коде
  1. ini_set ('xdebug.collect_assignments', 1);
  2. xdebug_start_trace('C:\links');
файл будет создан в корне диска c:. Можно в домене openserver C:\usr\domains\****mu.ru\links
файл будет создан в директории домена. Без разницы, как удобнее.
Завершение отладки — установкой строки
  1. xdebug_stop_trace();
ее размещаем в конце исследуемого кода.Надо внимательно устанавливать строки начала и окончание отладки -иначе получим 6 метровую простыню, работы всей icms, а не исследуемого фрагмента кода. Начало отладки — перед началом цикла, окончание отладки — после окончания цикла, аналогично в foreach и условиях.
#10 4 ноября 2013 в 22:17
PHP 5.3.18 (Xdebug 2.2.3;
PHP 5.3.27 (Xdebug 2.2.3;
PHP 5.4.20 (Xdebug 2.2.3);
PHP 5.5.4 (Xdebug 2.3)
#11 4 ноября 2013 в 22:17
очень интересно. удалил все эти таблицы. взял файл geo.sql в папке миграции и заного сделал запрос на создание таблиц. в результате заработало.

спасибо всем, кто откликнулся. возможно еще у кого такая проблема возникнет, будет знать как рашать:)

только непонятно что за 2 таблицы у меня там лишние на скрине
#12 4 ноября 2013 в 22:20
hoho
#13 4 ноября 2013 в 22:26
oll, спасибо огромное!!!:) popcorn
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.