- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/lib/web/dom/queryengine.php
- Класс: BitrixMainWebDOMQueryEngine
- Вызов: QueryEngine::walkInternal
protected function walkInternal(array $filter = null, callable $callback = null, Node $node)
{
$resultList = array();
if($node->hasChildNodes())
{
foreach($node->getChildNodesArray() as $childNode)
{
if($callback)
{
$flag = call_user_func_array($callback, array($childNode, $filter));
}
elseif($filter)
{
$flag = $this->isNodeFiltered($childNode, $filter);
}
else
{
break;
}
if($flag === true)
{
// save node to result list
$resultList[] = $childNode;
// check limit of results
if($this->limit !== null)
{
--$this->limit;
if($this->limit <= 0)
{
break;
}
}
// check search only in child list
if(!$this->deep)
{
continue;
}
}
$resultList = array_merge(
$resultList,
$this->walkInternal($filter, $callback, $childNode, $callback)
);
}
}
return $resultList;
}