Создание модуля GameAP: различия между версиями

Материал из HLDM Wiki
Перейти к навигации Перейти к поиску
Строка 2: Строка 2:
  
 
1. Создаем директорию в application/modules под любым названием, например '''my_module'''.
 
1. Создаем директорию в application/modules под любым названием, например '''my_module'''.
 +
 
2. Создаем каталог controllers в директории с нашим модулем. В директории может находится 3 каталога: controllers, models, views.  
 
2. Создаем каталог controllers в директории с нашим модулем. В директории может находится 3 каталога: controllers, models, views.  
 +
 
3. В директории создаем файл с названием модуля - '''my_module.php'''.
 
3. В директории создаем файл с названием модуля - '''my_module.php'''.
  

Версия 10:51, 8 сентября 2013

Модуль Hello World

1. Создаем директорию в application/modules под любым названием, например my_module.

2. Создаем каталог controllers в директории с нашим модулем. В директории может находится 3 каталога: controllers, models, views.

3. В директории создаем файл с названием модуля - my_module.php.

4. Вставляем в содержимое файла

<?php 
if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class My_module extends MX_Controller {

	public function index()
	{
		echo 'Hello World!';
	}
}

где My_module - имя файла, первая буква должна быть заглавной, название самого файла не должно начинаться с заглавной буквы.

Теперь, если перейти по адресу example.com/my_module/ то админпанель отобразит нам надпись "Hello World"

Модуль с авторизацией

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

<?php 
if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class My_module extends MX_Controller {

    public function __construct()
    {
        parent::__construct();

        $this->load->model('users');                  // Загрузка модели управления пользователями
        $check = $this->users->check_user();    // Проверка, авторизован ли пользователь
        
        if(!$check){
            redirect('auth');                      // Перенаправление для авторизации
        }
    }

    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 extends MX_Controller {

    public function __construct()
    {
        parent::__construct();

        $this->load->model('users');                  // Загрузка модели управления пользователями
        $check = $this->users->check_user();    // Проверка, авторизован ли пользователь
        
        if(!$check){
            redirect('auth');                      // Перенаправление для авторизации
        }
    }

    public function index()
    {
        /* Главная страница */
    }

    public function server_info($id = FALSE)
    {
        if(!$id){
            /* ID сервера не указан */
            exit;
        }

        /* Информация о сервере */
    }

}