Создание модуля GameAP: различия между версиями
Nikita (обсуждение | вклад) (→Модуль с авторизацией) |
Nikita (обсуждение | вклад) |
||
Строка 46: | Строка 46: | ||
{ | { | ||
echo 'Hello World!'; // Если пользователь авторизован, то он увидит "Hello World!" | echo 'Hello World!'; // Если пользователь авторизован, то он увидит "Hello World!" | ||
+ | } | ||
+ | |||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | |||
+ | == Несколько страниц == | ||
+ | |||
+ | Каждая страница модуля (второй сегмент URL) определяется функцией. А третий и последующие сегменты передаются как параметры функции. | ||
+ | |||
+ | '''example.com/<font color="green">servers</font>/<font color="#FF6600">server_info</font>/<font color="#3300CC">15</font>''' | ||
+ | |||
+ | <font color="green">servers</font> - название нашего модуля <br /> | ||
+ | <font color="#FF6600">server_info</font> - имя функции<br /> | ||
+ | <font color="#3300CC">15</font> - параметр функции<br /> | ||
+ | |||
+ | Код: | ||
+ | <pre> | ||
+ | <?php | ||
+ | if ( ! defined('BASEPATH')) exit('No direct script access allowed'); | ||
+ | class Servers CI_Controller { | ||
+ | |||
+ | public function __construct() | ||
+ | { | ||
+ | parent::__construct(); | ||
+ | |||
+ | $this->load->model('users'); // Загрузка модели управления пользователями | ||
+ | $check = $this->users->check_user(); // Проверка, авторизован ли пользователь | ||
+ | |||
+ | if(!$check){ | ||
+ | header("Location: /"); // Перенаправление для авторизации | ||
+ | exit; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | public function index() | ||
+ | { | ||
+ | /* Главная страница */ | ||
+ | } | ||
+ | |||
+ | public function server_info($id = FALSE) | ||
+ | { | ||
+ | if(!$id){ | ||
+ | /* ID сервера не указан */ | ||
+ | exit; | ||
+ | } | ||
+ | |||
+ | /* Информация о сервере */ | ||
} | } | ||
} | } | ||
</pre> | </pre> |
Версия 13:58, 1 июня 2013
Модуль Hello World
1. Создаем файл в каталоге applications/controllers
2. Вставляем в содержимое файла
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class File_name CI_Controller { public function index() { echo 'Hello World!'; } }
где File_name - имя файла, первая буква должна быть заглавной, название самого файла не должно начинаться с заглавной буквы.
Теперь, если перейти по адресу example.com/file_name/ то админпанель отобразит нам надпись "Hello World"
Модуль с авторизацией
Для того, чтобы показать инфорацию только пользователям, которые авторизовались, нужно добавить конструктор, функцию которая будет автоматически загружаться при запросе любой страницы модуля.
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class File_name CI_Controller { public function __construct() { parent::__construct(); $this->load->model('users'); // Загрузка модели управления пользователями $check = $this->users->check_user(); // Проверка, авторизован ли пользователь if(!$check){ header("Location: /"); // Перенаправление для авторизации exit; } } public function index() { echo 'Hello World!'; // Если пользователь авторизован, то он увидит "Hello World!" } }
Несколько страниц
Каждая страница модуля (второй сегмент URL) определяется функцией. А третий и последующие сегменты передаются как параметры функции.
example.com/servers/server_info/15
servers - название нашего модуля
server_info - имя функции
15 - параметр функции
Код:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class Servers CI_Controller { public function __construct() { parent::__construct(); $this->load->model('users'); // Загрузка модели управления пользователями $check = $this->users->check_user(); // Проверка, авторизован ли пользователь if(!$check){ header("Location: /"); // Перенаправление для авторизации exit; } } public function index() { /* Главная страница */ } public function server_info($id = FALSE) { if(!$id){ /* ID сервера не указан */ exit; } /* Информация о сервере */ } }