Вниз ↓

Yonderboi

За цей час було багато годних пісень, але досить вже Мобі виклатади. Сьогодні в гостях студії Yonderboi з композицією Riders on the Storm (ах да, да-да, я знаю що це ремікс), яка в альбомі Shallow and Profound. Слухаєм.

Yonderboi [Shallow and Profound]

Бліді коні

Відео з альбому

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]

Бакалавра!!!11111

Бакаларва