Класс: MhAjax
Документация по плагину класс: mhajax для DLE.
Краткое содержание:
Class MhAjax
Описание:
Вспомогательный класс для работы с системой управления DLE (Data Life Engine), загрузкой данных и проверкой ресурсов. Содержит набор методов, облегчающих выполнение AJAX-запросов, валидацию и взаимодействие с внешними и внутренними ресурсами.
Свойства
- protected $postXfieldKeys
- protected $userXfieldKeys
- private $api_key
- private $asset_file
- private $assets_arr
- private $assets_dir
- private $cache_folder
- private $prefix
- private $recource_id
- private $update_url
Методы
- public __construct()
- public checkAssets()
- public checkUpdate()
- public clear_cache()
- public get_cache()
- public get_used_xfields()
- public getApiKey()
- public getCacheFolder()
- public getCats()
- public getDleUrl()
- public getPrefix()
- public getRecourceId()
- public getUpdateUrl()
- public getUser()
- public getUserGroups()
- public getUsers()
- public getXfieldInfo()
- public load_data()
- public loadXfields()
- public parseAssets()
- public save_asset()
- public setApiKey()
- public setCacheFolder()
- public setPrefix()
- public setRecourceId()
- public setUpdateUrl()
- private fetchFileContent()
- private generateFileMetadata()
- private parse_assets()
- private prepare_assets()
- private saveFile()
- private set_cache()
Подробности
- Путь: engine/inc/maharder/_includes/classes/MhAjax.php
- Использованные трейты:
Свойства
protected $postXfieldKeys : array
Тип: Массив
Подробности:
- Смотри так-же:
protected $userXfieldKeys : array
Тип: Массив
Подробности:
- Смотри так-же:
private $api_key : string
Краткое содержание
Гостевой ключ с доступом на просмотр информации ресурса на сайте
Тип: Текст
private $asset_file : string
Краткое содержание
Файл с информацией и хешами вспомогательных файлов
Тип: Текст
private $assets_arr : array
Краткое содержание
Массив со всеми данными для обновления стилей и скриптов
Тип: Массив
private $assets_dir : string
Краткое содержание
Путь до всех вспомогательных файлов
Тип: Текст
private $cache_folder : string
Краткое содержание
Папка кеша
Тип: Текст
private $prefix : ?string
Тип: Текст или null
private $recource_id : ?int
Тип: Целое число или null
Подробности:
private $update_url : string
Тип: Текст
Методы
__construct
public __construct() : mixedКраткое содержание
Конструктор класса MhAjax.
Описание
Инициализирует объект класса, содержащего вспомогательные методы для работы с DLE, загрузкой данных и проверкой ресурсов.
Возвращает:
mixedcheckAssets
public checkAssets(bool rewrite = false) : arrayКраткое содержание
Проверяет целостность файлов между локальным хранилищем и сервером разработчика.
Описание
Если файлы отсутствуют или имеют различия в хеш-суммах, информация об этих расхождениях возвращается в виде массива. При необходимости может быть выполнена перезапись локального файла с данными о ресурсах.
Смотри так-же:
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $rewrite | bool | false |
Ошибки:
| Тип | Описание |
|---|---|
| \JsonException |
Возвращает:
arrayАссоциативный массив с информацией о проверке файлов:
on_server(int): Количество файлов, находящихся на сервере разработчика.local(int): Количество локальных файлов.missing_count(int): Количество недостающих файлов.update_count(int): Количество файлов, требующих обновления.missing(array): Массив с данными о недостающих файлах.update(array): Массив с данными о файлах, требующих обновления.
checkUpdate
public checkUpdate(int|null res = null) : arrayКраткое содержание
Проверяет наличие и обновления ресурса, используя указанный или текущий идентификатор ресурса.
Смотри так-же:
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $res | int|null | null |
Ошибки:
| Тип | Описание |
|---|---|
| \JsonException|\Throwable | Исключение, связанное с ошибками в JSON-конверсии (может быть выброшено при выполнении Telegram-лога). |
Возвращает:
arrayВозвращает массив с данными об обновлении ресурса или список ошибок.
clear_cache
public clear_cache(string type = "all") : voidКраткое содержание
Очищает кеш указанного типа.
Описание
Метод позволяет очистить кеш для переданного типа или полностью, если тип "all". Использует внутренний метод CacheControl::clearCache для выполнения операции очистки.
Смотри так-же:
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $type | string | "all" |
Возвращает:
voidget_cache
public get_cache(string type, string name) : array|falseКраткое содержание
Получает кешированные данные для заданного типа и имени.
Описание
Метод использует статический метод CacheControl::getCache(), чтобы получить данные из файловой системы.
Смотри так-же:
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $type | string | |
| $name | string |
Ошибки:
| Тип | Описание |
|---|---|
| \JsonException |
Возвращает:
array|falseВозвращает массив декодированных данных, если файл кеша успешно найден и данные корректны,
или false, если произошла ошибка (например, файл не найден или данные некорректны).
get_used_xfields
public get_used_xfields(int id, string type = "post") : array|boolКраткое содержание
Возвращает массив с дополнительными полями, использованными в объекте, либо false, если данные отсутствуют.
Описание
Метод извлекает данные из базы данных для указанного объекта (поста или пользователя) и преобразует строку с дополнительными полями в массив с ключами и их значениями.
Смотри так-же:
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $id | int | |
| $type | string | "post" |
Ошибки:
| Тип | Описание |
|---|---|
| \JsonException | Исключение выбрасывается, если произошла ошибка при работе с JSON. |
Возвращает:
array|boolВозвращает массив дополнительных полей объекта в формате
ключ => значение, либо false, если данные отсутствуют.
getApiKey
public getApiKey() : stringВозвращает:
stringgetCacheFolder
public getCacheFolder() : stringВозвращает:
stringgetCats
public getCats() : arrayКраткое содержание
Возвращает список категорий в виде ассоциативного массива, где ключом является ID категории, а значением — её название.
Описание
Метод загружает данные из базы данных, используя метод load_data, и сортирует их по названию категории в
алфавитном порядке. В результате возвращается массив с ID категорий в качестве ключей и названиями категорий в
качестве значений.
Смотри так-же:
Ошибки:
| Тип | Описание |
|---|---|
| \JsonException |
Возвращает:
arrayАссоциативный массив категорий, где ключ — ID категории, а значение — её название.
getDleUrl
public getDleUrl() : stringКраткое содержание
Возвращает URL панели администратора DLE.
Описание
Использует глобальный массив настроек DLE $config для формирования полного URL.
Формат возвращаемого значения: http(s)://your-site.com/admin_path.
Возвращает:
stringКонечный URL панели администратора DLE.
getPrefix
public getPrefix() : stringКраткое содержание
Возвращает префикс для использования в SQL-запросах.
Описание
Метод проверяет, установлен ли префикс. Если префикс не задан, он вызывает метод setPrefix(),
чтобы установить его значение. Затем возвращает установившийся префикс.
Смотри так-же:
Возвращает:
stringПрефикс, используемый для построения SQL-запросов.
getRecourceId
public getRecourceId() : int|nullВозвращает:
int|nullgetUpdateUrl
public getUpdateUrl() : stringВозвращает:
stringgetUser
public getUser(int|null id = null, string|null uname = null) : array|falseКраткое содержание
Получает данные пользователя по ID или имени пользователя.
Описание
Если ни идентификатор пользователя, ни имя пользователя не переданы, метод возвращает false.
В противном случае выполняется поиск данных в таблице users с использованием указанного критерия.
Смотри так-же:
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $id | int|null | null |
| $uname | string|null | null |
Ошибки:
| Тип | Описание |
|---|---|
| \JsonException |
Возвращает:
array|falseАссоциативный массив с данными о пользователе, если пользователь найден.
Возвращает false, если пользователь не найден или если критерии поиска не заданы.
getUserGroups
public getUserGroups() : arrayКраткое содержание
Получает список групп пользователей в формате массива с идентификаторами и именами групп.
Описание
Метод обращается к функции load_data для загрузки данных о группах пользователей
из таблицы "usergroups" с выборкой полей id и group_name,
затем преобразует результат в ассоциативный массив с ключами — идентификаторами групп,
и значениями — именами групп, отсортированными по названию группы в алфавитном порядке (ASC).
Смотри так-же:
Ошибки:
| Тип | Описание |
|---|---|
| \JsonException |
Возвращает:
arrayАссоциативный массив, где ключ — идентификатор группы, значение — имя группы.
getUsers
public getUsers() : arrayКраткое содержание
Возвращает список пользователей из базы данных.
Описание
Метод загружает данные о пользователях, используя метод load_data,
и возвращает массив, где ключами являются идентификаторы пользователей,
а значениями — их имена, отсортированные в алфавитном порядке.
Смотри так-же:
Ошибки:
| Тип | Описание |
|---|---|
| \JsonException |
Возвращает:
arrayАссоциативный массив пользователей, где ключи — идентификаторы пользователей (user_id), а значения — их имена.
getXfieldInfo
public getXfieldInfo(string name, string type = "post") : array|nullКраткое содержание
Возвращает информацию о дополнительном поле (xfield) на основании его имени и типа.
Смотри так-же:
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $name | string | |
| $type | string | "post" |
Возвращает:
array|nullВозвращает информацию о поле в виде ассоциативного массива, либо null, если поле не найдено.
load_data
public load_data(string name, mixed ..._vars) : arrayКраткое содержание
Метод загружает данные из базы данных с использованием механизма кеширования.
Описание
Если данные уже закешированы, то они возвращаются из кеша, иначе выполняется запрос к базе данных, формируется кеш и результат сохраняется на диск.
Смотри так-же:
- \DataManager::getDb()
- \DataManager::nameArgs()
- \DataManager::getComparer()
- \DataManager::getConfig()
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $name | string | |
| $_vars | mixed |
Ошибки:
| Тип | Описание |
|---|---|
| \JsonException | В случае JSON-ошибок при работе с кешем. |
Возвращает:
arrayРезультат выборки из базы данных, либо из кеша.
loadXfields
public loadXfields(string type = "post") : array|falseКраткое содержание
Загружает дополнительные поля для новостей или профилей пользователей.
Описание
Метод извлекает данные из кэша, либо, при его отсутствии, читает данные из файла конфигурации.
Возвращает ассоциативный массив, где ключами являются названия дополнительных полей, а значениями - их
параметры.
Данные загружаются в зависимости от значения параметра $type:
"post": данные загружаются из файлаxfields.txt."user": данные загружаются из файлаxprofile.txt. Ключи массива, формируемого из файла конфигурации, соответствуют предопределённым ключам, указанным в свойствахuserXfieldKeysилиpostXfieldKeys.
Смотри так-же:
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $type | string | "post" |
Возвращает:
array|falseАссоциативный массив дополнительных полей, где ключ - название поля, значение - его
параметры. Возвращает false в случае невозможности прочитать файл.
parseAssets
public parseAssets(bool parse = false) : voidКраткое содержание
Выполняет парсинг вспомогательных файлов для управления ассетами.
Описание
Если файл с хешами ассетов существует, то парсинг выполняется только при принудительном запуске. В случае отсутствия указанного файла производится полное сканирование ассетов.
Смотри так-же:
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $parse | bool | false |
Ошибки:
| Тип | Описание |
|---|---|
| \JsonException|\Throwable | В случае ошибок в процессах обработки JSON-файлов. |
Возвращает:
voidsave_asset
public save_asset(array data, string file) : array|falseКраткое содержание
Сохраняет файл на сервер и возвращает информацию о нём или false в случае неуспеха.
Смотри так-же:
- \DataManager::createDir()
- \LogGenerator::generateLog()
- \AssetsChecker::fetchFileContent()
- \AssetsChecker::saveFile()
- \AssetsChecker::generateFileMetadata()
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $data | array | |
| $file | string |
Ошибки:
| Тип | Описание |
|---|---|
| \JsonException|\Throwable | Генерирует исключение, если возникает ошибка обработки JSON. |
Возвращает:
array|falseВозвращает массив с информацией о сохранённом файле или false, если файл не удалось сохранить. Массив содержит следующие ключи:
- "realpath" (string): Полный реальный путь до файла.
- "dirname" (string): Директория файла.
- "basename" (string): Имя файла с расширением.
- "filename" (string): Имя файла без расширения.
- "extension" (string): Расширение файла.
- "mime" (string): MIME-тип файла.
- "encoding" (string): Тип кодирования файла.
- "size" (int): Размер файла в байтах.
- "size_string" (string): Размер файла в человекочитаемом формате (например, "1.5MB").
- "atime" (int): Время последнего доступа к файлу (в метках времени Unix).
- "mtime" (int): Время последней модификации файла (в метках времени Unix).
- "permission" (string): Права доступа на файл (в формате UNIX-подобной строки, например, "0755").
setApiKey
public setApiKey(string api_key) : voidСвойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $api_key | string |
Возвращает:
voidsetCacheFolder
public setCacheFolder(string cache_folder) : voidСвойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $cache_folder | string |
Возвращает:
voidsetPrefix
public setPrefix(string|null name = null) : voidКраткое содержание
Устанавливает префикс для использования в загрузке данных.
Описание
Если переданное имя соответствует значениям "users" или "usergroup",
то префикс устанавливается в значение константы USERPREFIX.
В противном случае используется значение по умолчанию из константы PREFIX.
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $name | string|null | null |
Возвращает:
voidsetRecourceId
public setRecourceId(int recource_id) : voidСвойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $recource_id | int |
Возвращает:
voidsetUpdateUrl
public setUpdateUrl(string update_url) : voidСвойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $update_url | string |
Возвращает:
voidfetchFileContent
private fetchFileContent(array data) : string|nullКраткое содержание
Получает содержимое файла по указанным ссылкам.
Описание
Метод пытается загрузить содержимое файла с основной (link) и,
при необходимости, с альтернативной (alt) ссылки, если содержимое
по основной ссылке пустое.
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $data | array |
Возвращает:
string|nullВозвращает содержимое файла, либо null, если не удалось загрузить файл.
generateFileMetadata
private generateFileMetadata(string file_path) : arrayКраткое содержание
Генерирует метаданные для указанного файла.
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $file_path | string |
Ошибки:
| Тип | Описание |
|---|---|
| \RuntimeException | Если файл не существует или недоступен. |
Возвращает:
arrayАссоциативный массив, содержащий следующую информацию о файле:
- "realpath" (string|null): Абсолютный путь до файла.
- "dirname" (string): Путь к директории, содержащей файл.
- "basename" (string): Имя файла с расширением.
- "filename" (string): Имя файла без расширения.
- "extension" (string|null): Расширение файла.
- "mime" (string): MIME-тип файла.
- "encoding" (string): Кодировка файла.
- "size" (int): Размер файла в байтах.
- "size_string" (string): Читаемое представление размера файла (например, "10.5 KB").
- "atime" (int): Временная метка последнего доступа к файлу.
- "mtime" (int): Временная метка последней модификации файла.
- "permission" (string): Права доступа к файлу (например, "0755").
parse_assets
private parse_assets() : voidКраткое содержание
Парсит данные о ресурсах (assets), проверяет наличие отсутствующих или обновленных, и обновляет информацию. Также сохраняет актуальные данные в локальный файл ресурсов.
Описание
Процесс включает следующие этапы:
- Получение списка локальных файлов и их данных через метод
prepare_assets. - Получение данных об удаленных ресурсах через URL.
- Сравнение данных о хэшах локальных и удаленных ресурсов.
- Сохранение недостающих или обновленных ресурсов в локальное хранилище.
- Запись актуализированных данных в локальный JSON-файл.
Смотри так-же:
Ошибки:
| Тип | Описание |
|---|---|
| \JsonException|\Throwable | Исключение выбрасывается в случае ошибки при работе с JSON. |
Возвращает:
voidprepare_assets
private prepare_assets(array arr, string dir = __DIR__) : voidКраткое содержание
Подготавливает данные о файлах, расположенных на локальном сервере, и сохраняет их в массив assets_arr.
Описание
Метод рекурсивно обрабатывает массив с файлами и создает запись для каждого файла в конечном массиве assets_arr,
содержащую путь, имя файла и его хэш.
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $arr | array | |
| $dir | string | DIR |
Возвращает:
voidsaveFile
private saveFile(string file_path, string content, string file) : boolКраткое содержание
Сохраняет содержимое в файл и логирует сообщение при возникновении ошибки.
Описание
Метод выполняет запись переданного содержимого в указанный путь файла, проверяет, доступен ли файл для записи, и логирует ошибку в случае неудачи.
Смотри так-же:
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $file_path | string | |
| $content | string | |
| $file | string |
Ошибки:
| Тип | Описание |
|---|---|
| \Throwable |
Возвращает:
boolВозвращает true, если файл успешно сохранён, или false — в случае ошибки.
set_cache
private set_cache(string type, string name, mixed data) : voidКраткое содержание
Сохраняет данные в кеш.
Описание
Метод записывает данные в кеш, используя указанный тип и имя.
Для сохранения данных вызывается метод CacheControl::setCache, который
обрабатывает директорию и имя файла, записывает данные в формате JSON
и устанавливает необходимые права доступа к файлу.
Смотри так-же:
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $type | string | |
| $name | string | |
| $data | mixed |
Ошибки:
| Тип | Описание |
|---|---|
| \JsonException |
Возвращает:
void