protected function _parseTemplateCallback($m) {
        if (!class_exists('block' . $m[1])) {
            $vars = explode(',', $m[2]);
            $varList = '';

            foreach ($vars as $value) {
                if ($value == '*') {
                    foreach ($this->_template->vars as $key => $value2) {
                        if (!in_array('$' . $key, $vars)) {
                            $varList .= '$' . $key . ',';
                        }
                        else {
                            $this->addError('the template function "template' . $m[1] . '" has already this parameter (' . $value . ')', __FILE__, __LINE__, ERROR_FATAL);
                            $varList .= '$' . $key . ',';
                        }
                    }
                }
                else {
                    $varList .= $value . ',';
                }
            }

            $varList = trim($varList, ',');

            $blockFunction = '<?php class template' . $m[1] . ' extends Gcs\Framework\Core\Template\Template{  ' . "\n";
            $blockFunction .= '		public function __construct(){' . "\n";
            $blockFunction .= '		}' . "\n";
            $blockFunction .= '		public function ' . $m[1] . '(' . $varList . '){ ?> ' . "\n";
            $blockFunction .= '			' . $m[3] . "\n";
            $blockFunction .= ' <?php } } ?>';

            return $blockFunction;
        }
        else {
            $this->addError('the class "template' . $m[1] . '" already exists', __FILE__, __LINE__, ERROR_FATAL);

            return '';
        }
    }