Инструменты пользователя

Инструменты сайта


eaze:faq

Eaze FAQ

http://localhost/

Когда я открываю сайт, вижу 501 Not Implemented.

У вас не настроен хост в sites.xml


Когда я открываю сайт, вижу 404 Not Found.

Хост настроен, но страница не найдена в 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 = <<<sql
        SELECT *
        FROM "contentPages"
        WHERE lower( "title" ) LIKE lower( @search )
            AND "statusId" IN ( 1, 2 )
sql;
 
    $cmd = new SqlCommand( $query, $conn );
    $cmd->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 есть замечательное решение:

  1. Делаем дамп БД: mysqldump -h host.com –user=frog -p –default-character-set=latin1 -c \ –insert-ignore –skip-set-charset dbname > dump.sql Тут нужно заменить все встречаемые кодировки в дампе на utf-8
  2. Создаем БД: mysql –user=root –password=trash911 –execute=«DROP DATABASE enportal; CREATE DATABASE enportal CHARACTER SET utf8 COLLATE utf8_general_ci;»
  3. Импортируем БД: mysql –user=root –password=trash911 –default-character-set=utf8 enportal < D:/dump.sql

Перенаправления (Redirects)

У меня есть параметр в запрашиваемом URL. Как мне его передать в redirect?

В URL редиректа можно использовать переменные. Значение переменной указывается в фигурных скобках, например:

    <redirect name="toTest"  path="/{roundId}/"/>

где 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.

eaze/faq.txt · Последние изменения: 2011/11/30 10:49 — zenden