to post messages and comments.

Сменить параметр текущего route (KO 3.3):
Request::current()->route()->uri(array('lang' => 'ru'));

Не верьте вики, там через Request::instance(), который ещё с 3.1 убран.

Всё, кроме первотега, к проблеме дела не имеет, но я её так обнаружил.

Короче, Mustache переделывает весь код, который пропускает через себя, так чтобы у него были красивые отступы. Всё бы ничего, но именно поэтому ему нельзя просто так скормить теги <pre> и <textarea>.

Фикс очень простой: убрать всю индентацию в родительском шаблоне. Не полностью, а только в той строчке, куда встаёт textarea или шаблон: никакого отступа от начала строки.

Третий день добиваю ORM в Kohana. Я, конечно, программист довольно спокойный, но если встречу когда-нибудь zombor'а (shadowhand тоже подойдёт) — я так заставлю его писать подробные и понятные доки...

Kohana 3.1, отлов ошибок. Index.php:

try{
echo Request::factory()->execute()->send_headers()->body();
}
catch (Http_Exception_403 $e){
echo Request::factory('error/403')->execute()->send_headers()->body();
}
catch (Http_Exception_404 $e){
echo Request::factory('error/404')->execute()->send_headers()->body();
}
catch (Http_Exception_500 $e){
echo Request::factory('error/500')->execute()->send_headers()->body();
}
catch (Http_Exception_503 $e){
echo Request::factory('error/503')->execute()->send_headers()->body();
}

Rewrite правило для Kohana 3 под Lighttpd:

url.rewrite-if-not-file = (
"^/(application|modules|system)/.*$" => "index.php/error/403", #если у вас есть контроллер error, хватающий 403 ошибки
"^/(.+)/?$" => "index.php/$1"
)

Для чистой базы модуля Auth Kohana 3 — способ забить данные:

try{
DB::insert('roles')->values(array(1, 'login', 'Права логина'),array(2, 'admin', 'Права админа'))->execute();
}
catch( Database_Exception $e ){}
$user = new Model_User;
$user->username = 'логин_админа';
$user->password = 'пароль_админа';
$user->email = '[email protected]';
$user->create();
$login_role = new Model_Role(array('name' =>'login'));
$admin_role = new Model_Role(array('name' =>'admin'));
$user->add('roles',$login_role);
$user->add('roles',$admin_role);

Юзаю честно стыренную библиотеку Censure.
Как не бьюсь — Class 'Censure' not found. Что за [censored]ня!!
Оказывается в имени файла первая буква С — русская

Кто знает, как в Ko3 определять приоритет загрузки файлов одного модуля перед другим модулем? Оба модуля нужны.

Подробнее описываю ситуацию.
Пишу свой модуль. Хочу, чтобы он был легко-переносимым от приложения к приложению. В нём использую штатный модуль Auth. Далее мне понадобилось расширить модель User. Это можно, но в результате в системе появляются два модуля с моделями User. Причём нужный модуль не получает приоритета. Как быть?

Да. На крайний случай можно либо вынести мою модель в приложение, но тогда теряю в переносимости. И ещё можно удалить(переименовать) модель из модуля Auth, но это тоже не айс.

Как быть????

Блииин.... целый вечер бился, почему авторизация неправильно работает. Оказалось чуток старая версия Kohana .... Обнаружил сравнением каталогов установки. Теперь всё работает, но времени не вернёшь

Есть некий роутинг в Kо3, который некие "исходные" URI превращает в желаемые. Теперь есть желание делать на них ссылки. Причём желание делать это штатными средствами.

Похоже в Ko3 нет возможности по исходному URI найти желаемый при условии, что кроме исходного URI больше ничего не известно.
А вроде бы всё однозначно преобразовывается ...

Открываю документацию на фреймворк kohana. Сразу в глаза бросается заголовок: «Эта документация — г*вно!» о_О Переключаюсь на английский и вижу: «Contribute to the Documentation» Однако… kohanaframework.org

Когда я в своём блоге писал посты по Kohana, видимо я был в сильной запаре (угаре?). Иначе трудно объяснить такое количество ошибок и опечаток, которые находят мои читатели.

Прикрутить auth удалось только с помощью грязного хака.

В файле modules/auth/classes/kohana/auth/orm.php в функции _login заменил одну строчку на другую

// if ($user->has('roles', ORM::factory('role', array('name' => 'login'))) AND $user->password === $password)
if ($user->password === $password)

Пока работает. Позже поглядим

Что ещё мне не нравится в Kohana, так это то, что по соглашению таблицы нужно называть на правильном English да ещё plural. Где plural — это не просто добавление суффикса -s, а как положено.

За анализ plural/singular там отвечает целый хелпер inflector