- Модуль: landing
- Путь к файлу: ~/bitrix/modules/landing/lib/block.php
- Класс: BitrixLandingBlock
- Вызов: Block::collectAllowedAttrs
static function collectAllowedAttrs(array $mixed, array &$allowed, $selector = null)
{
foreach ($mixed as $itemSelector => $item)
{
if (!is_string($itemSelector))
{
$itemSelector = $selector;
}
if (
isset($item['attrs']) &&
is_array($item['attrs'])
)
{
self::collectAllowedAttrs($item['attrs'], $allowed, $itemSelector);
}
else if (
isset($item['additional']['attrsType']) ||
$itemSelector === 'additional'
)
{
$manifestAttrs = self::getAttrs();
$attrs = $manifestAttrs['bitrix']['attrs'];
if (is_array($item['additional']['attrsType']))
{
foreach ($attrs as $attr) {
$allowed[$itemSelector][] = $attr['attribute'];
}
}
if (is_array($item['attrsType']))
{
foreach ($attrs as $attr) {
$allowed['#wrapper'][] = $attr['attribute'];
}
}
}
else if (
isset($item['additional']['attrs']) &&
is_array($item['additional']['attrs'])
)
{
self::collectAllowedAttrs($item['additional']['attrs'], $allowed, $itemSelector);
}
else if (
isset($item['additional']) &&
is_array($item['additional'])
)
{
self::collectAllowedAttrs($item['additional'], $allowed, $itemSelector);
}
else if (
isset($item['attribute']) &&
is_string($item['attribute'])
)
{
if (
isset($item['selector']) &&
is_string($item['selector'])
)
{
$itemSelector = trim($item['selector']);
}
if ($itemSelector)
{
if (!isset($allowed[$itemSelector]))
{
$allowed[$itemSelector] = [];
}
$allowed[$itemSelector][] = $item['attribute'];
}
}
else if (is_array($item))
{
self::collectAllowedAttrs($item, $allowed, $itemSelector);
}
}
}