====== Eaze FAQ ======
===== http://localhost/ =====
== Когда я открываю сайт, вижу 501 Not Implemented. ==
У вас не настроен хост в [[eaze:sites.xml]]
----
== Когда я открываю сайт, вижу 404 Not Found. ==
Хост настроен, но страница не найдена в [[eaze:pages.xml]].
Ну или кто-то вызвал:):Response::HttpStatusCode('404', 'Not Found' );
----
== Когда я открываю сайт, вижу 500 Internal Server Error. ==
Скорее всего, у вас не обрабатывается .htaccess файл. Проверьте настройки веб-сервера (mod_rewrite?).
----
===== Многоязычность =====
== Как сделать сайт мультиязычным? ==
Необходимо с помощью MFD.Eaze.LanguageEditor создать еще один языковой ХХ.xml файл,
и при составлении шаблонов использовать переменные типа: fe.common.back
----
===== SQL запросы =====
== Как выполнить SQL запрос ==
Произвольный SQL запрос выполнятся следущим образом:
$search = " find ' me ";
$conn = ConnectionFactory::Get();
$query = <<SetString( '@search', $search );
$ds = $cmd->Execute();
$result = array();
while( $ds->next() ) {
$id = $ds->GetInteger( 'pageId' );
$result[$id] = array(
'pageId' => $id
, 'title' => $ds->GetString( 'title' )
, 'url' => $ds->GetString( 'url' )
);
}
return $result;
Все параметры в запросе задаются с помощью методов SqlCommand::Set<ИмяТипа>(). Например, массив целых чисел можно передать как
$cmd->SetList( '@varName', $array, TYPE_INTEGER)
( в старой версии Eaze этот метод называется SetArray )
== БД и кодировки ==
Как импортировать значения БД которые хранятся в кодировке utf-8, если БД инициализирована в другой кодировке?
Для MySQL есть замечательное решение:
- Делаем дамп БД: mysqldump -h host.com --user=frog -p --default-character-set=latin1 -c \ --insert-ignore --skip-set-charset dbname > dump.sql Тут нужно заменить все встречаемые кодировки в дампе на utf-8
- Создаем БД: mysql --user=root --password=trash911 --execute="DROP DATABASE enportal; CREATE DATABASE enportal CHARACTER SET utf8 COLLATE utf8_general_ci;"
- Импортируем БД: mysql --user=root --password=trash911 --default-character-set=utf8 enportal < D:/dump.sql
----
===== Перенаправления (Redirects) =====
== У меня есть параметр в запрашиваемом URL. Как мне его передать в redirect? ==
В URL редиректа можно использовать переменные. Значение переменной указывается в фигурных скобках, например:
где roundId - имя параметра, определенного в объекте Response. Например:
Response::setInteger( 'roundId', $roundId );
===== Часто встречающиеся ошибки =====
== BaseFactory.php on line 586 (GetObject) ==
Notice: Undefined index: profileId in D:\www\olymp.ifmo.ru\cms\web\lib\Eaze.Model\BaseFactory.php on line 586
Fatal error: Class 'Factory' not found in D:\www\olymp.ifmo.ru\cms\web\lib\Eaze.Model\BaseFactory.php on line 588
Причины: Результат запроса содержит поля, в имени которых есть символ '.' (точка), а поле не объявлено в mapping у Factory.