- Модуль: webdav
- Путь к файлу: ~/bitrix/modules/webdav/classes/general.php
- Класс: __CParseLockinfo
- Вызов: __CParseLockinfo::parse_array
function parse_array(&$array, $depth = 0)
{
if (!is_array($array))
return ;
foreach ($array as $name => $node)
{
$ns = '';
if (isset($node[0]))
{
$this->parse_ns($node[0]);
}
else
{
$this->parse_ns($node);
}
if (mb_strpos($name, ':') !== false)
{
foreach ($this->namespaces as $nscode => $ns)
{
if (mb_strpos($name, $nscode.':') !== false)
{
$name = str_replace($nscode.':', '', $name);
break;
}
}
if ($ns == '')
{
$this->success = false;
return ;
}
}
switch ($name)
{
case 'write':
$this->locktype = $name;
break;
case 'exclusive':
case 'shared':
$this->lockscope = $name;
break;
case 'owner':
if (is_array($node[0]["#"]) && array_key_exists("D:href", $node[0]["#"]))
$node = $node[0]["#"]["D:href"];
$slashPos = mb_strpos($node[0]['#'], '\');
if ($slashPos === false)
{
$this->owner = $node[0]['#'];
}
else
{
$this->owner = mb_substr($node[0]['#'], $slashPos + 1);
}
break;
}
if (array_key_exists('#', $node) && is_array($node['#']) && sizeof($node['#']) > 0)
{
$this->parse_array($node['#'], $depth + 1);
}
elseif (isset($node[0]['#']) && is_array($node[0]['#']) && sizeof($node[0]['#']) > 0)
{
$this->parse_array($node[0]['#'], $depth + 1);
}
}
}