====== 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.