/** * Template operator function for all functions defined on this class * * @param eZTemplate $tpl * @param string $operatorName * @param array $operatorParameters * @param string $rootNamespace * @param string $currentNamespace * @param null|mixed $operatorValue * @param array $namedParameters */ function modify(eZTemplate $tpl, $operatorName, array $operatorParameters, $rootNamespace, $currentNamespace, &$operatorValue, array $namedParameters) { $ret = ''; switch ($operatorName) { case 'ezscript_load': if (!isset(self::$loaded['js_files'])) { $depend = self::setPersistentArray('js_files', self::flattenArray($namedParameters['script_array']), $tpl, false, true); $ret = ezjscPacker::buildJavascriptTag($depend, $namedParameters['type'], $namedParameters['language'], $namedParameters['charset'], $namedParameters['pack_level']); self::$loaded['js_files'] = true; break; } elseif ($operatorName === 'ezscript_load') { $namedParameters['script_array'] = self::setPersistentArray('js_files', self::flattenArray($namedParameters['script_array']), $tpl, true, true, true); } case 'ezscript_require': if (!isset(self::$loaded['js_files'])) { self::setPersistentArray('js_files', self::flattenArray($namedParameters['script_array']), $tpl, true); break; } elseif ($operatorName === 'ezscript_require') { $namedParameters['script_array'] = self::setPersistentArray('js_files', self::flattenArray($namedParameters['script_array']), $tpl, true, true, true); } case 'ezscript': $ret = ezjscPacker::buildJavascriptTag($namedParameters['script_array'], $namedParameters['type'], $namedParameters['language'], $namedParameters['charset'], $namedParameters['pack_level']); break; case 'ezscriptfiles': if ($namedParameters['ignore_loaded']) { $ret = ezjscPacker::buildJavascriptFiles($namedParameters['script_array'], $namedParameters['pack_level']); } else { $diff = self::setPersistentArray('js_files', self::flattenArray($namedParameters['script_array']), $tpl, true, true, true); $ret = ezjscPacker::buildJavascriptFiles($diff, $namedParameters['pack_level']); } break; case 'ezcss_load': if (!isset(self::$loaded['css_files'])) { $depend = self::setPersistentArray('css_files', self::flattenArray($namedParameters['css_array']), $tpl, false, true); $ret = ezjscPacker::buildStylesheetTag($depend, $namedParameters['media'], $namedParameters['type'], $namedParameters['rel'], $namedParameters['pack_level']); self::$loaded['css_files'] = true; break; } elseif ($operatorName === 'ezcss_load') { $namedParameters['css_array'] = self::setPersistentArray('css_files', self::flattenArray($namedParameters['css_array']), $tpl, true, true, true); } case 'ezcss_require': if (!isset(self::$loaded['css_files'])) { self::setPersistentArray('css_files', self::flattenArray($namedParameters['css_array']), $tpl, true); break; } elseif ($operatorName === 'ezcss_require') { $namedParameters['css_array'] = self::setPersistentArray('css_files', self::flattenArray($namedParameters['css_array']), $tpl, true, true, true); } case 'ezcss': $ret = ezjscPacker::buildStylesheetTag($namedParameters['css_array'], $namedParameters['media'], $namedParameters['type'], $namedParameters['rel'], $namedParameters['pack_level']); break; case 'ezcssfiles': if ($namedParameters['ignore_loaded']) { $ret = ezjscPacker::buildStylesheetFiles($namedParameters['css_array'], $namedParameters['pack_level']); } else { $diff = self::setPersistentArray('css_files', self::flattenArray($namedParameters['css_array']), $tpl, true, true, true); $ret = ezjscPacker::buildStylesheetFiles($diff, $namedParameters['pack_level']); } break; } $operatorValue = $ret; }