Разные методы класса Blox

Blox::ajaxRequested()Запрос к блоку произведен с помощью Ajax.
Blox::error(
    $message,
    $toExit=null
)
Внести запись $message в лог ошибок. Если есть непустая переменная $toExit, то сразу прекратить выполнение скрипта.
Blox::getBlockInfo(
    $blockId,
    $key=null
)

Возвращает все параметры указанного блока в виде массива. Указав второй параметр $key (ключ массива), можно ускорить вывод и сразу получить нужный параметр в виде скалярной величины. Список ключей: 'id', 'tpl', 'delegated-id', 'parent-block-id', 'parent-rec-id', 'src-block-id', 'parent-field', 'is-xdat', 'settings'.

Ключ 'settings' возвращает настройки блока, которые используются только системой при выводе блока. Этот массив идет в сериализованном виде, то есть, как строковое данное, поэтому, чтобы получить настоящий массив, необходимо это данное десериализовать:

$settings = unserialize(
    Blox::getBlockInfo($block, 'settings')
);
Blox::getBlockPageId($blockId, &$delegatedAncestorId=null)Получить номер страницы, на которой находится указанный блок $blockId.
# Получить номер страницы, на которой находится
# первый блок с шаблоном myTemplate
$myPageId = Blox::getBlockPageId(
    Blox::getInstancesOfTpl('myTemplate')[0] # см.ниже
);

Внимание! Если какой-либо из вышестоящих блоков (предков) окажется делегированным, то будет возвращена не текущая страница, а страница, на которой находится исходный блок-предок. О такой ситуации будет сигнализировать непустая переменная $delegatedAncestorId — номер ближайшего делегированного блока-предка.

Blox::getIdAddress($dataType, $id, $startBlockId=1) С помощью этого метода можно получить информацию о том, где хранится данное типа block или page по его номеру.

  • Возвращает массив вида ['block-id'=>22,'tpl'=>'news','rec-id'=>99,'field'=>2],
    то есть, номер блока, имя шаблона, номер записи и номер поля.
  • $dataType — тип данного: 'block' или 'page'.
  • $id — номер блока или страницы.
  • $startBlockId (необязательный параметр) — вышестоящий блок, в котором может находиться данное. Применяйте этот параметр для ускорения поиска. По умолчанию поиск данного начинается с блока 1 и, следовательно, затрагивает всё древо сайта.
Blox::getPageId()Получить номер текущей страницы
Blox::getPageUrl($encode=false)Получить URL текущей страницы.
Blox::getPageHref($encode=false)Получить URL текущей страницы относительно базы (относительно главной страницы сайта).

Используется обычно для добавления url-параметра pagehref к ссылкам, ведущим на служебные скрипты (т.е. к ссылкам, не начинающимся с "?page=..."). Параметр pagehref несет информацию о странице, которую вы покинули, переходя в административные разделы. Благодаря этому параметру, вы вернетесь на ту же страницу.

Для передачи URL страницы с помощью url-параметра pagehref, его необходимо закодировать методом Url::encode(). Закодировать можно также, поставив в метод Blox::getPageHref() аргумент true:
<a href="?login&pagehref='.Blox::getPageHref(true).'">Login</a>

Blox::getTbl($tpl, $xprefix='', $noBackticks=false)
  • Возвращает имя таблицы данных по имени шаблона.
  • $tpl — имя шаблона.
  • $xprefix — префикс переменных дескриптора (строка). Если передается "x", то получим имя таблицы для экстраданных.
  • $noBackticks — не обрамлять имя таблицы косыми кавычками.
Используется для создания sql-запросов к таблицам редактируемых данных, например: $sql = 'SELECT * FROM '.Blox::getTbl($tpl).' WHERE `block-id`='.$blockId;
Blox::getScriptName()Возвращает имя скрипта. Это имя URL-параметра, которое идет сразу после символа "?". Например, при открывании окна редактирования, имя скрипта: edit. Параметр идет без значения. Исключение составляет обычный вывод страницы. В этом случае имя скрипта: main.

.tdd (пример pick-фильтрации)

$script = Blox::getScriptName();
if ('page' == $script)
    Request::add('block='.$blockInfo['id'].'&p[1]='.$_GET['company']);
elseif ('edit' == $script) 
    $defaults[1] = Request::get($blockInfo['id'], 'pick', 1, 'eq');
Blox::prompt(
    $message,
    $errorType=null
)
Внести запись $message в лог сообщений системы. Если есть непустая переменная $errorType, то сообщение выводится красным цветом и параллельно записывается в лог ошибок.
Blox::getInstancesOfTpl(
    $tpl,
    $options=[]
)
Возвращает массив исходных (не делегированных) блоков, использующих заданный шаблон $tpl.
# Фильтры:
$options = [
    # Искать только на странице 55
    'page-id' => 55, 
    
    # Если будет найден только один блок, то не применять
    # опцию page-id – это ускорит исполнение метода
    'ignore-page-id' => true,     
    
    # Исключить блок 99 из результирующего массива
    'excluded-block'=> 99
];

Для булевых опций можно применять короткую форму записи. Подробности см. в описании метода Arr::formatOptions(), который и применен внутри описываемого метода.

Blox::getBlockHtm(
    $regularId,
    $blockInfo=null
)
Возвращает HTML-код указанного блока