public static function dirs($code, $data) {
$pattern = '/\[\[\s*@([^\(]+)\(([^\)]+)\)\s*\]\]([^\[]+)\[\[\s*@([^\(]+)\(#end\)\s*\]\]/i';
return preg_replace_callback($pattern, function($value) use($data) {
if($value[1] == 'times') {
if (!empty($value[3])) {
$value[3] = self::dirs($value[3], $data);
}
return str_repeat($value[3], $value[2]);
}
}, $expression);
}