Powered by CodeIgniter
IceDragon

IceDragon

16
18 голосов
  ПрофильБлог (9)Комментарии (183)ЗакладкиПродукты (1) 
Буду описывать в режиме онлайн установку движка на хостинг (наметки будущих исправлений)
Скачал дистрибутив dev с github.com на 21 01 2011
распаковал на хостинг реального хостера (PHP Version 5.2.17)
Установил БД, переименовал cogear.new в поддомен сайта (по которому и тестирую), прописал настройки

При запуске получил ошибку
Notice: Trying to get property of non-object in /engine/Theme/Gear.php on line 173 Notice: Trying to get property of non-object in /engine/Theme/Gear.php on line 173 Notice: Indirect modification of overloaded property Cogear::$theme has no effect in /engine/Theme/Gear.php on line 173 Strict Standards: Creating default object from empty value in /engine/Theme/Gear.php on line 173 Notice: Trying to get property of non-object in /engine/Theme/Gear.php on line 174 Notice: Trying to get property of non-object in /engine/Theme/Gear.php on line 174 Fatal error: Call to a member function append() on a non-object in /engine/Theme/Gear.php on line 174
Как выяснилось — в файле index.php на 94 строке $host оказался NULL

$host = $cogear->request->get('HTTP_HOST');
при этом в $_SERVER['HTTP_HOST'] лежал адрес сайта

Нашел что это баг php при фильтрации (т.е. нужна другая версия php)

/engine/Core/Request.php на 64 строке
https://bugs.php.net/bug.php?id=49184

на версии php Version 5.3.6 работает нормально, т.е. в отношении реального хостинга надо придумать что то другое.

Пока что прописал$host = $_SERVER['HTTP_HOST'];
Тоже самое с $port = $cogear->request->get('SERVER_PORT').

Дальше была проблема с интернационализацией.

В файле /sites/cogear.new/config.php по умолчанию установлено следующее
'i18n' => array ( 'lang' => 'ru', ),
Считывается это так (/engine/I18n/Gear.php )

$this->adapter = new $adapter(config('i18n',array( 'lang' => 'en', 'path' => SITE.DS.'lang', )));
Как результат — у нас не установлена опция 'path', и он искал файл языка в '/ru.php'
Прописал в конфиг — 'path' => SITE.DS.'lang',
варианта еще 2.
1й — определить опцию по умолчанию 'path' => SITE.DS.'lang',
или 2й — проверять при использовании и если нет — то использовать 'path' => SITE.DS.'lang'

Сайт загрузился без видимых ошибок.

Залогинился.
При попытке изменить настройки текущего пользователя — не сохранил настройки.

Оказалось что в шестеренке USER при сохранении редактированных данных нужен
$user->object->adopt($result); а не
$user->adopt($result);
20:24 ← 21 января 2012 Отправить в Твиттер icedragonIceDragon  RSS comments 1

Комментарии (1) ↓

Автор
IceDragon IceDragon time 21:13 ← 21 января 2012 #
Потом составлю update и закамитчу