Наверх

Общие функции

Общие функции принадлежат к абстрактному классу 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 = '']) – Приводит значение переменной к типу, соответствующему маске.

  • mixed $array: исходное значение или массив с исходным значением
  • string $mask: тип преобразования: url – преобразует строку для использования ее в ссылке, sql – переменную можно вставлять непосредственно в SQL-запрос, int – оставляет только числа, float – дискретное число, string – удаляются HTML-теги, специальные символы преобразуются
  • string $name: имя переменной в массиве
  • mixed $default: значение по-умолчанию

Пример:

// получает числовое значение из переменной $_POST["number"]
$integer = $this->diafan->filter($_POST, 'int', "number");

// преобразует значение переменной $_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')."'");

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 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 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 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) – Возвращает HTTP статус ответа сервера.

  • string $url: URL-адрес

mixed(boolean|string|array) fast_request (string $url, [array $params = false], [array $header = false], [array $method = "GET"], [boolean $answer = false], [boolean $ajax = false], [boolean $debug = false]) – Инициализация быстрого запроса.

  • string $url: URL-адрес
  • array $params: параметры запроса
  • array $header: массив устанавливаемых HTTP-заголовков, в формате array('Content-type: text/plain', 'Content-length: 100')
  • array $method: метод передачи параметров: GET, POST, POST_JSON – метод POST передачи JSON-представления данных
  • boolean $answer: вернуть ответ сервера
  • boolean $ajax: запрос является AJAX
  • boolean $debug: вернуть заголовки запроса и ответа

Пример:

В модуле «Уведомления» выполняем быстрый запрос к скрипту, отправляющему уведомления. Результат выполнения не ждем. Это позволяет не тратить время пользователя на отправку. Отправка уведомлений фактически осуществляется параллельно с генерированием страницы.

$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 (символ новой строки)

boolean set_time_limit ([int $seconds = 0]) – Ограничение времени выполнения скрипта.

  • int $seconds: время в секундах, в течение которого скрипт должен завершить работу

Ваши комментарии и дополнения

string short_text (string $text, [integer $length = 80]) – не просто сокращает текст, а еще автоматом длописывает в конец три точки: "..."
Неправильно работает общий поиск по документации Diafan

Хотел посмотреть что делает конкретная функция, набрал: $this->diafan->filter(

Вместо того что бы вывести, что-то связанное именно с этой функцией, поиск обрезал строку запроса до $this->diafan и выдал кучу н нужного мусора. Пришлось лезть в разделы и глазками находить данную страничку.

Эти детские ошибки были и 6 лет назад, и до сих пор не исправлены.
Цитата
Эти детские ошибки были и 6 лет назад, и до сих пор не исправлены.
Ну такой он, яндекс, куда деваться? ;) Как поставили его для поиска 6 лет назад, так и ищет
Тогда приношу свои извинения, забыл, что поиск не ваш собственный, а через Яндекс.
Зарегистрируйтесь или авторизируйтесь для того, чтобы оставить комментарий.