{"id":6413,"date":"2019-11-02T14:24:50","date_gmt":"2019-11-02T12:24:50","guid":{"rendered":"https:\/\/u-labs.de\/portal\/?p=6413"},"modified":"2020-02-25T11:29:53","modified_gmt":"2020-02-25T09:29:53","slug":"konfiguration-von-standard-plugins-in-tinymce-auf-connections-6-aendern","status":"publish","type":"post","link":"https:\/\/u-labs.de\/portal\/konfiguration-von-standard-plugins-in-tinymce-auf-connections-6-aendern\/","title":{"rendered":"Konfiguration von Standard-Plugins in TinyMCE auf Connections 6 \u00e4ndern"},"content":{"rendered":"<p>Aktiviert man TinyMCE in Connections 6, wird dieser mit einer Reihe von Plugins ausgeliefert. In der Browser-Konsole kann man sich diese wie folgt anzeigen lassen:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\n   &gt; tinyMCE.editors&#x5B;0].settings.plugins\n     &quot;a11ychecker accessiblecodeview advcode advlist autolink autoresize casechange charmap directionality emoticons formatpainter fullscreen help hr image link linkchecker lists media mediaembed mentions pageembed permanentpen powerpaste searchreplace table textpattern tinymcespellchecker wordcount powerpaste&quot;\n<\/pre>\n<\/div>\n<p>Zwar k\u00f6nnen neue Plugins \u00fcber den <strong>externalPlugins <\/strong>Array in der <strong>config.js<\/strong> Datei eingebunden werden. Doch wie l\u00e4sst sich die Konfiguration eines bereits geladenen Plugins ver\u00e4ndern? <\/p>\n<h2 class=\"wp-block-heading\">Beispiel: PowerPaste-Plugin konfigurieren<\/h2>\n<p>Ein Beispielszenario ist das PowerPaste-Plugin. Standardm\u00e4\u00dfig blendet es beim Einf\u00fcgen von formattierten Texten aus Office-Programmen ein Modal-Dialogfenster ein. Der Nutzer muss ausw\u00e4hlen, ob er die Formatierungen behalten oder entfernen m\u00f6chte.<\/p>\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"478\" height=\"171\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2019\/10\/firefox_2019-10-31_17-27-28.png\" alt=\"\" class=\"wp-image-6414\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2019\/10\/firefox_2019-10-31_17-27-28.png 478w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2019\/10\/firefox_2019-10-31_17-27-28-300x107.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2019\/10\/firefox_2019-10-31_17-27-28-70x25.png 70w\" sizes=\"auto, (max-width: 478px) 100vw, 478px\" \/><\/figure>\n<p>Verantwortlich daf\u00fcr ist die <a href=\"https:\/\/www.tiny.cloud\/docs\/plugins\/powerpaste\/#powerpaste_word_import\" target=\"_blank\" rel=\"nofollow\">powerpaste_word_import <\/a>Eigenschaft, welche automatisch auf <strong>promt<\/strong> steht. Wird sie auf <strong>clean<\/strong> gesetzt, entfernt das Plugin automatisch s\u00e4mtliche Formatierungen &#8211; etwa Farben. Die semantische Struktur des Dokumentes (z.B. \u00dcberschriften) bleibt jedoch erhalten. Somit kann der Nutzer nicht mehr versehentlich die m\u00f6glicherweise ungewollten Formatierungen \u00fcbernehmen.<\/p>\n<h3 class=\"wp-block-heading\">\u00dcberschreiben der Konfiguration<\/h3>\n<p>Die L\u00f6sung ist recht simpel: Wir f\u00fcgen das Plugin einfach ein zweites Mal in den externalPlugins Array hinzu. Laut HCL und TinyMCE-Support wird hierbei das Plugin nicht erneut geladen, sofern der Name identisch ist. Da hier im Regelfall der Pluginname genutzt wird, ist dieser einfach aus der Doku zu ermitteln. Dar\u00fcber hinaus muss als URL die lokale Adresse zur Plugin-Datei angegeben werden. Durch die Installation des EAR-Archives liegen die TinyMCE-Plugins im <strong>\/connections\/resources\/web\/tiny.editors.connections\/tinymce\/plugins\/<\/strong> Ordner. <\/p>\n<p>Das <strong>settings <\/strong>Property erlaubt es, die Eigenschaften des Plugins anzugeben. Dies ist \u00e4quivalent zum <strong>tinymce.init()<\/strong> Aufruf einer Vanilla-Instanz. <\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\nexternalPlugins: &#x5B;\n  {\n    name: &quot;powerpaste&quot;,\n    url: &quot;\/connections\/resources\/web\/tiny.editors.connections\/tinymce\/plugins\/powerpaste\/plugin.min.js&quot;,\n    settings: {\n      powerpaste_word_import: &#039;clean&#039;\n    }\n  }\n]\n<\/pre>\n<\/div>\n<p>Zur besseren \u00dcbersicht definiere ich den Plugin-Ordner meist in einer Variable, die hier zur einfacheren Darstellung entf\u00e4llt. An der grunds\u00e4tzlichen Funktion \u00e4ndert sich nichts. <\/p>\n<p>Nach dem Neustart der Common-Anwendung in der WebSphere Web-Konsole (ggf. noch Browser-Cache leeren), sollten formatierte Word-Inhalte nun bereinigt eingef\u00fcgt werden:<\/p>\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"730\" height=\"688\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2019\/10\/cnx-tinymce-powerpaste-config-modification.gif\" alt=\"\" class=\"wp-image-6415\"\/><\/figure>\n<h2 class=\"wp-block-heading\">Nicht \u00fcberschreibbare Eigenschaften<\/h2>\n<p>Laut Support k\u00f6nnene auf diese Art alle Eigenschaften \u00fcberschrieben werden, die nicht bereits von der Connections-Integration selbst spezifiziert wurden. Betroffen sind folgende Eigenschaften:<\/p>\n<p>skin\r\n\ntarget\r\n\nheight\r\n\nmin_height\r\n\nautoresize_bottom_margin\r\n\nlanguage\r\n\ndirectionality\r\n\nconvert_urls\r\n\nrelative_urls\r\n\nremove_script_host\r\n\nanchor_top\r\n\nanchor_bottom\r\n\ntypeahead_urls\r\n\ncontent_css\r\n\ncontent_style\r\n\nbranding\r\n\nstatusbar\r\n\nmenubar\r\n\ntoolbar\r\n\ntoolbar_drawer\r\n\ntoolbar_sticky\r\n\nformats\r\n\nstyle_formats\r\n\nfont_formats\r\n\ncolor_map\r\n\ntextpattern_patterns\r\n\nplugins\r\n\nexternal_plugins\r\n\ntheme\r\n\nspellchecker_rpc_url\r\n\nspellchecker_on_load\r\n\nspellchecker_language\r\n\nspellchecker_select_languages\r\n\nspellchecker_active\r\n\nlinkchecker_service_url\r\n\nmediaembed_service_url\r\n\nmediaembed_max_width\r\n\nmediaembed_inline_styles\r\n\npaste_as_text\r\n\npowerpaste_allow_local_images\r\n\npowerpaste_block_drop\r\n\nimages_upload_handler\r\n\nextended_valid_elements\r\n\nemoticons_append\r\n\nemoticons_database_url\r\n\nemoticons_database_id\r\n\nmentions_selector\r\n\nmentions_select\r\n\nmentions_fetch\r\n\nmentions_menu_hover\r\n\nmentions_menu_complete\r\n\npermanentpen_properties\r\n\nhelp_tabs\r\n\nsetup<\/p>\n<p>Diese lassen sich <strong>nicht<\/strong> \u00fcberschreiben.<\/p>\n<h2 class=\"wp-block-heading\">Auch auf andere Plugins anwendbar<\/h2>\n<p>Dieses Vorgehen kann f\u00fcr alle Plugins angewendet werden: Bei vorhandenen Plugins wird die Konfiguration zusammengef\u00fchrt. Neue Plugins l\u00e4dt der Editor. Beim \u00dcberschreiben ist zu beachten, dass sich hierdurch nur die Konfiguration \u00fcberschreiben l\u00e4sst &#8211; nicht aber das Plugin selbst! <\/p>\n<p>Besitzt Connections beispielsweise eine \u00e4ltere Version eines Plugins und man f\u00fcgt \u00fcber die URL-Eigenschaft die Adresse einer neueren Version ein, wird <strong>nicht<\/strong> automatisch die neuere Version geladen. Hierzu muss das gesamte TinyMCE-Paket (durch HCL) aktualisiert werden. Zum Anpassen der Standardkonfiguration eignet sich dies jedoch hervorragend: Der Browser muss kein Plugin unn\u00f6tig mehrfach laden. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Aktiviert man TinyMCE in Connections 6, wird dieser mit einer Reihe von Plugins ausgeliefert. In der Browser-Konsole kann man sich diese wie folgt anzeigen lassen: Zwar k\u00f6nnen neue Plugins \u00fcber den externalPlugins Array in der config.js Datei eingebunden werden. Doch wie l\u00e4sst sich die Konfiguration eines bereits geladenen Plugins ver\u00e4ndern? Beispiel: PowerPaste-Plugin konfigurieren Ein Beispielszenario &#8230;<\/p>\n","protected":false},"author":5,"featured_media":6416,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[765,5],"tags":[762,760,759],"class_list":["post-6413","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hcl-connections","category-news","tag-hcl","tag-hcl-connections","tag-ibm-connections"],"_links":{"self":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/6413","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/comments?post=6413"}],"version-history":[{"count":4,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/6413\/revisions"}],"predecessor-version":[{"id":6586,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/6413\/revisions\/6586"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/media\/6416"}],"wp:attachment":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/media?parent=6413"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/categories?post=6413"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/tags?post=6413"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}