protected function multiplyMedia(Environment $env = null, $childQueries = null)
{
if (!isset($env) || !empty($env->block->type) && $env->block->type !== Type::T_MEDIA) {
return $childQueries;
}
// plain old block, skip
if (empty($env->block->type)) {
return $this->multiplyMedia($env->parent, $childQueries);
}
$parentQueries = isset($env->block->queryList) ? $env->block->queryList : [[[Type::T_MEDIA_VALUE, $env->block->value]]];
if ($childQueries === null) {
$childQueries = $parentQueries;
} else {
$originalQueries = $childQueries;
$childQueries = [];
foreach ($parentQueries as $parentQuery) {
foreach ($originalQueries as $childQuery) {
$childQueries[] = array_merge($parentQuery, $childQuery);
}
}
}
return $this->multiplyMedia($env->parent, $childQueries);
}