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

Материал из HLDM Wiki
Перейти к навигации Перейти к поиску
(Модуль с авторизацией)
 
(не показано 14 промежуточных версий этого же участника)
Строка 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()
Строка 15: Строка 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"
  
 
== Модуль с авторизацией ==
 
== Модуль с авторизацией ==
Строка 25: Строка 34:
 
Для того, чтобы показать инфорацию только пользователям, которые авторизовались, нужно добавить конструктор, функцию которая будет автоматически загружаться при запросе любой страницы модуля.
 
Для того, чтобы показать инфорацию только пользователям, которые авторизовались, нужно добавить конструктор, функцию которая будет автоматически загружаться при запросе любой страницы модуля.
  
<pre>
+
<syntaxhighlight lang="php">
<?php  
+
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
if ( ! defined('BASEPATH')) exit('No direct script access allowed');
+
 
class File_name CI_Controller {
+
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!"
 +
    }
 +
 
 +
}
 +
</syntaxhighlight>
 +
 
 +
== Несколько страниц ==
 +
 
 +
Каждая страница модуля (второй сегмент 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()
Строка 38: Строка 83:
 
          
 
          
 
         if(!$check){
 
         if(!$check){
             header("Location: /");                       // Перенаправление для авторизации
+
             redirect('auth');                     // Перенаправление для авторизации
    exit;
 
 
         }
 
         }
 
     }
 
     }
Строка 45: Строка 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;
        }

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

}