/**
  * 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;
 }