Русскоязычный форум, посвященный фреймворку Kohana

Все о фреймворке Kohana. Обсуждение уроков, документации.
Текущее время: 28 мар 2024, 15:54

Часовой пояс: UTC + 4 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
СообщениеДобавлено: 30 авг 2012, 15:24 
Не в сети
Зеленый

Зарегистрирован: 30 авг 2012, 15:05
Сообщения: 3
Всем здравствуйте.
На днях пришло в голову создать админ панель в модулях. сейчас расскажу по порядку=)
В каталоге Модули создал каталог "Admin" данный каталог содержит под папки: classes, config, media, view и init.php
classes соответственно содержит каталоги "controller" ,"model".
config пока пустой
ну и вьюшки в "view"
в media я планировал поместить все файлы .css .js .img
но при использовании хелпера а именно HTML::style() функции он не может добраться к файлам расположенным в папке media.
есть подозрение что проблема в роутах. Рассмотрел 2 кмс на Кохана (Gleez и Kohanut) но там весь сайт в модуле=) что я не понял немного
если кто нибудь знает решение как подключить статичные файлы находящиеся в модуле ко вьюшкам модуля
заранее благодарен, даже за внимание.

(в коханут в файле init.php прописывается роут media который ссылается на не существующего действия в контроллере в контроллере вылавливается это и отключается авто-рендер
)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 авг 2012, 16:19 
Не в сети
Бывалый

Зарегистрирован: 29 авг 2012, 16:09
Сообщения: 46
Плохая идея грузить статику (css, js, img и т.д.) через апач.

Вот например в моей cms, все файлы модуля расположены в папке модуля. И чтобы подключить модуль, достаточно просто его установить как обычный модуль в папку modules.

Вся статика отдается nginx'ом в обход бэкэнда(без участия коханы).

В массив прописаны пути до css(js), /modules/module_name/media/css/file.css
Ну а потом через хелпер HTML::style()

Или я не правильно понял вопрос.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 авг 2012, 19:58 
Не в сети
Зеленый

Зарегистрирован: 30 авг 2012, 15:05
Сообщения: 3
evgentus спасибо за ответ!
но думаю не правильно привязывать кмс к отдельному типу сервера?!.
я так же вбивал пить к слитилям /modules/module_name/media/css/file.css не подключаются попробовал в корневой каталог скинуть kohana/media/css/file.css работает
но вы правильно поняли вопрос.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 авг 2012, 22:39 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 июл 2012, 18:00
Сообщения: 701
Откуда: Murom, Russia
У меня всё работает. админку делал смотря на git://github.com/vimofthevine/kohana-admin.git
Свои css/js/img модуль берёт со своей папки


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 авг 2012, 23:12 
Не в сети
Зеленый

Зарегистрирован: 30 авг 2012, 15:05
Сообщения: 3
исходный код в кронтроллере media аналогичен одноименному файлу в gleez, видимо я не до конца разобрался!
спасибо Вам Sergey.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 31 авг 2012, 15:05 
Не в сети
Бывалый

Зарегистрирован: 29 авг 2012, 16:09
Сообщения: 46
Alex писал(а):
evgentus спасибо за ответ!
но думаю не правильно привязывать кмс к отдельному типу сервера?!.


Вы немного путаете... Цмс не привязана к отдельной конфигурации сервера, я просто описал свою конфигурацию.

Я говорил про то, что не нужно привлекать кохану к раздаче статики. Это не правильно!

Статика должна отдаваться сервером, а не фреймворком.

При отдачи статики фреймворком, он подгружает 100 +- 20 файлов, в худшем, 30-50 в лучшем случае, ищет его в папке, отдает его нам, и жрет проц, память.
А когда отдает сам веб-сервер, он просто берет файл из папки и отправляет его нам.

https://github.com/vimofthevine/kohana- ... /media.php по моему мнению, это как раз пример "Как не надо делать!"


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 31 авг 2012, 15:19 
Не в сети
Бывалый

Зарегистрирован: 29 авг 2012, 16:09
Сообщения: 46
Alex писал(а):
evgentus спасибо за ответ!
я так же вбивал пить к слитилям /modules/module_name/media/css/file.css не подключаются попробовал в корневой каталог скинуть kohana/media/css/file.css работает


А не работало у Вас потому, что в файле .htaccess есть строчка:

Код:
RewriteRule ^(?:application|modules|system)\b.* index.php/$0 [L]


Если убрать modules, то все заработает! Но опять же могут возникнуть проблемы с безопасностью.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 01 сен 2012, 01:29 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 июл 2012, 18:00
Сообщения: 701
Откуда: Murom, Russia
evgentus писал(а):
https://github.com/vimofthevine/kohana-admin/blob/master/classes/controller/admin/media.php по моему мнению, это как раз пример "Как не надо делать!"


Вы не понимаете что тут сделано )
Сервер отдаёт статитику в обход коханы


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 03 сен 2012, 08:56 
Не в сети
Бывалый

Зарегистрирован: 29 авг 2012, 16:09
Сообщения: 46
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 не нужен!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 04 сен 2012, 21:28 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 июл 2012, 18:00
Сообщения: 701
Откуда: Murom, Russia
признал ошибку


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC + 4 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Все о фреймворке Kohana  | 
Powered by phpBB® Forum Software © phpBB Group