Пример #1
0
 /**
  * Compiles the given snippet block if the content parameter is filled.
  * @param                                $params
  * @param                                $content
  * @param   Smarty_Internal_TemplateBase $template
  * @return  string
  */
 public static function compileSnippetBlock($params, $content, Smarty_Internal_TemplateBase $template = null)
 {
     if ($content === null) {
         return '';
     }
     if (empty($content) && !empty($params['name'])) {
         $content = '#' . $params['name'] . '#';
     }
     if (!empty($params['tag']) && !empty($params['namespace'])) {
         if (!empty($params['class'])) {
             $params['class'] .= ' ' . str_replace('/', '_', $params['namespace']);
         } else {
             $params['class'] = str_replace('/', '_', $params['namespace']);
         }
     }
     if (!empty($params['tag'])) {
         $params['tag'] = strtolower($params['tag']);
         //if (!empty($params['class'])) {
         //    $params['class'] .= ' shopware_studio_snippet';
         //} else {
         //    $params['class'] = 'shopware_studio_snippet';
         //}
         $attr = '';
         foreach ($params as $key => $param) {
             if (in_array($key, array('name', 'tag', 'assign', 'name', 'namespace', 'default', 'force'))) {
                 continue;
             }
             $attr .= ' ' . $key . '="' . htmlentities($param, ENT_COMPAT, mb_internal_encoding(), false) . '"';
         }
         $content = htmlentities($content, ENT_COMPAT, mb_internal_encoding(), false);
         $content = "<{$params['tag']}{$attr}>" . $content . "</{$params['tag']}>";
     }
     if (isset($params['assign'])) {
         if ($template !== null) {
             $template->assign($params['assign'], $content);
         }
         return '';
     } else {
         return $content;
     }
 }