В Kohana я обычно использую класс Template_Controller. Очень удобно — layout один, изменяешь только контент. Но как быть если на одной какой-то странице нам понадобилось подключить CSS- или JS-файл?! C js- файлом еще ладно, его можно подключить посредине страницы (но это как-то некрасиво), а как же css?! — это невалидно. Подключать на весь layout тоже неохота. Хочу подключать не в контроллере, а в шаблоне к примеру так:<?php head::addCSS('main')?>
Иногда нужно записывать файлы в одну папку, и нужно предусмотреть, что файлы могут иметь одинаковое имя, т.е. можно перезаписать старый файл. Существует много методик которыми пользуются веб-мастера для уменьшения вероятности коллизий (совпадений) — именовать файл основываясь на уникальной информации (user_id например), md5 времени и так далее. Эти же методики находят применение в большинстве фреймверков. В подавляющем большинстве случаев этих методик достаточно, но не всегда. Мне понадобилось придумать метод создания уникального имени файла, да так чтобы сохранять оригинальное имя файла и лишь в случае совпадения его изменить. Можно конечно перед созданием файла проверять существование «тески», — но как же быть в случае большого количества потоков? Решение есть
Данный фрагмент кода нашел где-то на просторах рунета и пишу скорее для себя чем для читателей. Предназначена функция для перевода русского текста в транслит. А вдруг кому-то еще пригодится:
Советую этот сервис для хранения файлов. Бесплатно дается 2 Gb, но бесплатно можно увеличить этот объем до 5 Gb (каждый кто зарегется по вашей ссылке добавит вам 300 Mb). Можно выложить свои файлы, фотографии. При желании можно выложить файл в публичный доступ, причем с прямой ссылкой. Если зарегитесь по моей реферальной ссылке, то получите 2.3 Gb. Клиент под linux работает отлично. Обзор можно почитать тут http://habrahabr.ru/blogs/web_2_0/57164/
Долго же пришлось возится мне с настройкой FTP-сервера. Для админа — это конечно рутинная работа, но я то разработчик сайтов. Может кому-то пригодится мое решение. В сети мануалов полно, но вот законченного я так и не видел.aptitude install vsftpd
<?php
class widget
{
public static function example()
{
return View::factory('_example',array('var'=>'Привет мир'));
}
}
?>