Основной рабочий файл хака содержит класс, который отвечает за параметры конфигурации, загрузку модулей и библиотек, подключение шаблонов, стилей и скриптов. Класс может быть расширен любыми дополнительными функциями.
Встроенные функции класса
Обращение к методам и полям класса производится вызовом:
$core->hack->hackname->funcname()
Вместо hackname указывается название класса, вместо funcname - соответствующая функция или поле.
$core->hack->(name)->conf[$field]
Массив с конфигурацией хака, используйте только для чтения.
$core->hack->(name)->conf( $field, $val = null )
Возвращает или изменяет конфигурацию хака в зависимости от параметров:
- При вызове без параметров, возвращает весь массив конфигурации целиком.
- При вызове с одним параметром
$field- возвращает значение конкретного поля. - При вызове с параметрами
$fieldи$val, присваивает полю$fieldзначение$val.
$core->hack->(name)->(library)
Загружает и возвращает соответствующую библиотеку хака. Загрузка и инициализация библиотеки происходит один раз. Пример использования:
$core->hack->proxy->checker->run( 123 );
$core->hach->(name)->mod( $name, $func = false )
Загружает модуль с названием $name. Если передано название функции $func, сразу же исполняет указанную функцию. Удобно для реализации роутинга.
$core->hack->(name)->tpl( $part, $name )
Загружает для раздела $part шаблон с названием $name из папки шаблонов. Расширение .tpl не указывается.
$core->hack->(name)->css( $name )
Подключает CSS-файл с названием $name из папки стилей. Расширение .css не указывается.
$core->hack->(name)->js( $name )
Подключает JS-файл с названием $name из папки скриптов. Расширение .js не указывается.
Синтаксис основного файла
Файл main.php отвечает за расширение основного класса хака. Он должен содержать класс с названием hack_name, где вместо name будет название хака. Класс должен наследоваться от thehack. Например:
class hack_proxy extends thehack { … }
Не переопределяйте встроенные конструктор и деструктор класса, они отвечают за работу внутренних функций. В качестве конструктора используйте функцию init, в качестве деструктора - stop. Обе функции не имеют параметров. Например:
class hack_proxy extends thehack {
public function init() {
// Функционал конструктора
}
public function stop() {
// Функционал деструктора
}
}
Если вы не планируете расширять основной класс хака и использовать только встроенные функции, файл main.php можно удалить из папки вручную.