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

Материал из HLDM Wiki
Перейти к навигации Перейти к поиску
(Новая страница: «== Модуль Hello World == 1. Создаем файл в каталоге '''applications/controllers''' 2. Вставляем в содержимое ф…»)
 
 
(не показано 16 промежуточных версий этого же участника)
Строка 1: Строка 1:
 +
[[Категория:АдминПанель]]
 +
[[Категория:Документация_GameAP]]
 +
[[Категория:Документация для разработчиков]]
 +
 +
[[Документация для разработчиков GameAP|Документация для разработчиков]]
 +
 
== Модуль Hello World ==
 
== Модуль Hello World ==
  
1. Создаем файл в каталоге '''applications/controllers'''
+
1. Создаем директорию в application/modules под любым названием, например '''my_module'''.
  
2. Вставляем в содержимое файла
+
2. Создаем каталог controllers в директории с нашим модулем. В директории может находится 3 каталога: controllers, models, views.
<pre>
 
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
 
  
class File_name CI_Controller {
+
3. В директории создаем файл с названием модуля - '''my_module.php'''.
 +
 
 +
4.  Вставляем в файл содержимое:
 +
<syntaxhighlight lang="php">
 +
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
 +
 
 +
class My_module extends MX_Controller {
  
 
public function index()
 
public function index()
Строка 14: Строка 24:
 
}
 
}
 
}
 
}
</pre>
+
</syntaxhighlight>
  
где File_name - имя файла, первая буква должна быть заглавной, название самого файла не должно начинаться с заглавной буквы.
+
где My_module - имя файла, первая буква должна быть заглавной, название самого файла не должно начинаться с заглавной буквы.
  
Теперь, если перейти по адресу '''example.com/<font color="green">file_name</font>/''' то админпанель отобразит нам надпись "Hello World"
+
Теперь, если перейти по адресу '''example.com/<font color="green">my_module</font>/''' то админпанель отобразит нам надпись "Hello World"
  
 
== Модуль с авторизацией ==
 
== Модуль с авторизацией ==
  
Для того, чтобы показать инфорацию только пользователям, которые авторизовались, нужно добавляем после "class File_name CI_Controller {" новую функцию
+
Для того, чтобы показать инфорацию только пользователям, которые авторизовались, нужно добавить конструктор, функцию которая будет автоматически загружаться при запросе любой страницы модуля.
 +
 
 +
<syntaxhighlight lang="php">
 +
<?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()
 +
    {
 +
        $this->output->set_output('Hello World!');                            // Если пользователь авторизован, то он увидит "Hello World!"
 +
    }
  
<pre>
+
}
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
+
</syntaxhighlight>
class File_name CI_Controller {
+
 
 +
== Несколько страниц ==
 +
 
 +
Каждая страница модуля (второй сегмент 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 />
 +
 
 +
Код:
 +
<syntaxhighlight lang="php">
 +
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
 +
 
 +
class Servers extends MX_Controller {
  
 
     public function __construct()
 
     public function __construct()
Строка 36: Строка 83:
 
          
 
          
 
         if(!$check){
 
         if(!$check){
             header("Location: /");                       // Перенаправление для авторизации
+
             redirect('auth');                     // Перенаправление для авторизации
    exit;
 
 
         }
 
         }
 
     }
 
     }
Строка 43: Строка 89:
 
     public function index()
 
     public function index()
 
     {
 
     {
         echo 'Hello World!';                             // Если пользователь авторизован, то он увидит "Hello World!"
+
         /* Главная страница */
 +
    }
 +
 
 +
    public function server_info($id = FALSE)
 +
    {
 +
        if(!$id){
 +
            /* ID сервера не указан */
 +
            exit;
 +
        }
 +
 
 +
        /* Информация о сервере */
 
     }
 
     }
  
 
}
 
}
</pre>
+
</syntaxhighlight>
 +
 
 +
{{Категория:Документация_для_разработчиков}}

Текущая версия на 13:15, 15 мая 2014


Документация для разработчиков

Модуль 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()
    {
        $this->output->set_output('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;
        }

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

}