выступать с разными взглядами в коде воспламенителя - PullRequest
2 голосов
/ 30 июня 2010

Я довольно новичок в коде воспламенителя.Есть ли лучшая практика для служения другому взгляду для другого контекста.Например, я хотел бы обслуживать определенные страницы для мобильных пользовательских агентов с одинаковыми контроллерами.

1 Ответ

9 голосов
/ 30 июня 2010

Для этого нет строгого правила. Вы можете структурировать ваши файлы представления так, как вам нравится, и вызвать $this->load->view(), чтобы загрузить разные файлы представления для разных результатов в вашем контроллере. Исходя из моего опыта, CodeIgniter очень открыто адаптируется к тому, как вы организуете файлы вашего приложения.


В вашем примере, возможно, я бы разделил мою папку system/application/views на две подпапки: main для настольных браузеров и mobile для мобильных браузеров:

system/
  application/
    views/
      main/
        index.php
        some_page.php
        ...
      mobile/
        index.php
        some_page.php
        ...

В ранней части вашего контроллера, скажем, конструктора, вы можете решить, какой пользовательский агент запрашивает его, и затем выбрать main или mobile на основе этого, а затем показать свои представления соответственно действиям вашего контроллера. *

Несколько быстрых фрагментов кода, чтобы дать вам лучшее представление, поскольку вы новичок ...

// Place this just below the controller class definition
var $view_type = 'main';

// Controller constructor
function MyController()
{
    parent::Controller();

    if ($this->agent->is_mobile())
    {
        $this->view_type = 'mobile';
    }
    else
    {
        $this->view_type = 'main';
    }
}

// Example action
function some_page()
{
    // ...

    // This comes from the 'var $view_type;' line above
    $this->load->view($this->view_type . '/some_page');
}

И некоторые полезные ссылки для вас:

Надеюсь, мое объяснение поможет, и надеюсь, вам понравится CodeIgniter:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...