ФорумПрограммированиеPHP для идиотов → Вид вложений вид фреймворк(codeigniter)

Вид вложений вид фреймворк(codeigniter)

  • ukroficer

    Сообщения: 66 Репутация: N Группа: Кто попало

    Spritz Авг. 22, 2010, 12:17 п.п.

    Здравствуйте господа пыхтящие!Делаю свой первый сайт на фреймворке codeigniter и пришла в голову такая идея которою я релизовать не могу..Я захотел что бы как во всех нормальных шаблонизаторах в виде можно было подключать другой вид.Ну затея я думаю понятна.И что же я написал функцию вот такого типа

    function _inc_($inc)
    {
    if (isset($inc))
    {
    include $inc;
    }

    Первая проблема с которой я столкнулся это путя к подключаемому файлу но я решил ее банально указав относительный путь от хелпера где лежит моя функция вот так
    include   "system/application/views/".$inc;

    Вроде как проблема решилась я теперь смог передавать переменые и смотря какую я передал такой файл и подключится но….возникла следующая проблема если я передаю переменую в подключаемый файл(тот что инклюдится) и потом в нем ее вывожу то не чего не происходит кроме ошибки….Помогите с моей затеей или же лучше шаблонизатор к фреймворку прикрутить ?!
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz Авг. 22, 2010, 12:42 п.п., спустя 24 минуты 45 секунд

    а что там, нет такой хрени типа рендера произовльного экшна или запроса экшна любого контроллера?

    да и вообще такое должно реализовываться написанием компонента или хелпера, по идее
  • krasun

    Сообщения: 1370 Репутация: N Группа: Джедаи

    Spritz Авг. 22, 2010, 12:43 п.п., спустя 1 минуту 17 секунд

    Честно, не шарю в этом фреймворке - но тут http://www.phpandstuff.com/articles/codeigniter-doctrine-scratch-day-9-templates-data-hydrators

    похоже, что
     
    <?php $this->load->view('user_controls'); ?>


    подключается вид.
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz Авг. 22, 2010, 2:52 п.п., спустя 2 часа 8 минут 10 секунд

    Я так понял тут хочется ТСу виджетов? Разве у CI нет виджетов?
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • krasun

    Сообщения: 1370 Репутация: N Группа: Джедаи

    Spritz Авг. 22, 2010, 2:58 п.п., спустя 6 минут 4 секунды

    adw0rd, не ему надо именно скрипт вида - шаблон
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz Авг. 22, 2010, 3:21 п.п., спустя 23 минуты 25 секунд

    типа элементов в кейке
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz Авг. 22, 2010, 3:29 п.п., спустя 8 минут 11 секунд

    ну блин, всё там есть

    Loading multiple views

    CodeIgniter will intelligently handle multiple calls to $this->load->view from within a controller. If more then one call happens they will be appended together. For example, you may wish to have a header view, a menu view, a content view, and a footer view. That might look something like this:

    <?php

    class Page extends Controller {

      function index()
      {
         $data['page_title'] = 'Your title';
         $this->load->view('header');
         $this->load->view('menu');
         $this->load->view('content', $data);
         $this->load->view('footer');
      }

    }
    ?>

    http://codeigniter.com/user_guide/general/views.html
    Спустя 39 сек.
    подключается просто из контроллера
  • krasun

    Сообщения: 1370 Репутация: N Группа: Джедаи

    Spritz Авг. 22, 2010, 3:31 п.п., спустя 2 минуты 1 секунду


    ну блин, всё там есть

    Loading multiple views

    CodeIgniter will intelligently handle multiple calls to $this->load->view from within a controller. If more then one call happens they will be appended together. For example, you may wish to have a header view, a menu view, a content view, and a footer view. That might look something like this:

    <?php

    class Page extends Controller {

      function index()
      {
         $data['page_title'] = 'Your title';
         $this->load->view('header');
         $this->load->view('menu');
         $this->load->view('content', $data);
         $this->load->view('footer');
      }

    }
    ?>

    http://codeigniter.com/user_guide/general/views.html
    Спустя 39 сек.
    подключается просто из контроллера




    Честно, не шарю в этом фреймворке - но тут http://www.phpandstuff.com/articles/codeigniter-doctrine-scratch-day-9-templates-data-hydrators

    похоже, что
     
    <?php $this->load->view('user_controls'); ?>


    подключается вид.


    Спустя 11 сек.
    есть
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz Авг. 22, 2010, 3:35 п.п., спустя 3 минуты 27 секунд

    всё-таки мне кажется, что ТС хочет, чтобы именно из шаблона можно было инклюдить другие блоки, типа

    $this->element('block');


    ну это по сути, как сказал эдво, и есть виджеты
    Спустя 47 сек.
    но такого я там не нашел
  • krasun

    Сообщения: 1370 Репутация: N Группа: Джедаи

    Spritz Авг. 22, 2010, 3:37 п.п., спустя 2 минуты 31 секунду

    блоки - да виджеты, но он пишет виды.

    как во всех нормальных шаблонизаторах в виде можно было подключать другой вид

    поэтому я думаю $this->load->view('script_name');
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz Авг. 22, 2010, 3:39 п.п., спустя 2 минуты 7 секунд

    $this->load->view('script_name');

    а это будет именно в шаблоне работать?
    Спустя 31 сек.
    а не в контроллере
  • krasun

    Сообщения: 1370 Репутация: N Группа: Джедаи

    Spritz Авг. 22, 2010, 3:42 п.п., спустя 2 минуты 19 секунд

    и там и там как я понял
  • Troy

    Сообщения: 2532 Репутация: N Группа: Джедаи

    Spritz Авг. 22, 2010, 3:48 п.п., спустя 5 минут 50 секунд

    В Yii в шаблоне так же, как и в контроллере можно $this->render() вызывать
  • krasun

    Сообщения: 1370 Репутация: N Группа: Джедаи

    Spritz Авг. 22, 2010, 3:50 п.п., спустя 2 минуты 12 секунд

    Troy, такая хуйня практикуется во всех фреймворках
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz Авг. 22, 2010, 4:04 п.п., спустя 14 минут 1 секунду

    в кейке из вида render недоступен, но зато есть requestAction, через который можно получить либо данные, которые сетаются в вид в указанном экшне любого контроллера, либо полностью отрендеренный вид
    Спустя 63 сек.
    я говорю, надо подраздел какой-нибудь про фреймворки)))

Пожалуйста, авторизуйтесь, чтобы написать комментарий!