Sergey писал(а):
evgentus писал(а):
https://github.com/vimofthevine/kohana-admin/blob/master/classes/controller/admin/media.php по моему мнению, это как раз пример "Как не надо делать!"
Вы не понимаете что тут сделано )
Сервер отдаёт статитику в обход коханы
/admin/media/file_name
Код:
<?php defined('SYSPATH') OR die('No direct script access.');
/**
* Admin media controller
*
* @package Admin
* @category Controller
* @author Kyle Treubig
* @copyright (c) 2010 Kyle Treubig
* @license MIT
*/
class Controller_Admin_Media extends Controller {
public function action_file() {
$request = Request::instance();
$file = $request->param('file');
$ext = pathinfo($file, PATHINFO_EXTENSION);
$file = substr($file, 0, -(strlen($ext) + 1));
if ($file = Kohana::find_file('media', $file, $ext))
{
$request->response = file_get_contents($file);
}
else
{
Kohana::$log->add(Kohana::ERROR, 'Admin media controller error while loading file, '.$file);
$request->status = 404;
}
$request->headers['Content-Type'] = File::mime_by_ext($ext);
}
}
И в представлениях
Код:
Route::get('admin/media')->uri(array('file'=>'ThePixelDeveloper_Admin-Template/css/960.css'))
Так там получают ссылку /admin/media/ThePixelDeveloper_Admin-Template/css/960.css
Что в свою очередь просит кохану поискать в папках "media" файл "ThePixelDeveloper_Admin-Template/css/960.css" и отдать его(либо ошибку 404, если не нашли).
PS. Если пропустил то место где отдается без участия Kohana - подскажите!
Если конечно файлы не будут лежать в корне, по адресу "/admin/media/ThePixelDeveloper_Admin-Template/css/960.css" , но тогда контроллер Controller_Admin_Media не нужен!