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

Все о фреймворке Kohana. Обсуждение уроков, документации.
Текущее время: 26 окт 2020, 09:53

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




Начать новую тему Ответить на тему  [ Сообщений: 56 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.
Автор Сообщение
 Заголовок сообщения: Re: Уроки по созданию своей CMS
СообщениеДобавлено: 13 авг 2013, 18:34 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 02 апр 2013, 16:26
Сообщения: 474
Откуда: Сергиев Посад
Sergey писал(а):
Прочёл по диогонали, но так и не встретил зачем кстати лого делать виджетом?

это просто для примера, чаще всего такие вещи сниппетами конечно делаются, но может быть например виджет получающий данные о лого из базы или создающий его "на лету", тогда одного только View уже недостаточно.

_________________
Майкл Джордан играет в баскетбол. Чарльз Мэнсон убивает людей. Я пишу код. У каждого свой талант.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уроки по созданию своей CMS
СообщениеДобавлено: 13 авг 2013, 20:49 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 июл 2012, 18:00
Сообщения: 701
Откуда: Murom, Russia
зачем логотипу вообще нужно обрабатываться? почему это не должно быть статикой, которая к php не имеет никакого отношения и кешируются один раз и до - следующего ребрендеринга компании?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уроки по созданию своей CMS
СообщениеДобавлено: 13 авг 2013, 23:59 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 02 апр 2013, 16:26
Сообщения: 474
Откуда: Сергиев Посад
да ладно тебе, не нуди) лень перерисовывать, будет время подкорректирую) мне еще по СMS хэлперу поясниловку писать, уж больно много на нем завязано

_________________
Майкл Джордан играет в баскетбол. Чарльз Мэнсон убивает людей. Я пишу код. У каждого свой талант.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уроки по созданию своей CMS
СообщениеДобавлено: 14 авг 2013, 18:32 
Не в сети
Администратор
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уроки по созданию своей CMS
СообщениеДобавлено: 14 авг 2013, 21:32 
Не в сети
Бывалый

Зарегистрирован: 14 июн 2013, 17:19
Сообщения: 82
Спасибо!

Расскажи подробнее про Controller_Ajax.

В связи с большим количеством JavaScript скриптов скажите, выносите ли вы их в отдельные файлы вида? А то у меня в ряде случаев возникли проблемы с кавычками.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уроки по созданию своей CMS
СообщениеДобавлено: 15 авг 2013, 21:24 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 02 апр 2013, 16:26
Сообщения: 474
Откуда: Сергиев Посад
блин и никто не написал что сами файлы не выложил =\ завтра подчищу и выложу остальные классы, а пока код AJAX контроллера:
Код:
abstract class Controller_CMS_Ajax extends Controller_Basic
{
   /**
    * @var  boolean  View auto render. Not used in AJAX
    */
   protected $auto_render = FALSE;

   /**
    * @var  mixed  Response data type(text, html, json, xml). If empty not convert data
    */
   protected $data_type = 'json';

   /**
    * Automatically executed before the controller action. Can be used to set
    * class properties, do authorization checks, and execute other custom code.
    *
    * @return  void
    */
   public function before()
   {
      // Check request type
      if ( ! $this->request->is_ajax())
      {
         throw HTTP_Exception::factory(501, 'AJAX request not detected');
         // throw new Request_Exception('AJAX request not detected', 501);
      }
      
      // Set response data type
      $this->data_type = $this->param('data_type', $this->data_type);
      if ( ! empty($this->data_type) AND ! in_array($this->data_type, array('text', 'html', 'json', 'xml')))
      {
         throw HTTP_Exception::factory(500, 'Wrong response data type');
         // throw new Request_Exception('Wrong response data type', 500);
      }

      parent::before();
   }

   /**
    * Automatically executed after the controller action. Can be used to apply
    * transformation to the response, add extra output, and execute other custom code.
    *
    * @return  void
    */
   public function after()
   {
      // Convert response data
      if ( ! empty($this->data_type))
      {
         $this->view = CMS::convert($this->view, $this->data_type);
      }
      
      // Add special header fields for AJAX requests
      $this->headers = array_merge(
         $this->headers,
         array(
            'Content-Type'  => 'text/'.$this->data_type,
            'Pragma'        => 'no-cache',
            'Cache-Control' => 'no-store, no-cache, must-revalidate',
         )
      );
      
      parent::after();
   }

} // End Controller_Ajax


Основной момент в нем это авто конвертация результата с помощью метода CMS::convert (первый параметр - исходные данные, второй - тип данных). Его код выложу позднее вместе с описанием всего хэлпера CMS, вместо этого метода можно использовать модуль dataflow: https://github.com/morgan/kohana-dataflow . Результат работы action'а (response body)сохраняется в $this->view по аналогии с остальными контроллерами. Дополнительные заголовки заголовки служат для указания типа данных и отключения кеширования AJAX запросов.

Если что-то не понятно, пишите - сделаю примеры.

_________________
Майкл Джордан играет в баскетбол. Чарльз Мэнсон убивает людей. Я пишу код. У каждого свой талант.


Последний раз редактировалось WinterSilence 18 авг 2013, 14:40, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уроки по созданию своей CMS
СообщениеДобавлено: 17 авг 2013, 18:38 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 05 июн 2012, 03:08
Сообщения: 213
Не совсем понял:
Общие для фронта и админки настройки хранятся в modules/common/config?
Если несколько сайтов используют вынесенный modules за www как быть?

_________________
http://de-en.info (работает на Kohana 3.3)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уроки по созданию своей CMS
СообщениеДобавлено: 17 авг 2013, 21:28 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 02 апр 2013, 16:26
Сообщения: 474
Откуда: Сергиев Посад
AmberLEX> Хранить актуальные настройки в приложениях, я такой вариант честно говоря не рассматривал, обычно один клиент - один сайт\хостинг. Eщё не стоит забывать, что мы пытаемся создать именно CMS, а они редко рассчитаны на несколько сайтов.

_________________
Майкл Джордан играет в баскетбол. Чарльз Мэнсон убивает людей. Я пишу код. У каждого свой талант.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уроки по созданию своей CMS
СообщениеДобавлено: 17 авг 2013, 22:07 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 05 июн 2012, 03:08
Сообщения: 213
Жаль. Ну да ладно.
Подход хороший убрать папку application и создать для каждого приложения свои папки изменяня $application, удобно.
Я так же разделял, но в application/controller папки контроллеров:
Код:
Ajax
Backend
Frontend
Mobile
Widgets
Контроллеры в этих папках наследуют нужные из нижеприведенного списка
Код:
App.php
    Security.php
        Ajax.php
        Mobile.php
        Template.php
            Frontend.php
                Error.php
            Backend.php
        Widgets.php
И в config соответствующие файлы настроек
Код:
app.php  - общие настройки
frontend.php - массивы путей к css, js
backend.php - массивы путей к css, js
mobile.php - массивы путей к css, js

_________________
http://de-en.info (работает на Kohana 3.3)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уроки по созданию своей CMS
СообщениеДобавлено: 17 авг 2013, 22:13 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 02 апр 2013, 16:26
Сообщения: 474
Откуда: Сергиев Посад
не понял чем этот вариант отличается от моего :oops:

_________________
Майкл Джордан играет в баскетбол. Чарльз Мэнсон убивает людей. Я пишу код. У каждого свой талант.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 56 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.

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


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

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


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

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