Yonderboi
За цей час було багато годних пісень, але досить вже Мобі виклатади. Сьогодні в гостях студії Yonderboi з композицією Riders on the Storm (ах да, да-да, я знаю що це ремікс), яка в альбомі Shallow and Profound. Слухаєм.
![Yonderboi [Shallow and Profound] Yonderboi [Shallow and Profound]](http://xobb.citylance.biz/assets/upload/image/yonderboi_shallow_and_profound.jpg)
Бліді коні
Відео з альбому
Moby
Доволі нестандартний пост в категорії.
Новий альбом мобі ось-ось вийде, точну дату можна нагуглити, а вот інтерв’ю з ним вразило формою. Зміст доволі стандартний. Насолоджуємся.
Dog interviews Little Idiot on bug planet from Moby on Vimeo.
Серія записок безумного архітектора #2
Завдання в нас доволі тривіальне: потрібно зробити вивід сторінок типу {host}/page/name з довільною ієрархією (тобто в нас може бути декілька слешів, які зазвичай сприймаються як шлях до сторінки) швидким пошуком, щоб генерація сторінки займала як-омога менше часу і щоб це було просто і очевидно. В інтернеті куча інформації на цю тему, готових рішень не менше. Проте я придумав свого велосипеда, про якого піде мова далі.
Вирішувати його будемо простеньким хуком. Приступимо зразу до коду, пояснення будуть потім.
<?php
// Вішаємось на післяроутингу
// це викличе нашу функцію коли роутинг закінчиться
Event::add('system.post_routing' ,'call_fallback_page');
function call_fallback_page()
{
// визначаємо чи наразі визначений контроллер
if (Router::$controller === NULL) {
// контроллера нема, якраз наш випадок!
Router::$controller = 'page';
// встановлюємо наш контроллер ^ і метод, якмй показуватиме статичну сторінку
Router::$method = 'show';
// знаходимо шлях до контроллера
Router::$controller_path = Kohana::find_file('controllers', 'page');
}
}
// перший профіт!
Тепер діло в контроллері. Ми повинні перевірити, чи така сторінка існує, а якщо ні показати 404-ту сторіночку.
<?php
// Сторінки розмічені маркдауном
require Kohana::find_file('vendor', 'Markdown');
// Власне контроллер. Я використовую Template_Controller свого приготування,
// не забудьте поміняти свого парента
class Page_Controller extends Website_Controller {
public function show()
{
$page = ORM::factory('page', Router::$current_uri;);
// orm модель має перевизначений метод unique_id()
if ($page->id > 0) {
//сторінка знайдена!
//змінні как бе намєкають нам на правильну SEO оптимізацію
$this->template->keywords = $page->keywords;
$this->template->description = $page->description;
$this->template->content = new View('page');
$this->template->content->title = $page->title;
$this->template->content->text = Markdown($page->body);
$this->template->content->modified = $page->modified;
} else {
// ніц не знайшли, показуємо 404-ту помилку.
Kohana::instance()->show_404();
}
}
}
Я думаю модель створити і відповідні в’юшки — не проблема. На крайняк їх можна подивитись в репозиторії цього сайту.
З цього починається люба CMS.
Доставляю нову музику
Нова композиція для вашої уваги, з альбому Dirty Martini 2005 року.
![Dirty Martini [2005] Dirty Martini [2005]](http://xobb.citylance.biz/assets/upload/image/va-dirty_martini-2005-front.jpg)
Бакалавра!!!11111
