CI взломать маршруты - PullRequest
0 голосов
/ 17 марта 2012

Итак, у меня есть некоторые проблемы.

Я просто хочу создать какой-нибудь сайт, где посетитель сможет взаимодействовать с моим сайтом, если он зарегистрирован.Допустим, что они предоставили свое имя пользователя, адрес электронной почты, пароль, бла..блах..блах ... И потом, после того, как они предоставили свой бла..блах..блах .. он будет автоматически (если их данные будут переданы) моемусайт.После того, как они вошли на мой сайт, они должны снова предоставить больше данных, например, загрузить свое изображение профиля, как они контролируют свою конфиденциальность на моем сайте, например, пошаговую регистрацию.

Я не хочу, чтобы они взаимодействовали смой сайт, пока они не завершат свою регистрацию.Как сделать так, чтобы каждая страница на моем сайте выглядела как страница регистрации, пока они не закончили свою регистрацию.Это не так, как будто я даю такую ​​функцию правильно.

if(is_login()){
    if(is_registration_complete()){
        //you're free to go
    } else {
       // complete your registration first
    }
} else {
    //you're not logged in
}

В каждом моем контроллере, если вы понимаете, что я имею в виду:)

Как мне создать эту функцию глобально?Если их регистрация не завершена, они будут отправляться к контроллеру регистрации на каждом маршруте.Если они завершат регистрацию, они пойдут на, да, вы знаете маршруты по умолчанию.

Мне очень жаль, если мой английский плохой, английский не мой родной, извините за грамматические ошибки :)

Ответы [ 3 ]

0 голосов
/ 17 марта 2012

Один из способов сделать это - создать пользовательский контроллер путем расширения ядра CI_Controller .Тогда вы можете сделать так, чтобы ваши контроллеры страниц расширялись от ваших пользовательских контроллеров.Расширяя, вы наследуете функции родительского элемента, а также запускаете родительский конструктор (или запускаете его, если переопределяете его), делая их «глобально доступными» для любого, кто расширяет его.

//extend the core controller
class MY_Controller extends CI_Controller {

    //override to provide additional functionality
    public function __construct(){

        //run the core controller
        parent::__construct();

        //then do your login and registration checks here
        //you can put code here, call another function or load a helper class
        //or better, redirect them to your registration page
    }
}

//your page's controller extending from your custom controller
class Page extends MY_Controller {

    //not overriding the constructor will execute the parent constructor
    //every page that extends your extended controller will inherit it's functions
    //and execute it's constructor

}
0 голосов
/ 17 марта 2012

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

0 голосов
/ 17 марта 2012

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

class Blog extends CI_Controller {

       public function __construct()
       {
            parent::__construct();
            // Load the lib here or Autoload
            $this->load->library('mylogincheckhelper');
            $this->mylogincheckhelper->is_complete();
       }
}

И затем вы делаете все проверки и маршрутизацию в Lib.

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