public static function fromData($tagName, $data) { // {{{ $tag = null; switch ($data['type']) { case 'Inline': $tag = new ToolbarInline(); $tag->setSyntax($data['syntax']); break; case 'Block': $tag = new ToolbarBlock(); $tag->setSyntax($data['syntax']); break; case 'LineBased': $tag = new ToolbarLineBased(); $tag->setSyntax($data['syntax']); break; case 'Picker': $tag = new ToolbarPicker(); break; case 'Separator': $tag = new ToolbarSeparator(); break; case 'CkOnly': $tag = new ToolbarCkOnly($tagName); break; case 'Fullscreen': $tag = new ToolbarFullscreen(); break; case 'TextareaResize': $tag = new ToolbarTextareaResize(); break; case 'Helptool': $tag = new ToolbarHelptool(); break; case 'FileGallery': $tag = new ToolbarFileGallery(); break; case 'Wikiplugin': if (!isset($data['plugin'])) { $data['plugin'] = ''; } $tag = ToolbarWikiplugin::fromName('wikiplugin_' . $data['plugin']); if (empty($tag)) { $tag = new ToolbarWikiplugin(); } break; default: $tag = new ToolbarInline(); break; } $tag->setLabel($data['label'])->setWysiwygToken($data['token'])->setIconName(!empty($data['iconname']) ? $data['iconname'] : 'help')->setIcon(!empty($data['icon']) ? $data['icon'] : 'img/icons/shading.png')->setType($data['type']); return $tag; }