8 (800) 302-62-68
+7 (499) 348-29-58
sale@rbs-crm.ru

Документация разработчика

РосБизнесСофт CRM > База знаний > Разработчикам > Вспомогательные классы

Вспомогательные классы

В системе есть ряд вспомогательных классов, для часто-используемых операций:

  • Format (Kernel\Framework\Format) — Используется для получения форматированного вывода
  • Text (Kernel\Framework\Text) — различные строковые операции
  • UploadHelper (Kernel\Framework\UploadHelper) — для работы с references.upload и физическими файлами

Format

Подключение:

use Kernel\Framework\Format;

Глобальные константы формата даты

"DB_FORMAT" => "Y-m-d H:i:s" 
"DB_FORMAT_RENDER" => "d.m.Y H:i:s"
"DB_FORMAT_MINUTE" => "Y-m-d H:i"
"DB_FORMAT_MINUTE_RENDER" => "d.m.Y H:i"
"DB_FORMAT_SHORT" => "Y-m-d"
"DB_FORMAT_SHORT_RENDER" => "d.m.Y"
"DB_FORMAT_TIME" => "H:i"
"DB_FORMAT_TIME_FULL" => "H:i:s"
"DB_FORMAT_ATOM" => "Y-m-d\TH:i:sP"

Пример:

echo $this->structure->date->toFormat("DB_FORMAT_MINUTE_RENDER");
// 01.02.2022 10:43

$this->structure->date->toFormat("U");

$this->structure->date_invoice->toFormat("d.m.Y");

$order->getField("date")->toFormat("DB_FORMAT_TIME_FULL");

 

Получить формат даты по умолчанию для базы данных

DBFormat($onlyDate = false)

$onlyDate — если true, то время будет отрезано

Получить диапазон между датами для фильтра

DateBetween($valueStart, $valueEnd = null, $isShort = false, $appendDay = true)

$valueStart — Дата начала. Задается или строкой или timestamp
$valueEnd — Дата окончания. Задается или строкой или timestamp. Если не задан, устанавливается текущая дата и время
$isShort — если true, то участвовать будет только дата, а время отсекается
$appendDay — если true, то к valueEnd добавляется один день

Пример:

use Kernel\Framework\Format;
use Kernel\Database\Database as DB;

$condition = DB::_between(DB::Field("date", "documents.deals"), Format::DateBetween($this->filters->dateMin->get(), $this->filters->dateMax->get()));

Вывод даты и времени с условием «сегодня» (сегодня 12:00, 20.02.22 12:00)

renderDate($stamp, $format = DB_FORMAT_MINUTE_RENDER)

$stamp — Дата задается или строкой или timestamp
$format — Формат вывода если не дата не равна сегодняшнему дню

Проверка на текущий день

isNowDay($stamp)

$stamp — Дата задается строкой или timestamp

Проверка на текущий месяц

isNowMonth($stamp)

$stamp — Дата задается строкой или timestamp

Проверка на текущий год

isNowYear($stamp)

$stamp — Дата задается строкой или timestamp

Получить подробную информацию о поле в системе

getField($structureName, $fieldName)

$structureName — Название объекта
$fieldName — Название поля

Пример:

use Kernel\Framework\Format;

$field = Format::getField("documents.orders", "date");

Получить дату с учетом временной зоны пользователя

getDate($field, $format,$date = null, $user_id = null )

$field — Поле объекта
$format — Возвращаемый формат
$date — Дата задается или строкой или timestamp. По умолчанию now.
$user_id — Для получения даты с учетом timezone другого пользователя системы

Пример:

use Kernel\Framework\Format;

$dateWithTimezone = Format::getDate(Format::getField("documents.task", "date_start"), "d.m.Y H:i:s", strtotime($dateStart), 10);

Получение массива времени, день/ночь, иконку день/ночь

getTimeTextWithIcons($time)

$time — в формате H:i

Пример:

use Kernel\Framework\Format;

$struct = Format::getTimeTextWithIcons("14:45");

// $struct = ["time"="14:45", "text"=>"День", "img"=>"/img/cf_ui/day/day.png"];

Получить номер телефона без форматирования

parsePhone($phone, $prepend = '8')

$phone — форматированный телефон
$prepend — что подставлять перед номером

Пример:

use Kernel\Framework\Format;

Format::parsePhone("+7 (911) 444-33-22");
//Вернет 89114443322

Получить форматированный номер телефона

renderPhone($phone)

$phone — любой формат телефона

Пример:

use Kernel\Framework\Format;

Format::renderPhone("89114443322");
//Вернет +7 (911) 444-33-22

Format::renderPhone("+78114443322");
//Вернет +7 (911) 444-33-22

Format::renderPhone("+7 (811) 444-33-22");
//Вернет +7 (911) 444-33-22

Получить массив ID объектов из поля типа Multipointer (множественный выбор)

getIds($valueJson)

$valueJson — JSON строка

Пример:

use Kernel\Framework\Format;

$id = Format::getIds("[{"id":1},{"id":2}]");

// $id = [1=>1, 2=>2];

Text

Подключение:

use Kernel\Framework\Text;

Форматированная цена

money($sum)

$num — цена в строковом эквиваленте

Пример:

echo Text::money($this->structure->total) .'руб.';
// 1'000.00 руб.

echo Text::money(900) .'Долл.';
// 900.00 Долл.

Преобразование байтов в Кб, Мб, Гб, Тб

bytes($bytes, $separator='')

$bytes — Размер в байтах

Пример:

use Kernel\Framework\Text;

Text::bytes('3292528');
// 3.14 MB

Еще пример:

echo \Kernel\Framework\String::bytes(1100000000);
// 1.02 GB

 

UploadHelper

Подключение:

use Kernel\Framework\UploadHelper;

 

РУЧНАЯ ЗАГРУЗКА ФАЙЛА В СИСТЕМУ

createUpload($blindName, $fileName, $fileTemp)

$blindName — Название структуры в формате: «documents.orders:2»

$fileName — Имя файла

$fileTemp — Путь файла на сервере

Пример:

use Kernel\Framework\UploadHelper;

UploadHelper::createUpload($this->structure->getBlind(), $_FILES["file"]["name"], $_FILES["file"]["tmp_name"]);

// вернет object Entry: References.Uploads