Общие функции
Общие функции принадлежат к абстрактному классу Core, который наследуются
другими классами. Эти функции доступны через основной объект $diafan
,
создание которого инициирует генерацию страницы. В модулях функции доступны
для вызова через объект $this->diafan
.
Пример:
$this->diafan->configmodules("list_img");
Методы
void redirect ([string $url = ''], [integer $http_response_code = 302]) – Редирект.
- string $url: URL для редиректа
- integer $http_response_code: статус-код
Пример:
// редирект на страницу новостей
$this->diafan->redirect('news/');
// редирект на внешний сайт
$this->diafan->redirect('http://www.diafan.ru/');
// редирект в административной части
// на редактирование категорий новостей
$this->diafan->redirect('news/category/');
void redirect_js ([string $url = ''], [boolean $no_history = false]) – Редирект с помощью JavaScript.
- string $url: URL для редиректа
- boolean $no_history: не сохранять исходную страницу в истории сеансов
Используется в тех случаях, когда на экран уже выведен контент. Тогда редирект с помощью функции redirect()
не сработает.
Пример:
// редирект на главную страницу сайта
$this->diafan->redirect_js('');
mixed filter (mixed $array, [string $mask = 0], [string $name = ''], [mixed $default = ''], [boolean $utf8 = false]) – Приводит значение переменной к типу, соответствующему маске.
- mixed $array: исходное значение или массив с исходным значением
- string $mask: тип преобразования: url – преобразует строку для использования ее в ссылке, sql – переменную можно вставлять непосредственно в SQL-запрос, int или integer – оставляет только числа, float – дискретное число, string – удаляются HTML-теги, специальные символы преобразуются, uid – составной идентификатор
- string $name: имя переменной в массиве
- mixed $default: значение по-умолчанию
- boolean $utf8: приведение к кодировке UTF-8
Пример:
// получает числовое значение из переменной $_POST["number"]
// если в массиве $_POST ключ "number" не определен,
// будет задано значение по умолчанию 1
$number = $this->diafan->filter($_POST, 'int', "number", 1);
// из массива $_POST["ids"]
// получает массив, в котором каждое значение будет числом
$ids = $this->diafan->filter($_POST["ids"], 'int');
// такой вариант использования фунции доступен начиная с версии 6.0.10.1
// преобразует значение переменной $_GET["searchword"]
// для того, чтобы безопасно использовать его для составления ссылок
$search = $this->diafan->filter($_GET, 'url', "searchword");
$url = BASE_PATH.'search/?searchword='.$search;
// убираем HTML-теги и преобразуем спец.символы в переменной $anons
$anons = $this->diafan->filter($anons, 'string');
// преобразуем значение переменной $name для того,
// чтобы подставить непосредственно в SQL-запрос
$user = DB::query_fetch_array("SELECT * FROM {users} WHERE name='".$this->diafan->filter($name, 'sql')."'");
array attributes (array &$attributes) – Задает неопределенным ключам массива значение по умолчанию.
- array $attributes: массив определенных атрибутов
mixed configmodules (string $name, [string $module_name = ''], [integer $site_id = false], [integer $lang_id = false], [boolean $value = false]) – Возвращает значение переменной $name в конфигурации модуля $module_name для языковой версии $lang_id и страницы $site_id. Если задано значение $value, функция записывает новое значение.
- string $name: имя переменной в конфигурации
- string $module_name: название модуля
- integer $site_id: раздел сайта
- integer $lang_id: номер языковой версии
- boolean $value: новое значение
Пример:
if($this->diafan->configmodules("cat", "shop"))
{
echo 'В модуле «Магазин» подключены категории.'
}
Изменяем настройку "cat" для модуля «Магазин».
$value = 1;
$this->diafan->configmodules("cat", "shop", 0, _LANG, $value);
string short_text (string $text, [integer $length = 80]) – Сокращает текст.
- string $text: исходный текст
- integer $length: количество символов для сокращения
Пример:
echo $this->diafan->short_text('<p>Не только стильный, но и достаточно удобный в эксплуатации. Возможна навеска дополнительного снаряжения снаружи. </p>');
// вернет:
// Не только стильный, но и достаточно удобный в эксплуатации. Возможна навеска дополнительного...
echo $this->diafan->short_text('<p>Не только стильный, но и достаточно удобный в эксплуатации. Возможна навеска дополнительного снаряжения снаружи. </p>', 400);
// вернет:
// Не только стильный, но и достаточно удобный в эксплуатации. Возможна навеска дополнительного снаряжения снаружи.
string truncate_text (string $text, [integer $length = 80]) – Усечение текста.
- string $text: исходный текст
- integer $length: количество символов для сокращения
string prepare_xml (string $text) – Подготавливает текст для отображения в XML-файле.
- string $text: исходный текст
Пример:
// обработаем название новости для корректного
// формирования RSS-ленты новостей
echo '<title>'.$this->diafan->prepare_xml($row['name']).'</title>';
string convert (integer $bytes, [integer $count = null], [boolean $fill = null]) – Конвертирует количество бит в байты, килобайты, мегабайты.
- integer $bytes: размер в байтах
- integer $count: (необязательный) количество цифр после десятичной запятой (по умолчанию 2)
- boolean $fill: (необязательный) обязательное наличие указанного количества цифр после десятичной запятой (по умолчанию false)
Пример:
echo $this->diafan->convert(45980);
// вернет: 44.9 Kb
echo $this->diafan->convert(367800342);
// вернет: 350.76 Mb
string encrypt (string $text) – Кодирует пароль.
- string $text: исходный пароль
Пример:
echo $this->diafan->encrypt('123');
// вернет: 944104956716c66f4c36a236ae349053
array get_children (integer $id, string $table, [boolean $trash = true]) – Выдает массив номеров детей.
- integer $id: номер исходного элемента
- string $table: таблица
- boolean $trash: не учитывать элементы, удаленные в корзину
Пример:
// получаем ID всех вложенных пунктов меню для пункта меню ID=3,
// не удаленных в корзину
$children = $this->diafan->get_children(3, "menu", true);
array get_parents (integer|array $id, string $table) – Выдает массив номеров родителей.
- integer|array $id: номер исходного элемента
- string $table: таблица
Пример:
// получаем ID всех родителей для текущей страницы сата
$parents = $this->diafan->get_parents($this->diafan->_site->id, 'site');
string translit (string $text) – Переводит кириллицу в транслит для строки text.
- string $text: исходный текст
Пример:
echo $this->diafan->translit('Рюкзак «Контур 50»');
// выведет: Ryukzak-Kontur-50
string from_translit (string $text) – Переводит транслит в кириллицу для строки text.
- string $text: исходный текст
string formate_from_date (string $date) – Переводит дату из в формата гггг-мм-дд в формат дд.мм.гггг.
- string $date: дата в формате гггг-мм-дд
Пример:
echo $this->diafan->formate_from_date('2019-05-13');
// выведет: 13.05.2019
string formate_from_datetime (string $date) – Переводит дату из в формата гггг-мм-дд чч:мм в формат дд.мм.гггг чч:мм.
- string $date: дата в формате гггг-мм-дд чч:мм
Пример:
echo $this->diafan->formate_from_datetime('2019-05-13 18:30');
// выведет: 13.05.2019 18:30
string formate_in_date (string $date) – Переводит дату из в формата дд.мм.гггг в формат гггг-мм-дд.
- string $date: дата в формате дд.мм.гггг
Пример:
echo $this->diafan->formate_in_date('13.05.2019');
// выведет: 2019-05-13
string formate_in_datetime (string $date) – Переводит дату из в формата дд.мм.гггг чч:мм в формат гггг-мм-дд чч:мм.
- string $date: дата в формате дд.мм.гггг чч:мм
Пример:
echo $this->diafan->formate_in_datetime('13.05.2019 18:30');
// выведет: 2019-05-13 18:30
integer unixdate (string $date) – Возвращает дату, переданную в формате dd.mm.yyyy hh:ii в виде даты в формате UNIX.
- string $date: дата в формате dd.mm.yyyy hh:ii
Пример:
echo $this->diafan->unixdate('13.05.2019 18:30');
// выведет: 1557761400
string string_utf8 (string $string) – Преобразование строки в кодировку UTF-8.
- string $string: исходная строка
string version_core () – Возвращает версию сборки.
string uid ([boolean $flag = false]) – Генерирует уникальный идентификатор.
- boolean $flag: версия идентификатора без сокращения
Пример:
Добавим уникальный идентификатор к ссылке на скачивания темы, чтобы исключить кэширование архива темы браузером.
echo '<a href="'.BASE_PATH.'custom/export/1/?'.$this->diafan->uid().'">Экспорт темы</a>';
string domain ([boolean $without_mobile = false]) – Возвращает доменное имя.
- boolean $without_mobile: без указания мобильной версии
string get_http_status (string $url, [string $referer = false]) – Возвращает HTTP статус ответа сервера.
- string $url: URL-адрес
- string $referer: URL-адрес источника запроса
mixed(boolean|string|array) fast_request (string $url, [array $params = false], [array $header = false], [string $referer = false], [integer $options = 0], [string $userpwd = false], [array $curl_options = false]) – Инициализация быстрого запроса.
- string $url: URL-адрес
- array $params: параметры запроса
- array $header: массив устанавливаемых HTTP-заголовков, в формате array('Content-type: text/plain', 'Content-length: 100')
- string $referer: URL-адрес источника запроса
- integer $options: флаг или комбинация флагов запроса
- string $userpwd: Логин и пароль, используемые при соединении, указанные в формате "[username]:[password]"
- array $curl_options: параметры cURL
Пример:
В модуле «Уведомления» выполняем быстрый запрос к скрипту, отправляющему уведомления. Результат выполнения не ждем. Это позволяет не тратить время пользователя на отправку. Отправка уведомлений фактически осуществляется параллельно с генерированием страницы.
$this->diafan->fast_request(BASE_PATH.'postman/send/');
В модуле «Посещаемость» выполняем быстрый запрос к скрипту, сохраняющему данные для счетчика. Передаем данные методом POST. Ответ не ждём. Это позволяет сохранять статистику параллельно генерированию страницу. Функция возвратит true или false – удалось отправить запрос или нет.
$params = array(
"user_agent" => getenv('HTTP_USER_AGENT'),
"domain" => getenv('HTTP_HOST'),
"rewrite" => $current_link,
);
$result = $this->diafan->fast_request(BASE_PATH.'visitors/counter/', $params, false, "POST");
if($result)
{
echo 'Запрос отправлен.';
}
else
{
echo 'Запрос не отправлен.';
}
Используем функцию для полноценного взаимодействия со сторонним сервером. Выполним запрос к API стороннего сайта. Отправим данные методом POST. Дождемся ответа и примем данные в ответ как результат выполнения функции.
$params = array(
'grant_type' => 'authorization_code',
'client_id' => $CLIENT_ID,
'client_secret' => $CLIENT_PASSWORD,
'redirect_uri' => BASE_PATH_HREF,
);
$data = $this->diafan->fast_request("https://www.googleapis.com/oauth2/v3/token", $params, false, "POST", true);
string params_append (string $url, array|object $params) – Добавляет данные к URL.
- string $url: исходный URL
- array|object $params: добавляемые данные
mixed simple_request (string $url, [array $params = false], [string $filename = false], [string $content = false]) – Инициализация простого запроса.
- string $url: URL-адрес
- array $params: параметры запроса
- string $filename: путь до файла относительно корня сайта или URL-адрес
- string $content: содержание файла / контекст запроса
array array_column ([array $array = null], [mixed $column_key = null], [mixed $index_key = null]) – Возвращает значения из одного столбца входного массива, идентифицируемого $column_key. Если указан $index_key, то он будет использован в качестве ключа в выходном массиве.
- array $array: многомерный массив записей, из которого можно извлечь столбец значений
- mixed $column_key: столбец значений для возврата. Это значение может быть целочисленным ключом столбца, который вы хотите получить, или это может быть имя строкового ключа для ассоциативного массива
- mixed $index_key: (необязательный) столбец для использования в качестве индекса / ключей для возвращаемого массива. Это значение может быть целочисленным ключом столбца или именем строкового ключа
Пример:
// исходный массив
$goods = array(
array(
'id' => 4,
'name' => 'Носки',
'color' => 'синий',
),
array(
'id' => 8,
'name' => 'Платье',
'color' => 'белый',
),
array(
'id' => 10,
'name' => 'Кепка',
'color' => 'синий',
),
);
$names = $this->diafan->array_column($goods, 'name');
$print_r($names);
/*
Array
(
[0] => Носки
[1] => Платье
[2] => Кепка
)
*/
$id_names = $this->diafan->array_column($goods, 'name', 'id');
$print_r($id_names);
/*
Array
(
[4] => Носки
[8] => Платье
[10] => Кепка
)
*/
array getcsv (string $st, [string $d = ";"], [string $q = '"']) – Производит разбор данных CSV.
- string $st: строка
- string $d: символ разделителя поля
- string $q: символ ограничителя поля
string putcsv (array $list, [string $d = ';'], [string $q = '"'], [boolean $e = false]) – Форматирует строку в виде CSV.
- array $list: исходные данные
- string $d: символ разделителя поля
- string $q: символ ограничителя поля
- boolean $e: добавлять в конце escape (символ новой строки)
array disable_functions () – Возвращает массив отключенных функций PHP.
boolean is_disable_function (string $name) – Возвращает массив отключенных функций PHP.
- string $name: имя функции
boolean set_time_limit ([integer $seconds = 0]) – Ограничение времени выполнения скрипта.
- integer $seconds: время в секундах, в течение которого скрипт должен завершить работу
boolean ignore_user_abort () – Устанавливает, необходимо ли прерывать работу скрипта при отключении клиента..
boolean is_user_connection () – Находится ли пользователь на странице.
mixed one_shot (string|array $name, [mixed $data = null]) – Одноразовая запись.
- string|array $name: метка кэша
- mixed $data: данные, сохраняемые в кэше
Зарегистрируйтесь или авторизируйтесь для того, чтобы оставить комментарий.
Ваш комментарий будет первым.