<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">Blog posts by Grzegorz Wiecheć</title><link href="http://world.optimizely.com" /><updated>2025-04-01T19:08:36.0000000Z</updated><id>https://world.optimizely.com/blogs/grzegorz-wiechec/</id> <generator uri="http://world.optimizely.com" version="2.0">Optimizely World</generator> <entry><title>TinyMCE 7 editor upgrade</title><link href="https://world.optimizely.com/blogs/grzegorz-wiechec/dates/2025/3/tinymce-7-editor-upgrade2/" /><id>&lt;p&gt;Today we released a new version of the TinyMCE editor. The &lt;a title=&quot;TinyMCE Nuget package&quot; href=&quot;https://nuget.optimizely.com/package/?id=EPiServer.CMS.TinyMce&amp;amp;v=5.0.0&quot;&gt;EPiServer.CMS.TinyMce 5.0.0&lt;/a&gt; package includes integration with the latest version of the&amp;nbsp;&lt;a title=&quot;TinyMCE documentation &quot; href=&quot;https://www.tiny.cloud/docs/tinymce/7/&quot;&gt;TinyMCE 7&lt;/a&gt; library.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/link/2295ce469d7948808fe93d6fb258b04c.aspx&quot; alt=&quot;Optimizely TinyMCE 7 overview&quot; width=&quot;797&quot; height=&quot;718&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Upgrade information&lt;/h2&gt;
&lt;p&gt;In this release we haven&#39;t added new functionalities, it&#39;s only the TinyMCE library migration. The package has been released as version 5 and not a continuation of version 4, because the TinyMCE library has minor breaking changes.&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;strong&gt;But for most Optimizely installations using the 4.x version integration you won&#39;t need to make any code changes when upgrading.&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;There are no server-side configuration changes. Adding plugins and setting up the toolbar remains unchanged. All editor configuration changes that need to be made are described in the TinyMCE &lt;a href=&quot;https://www.tiny.cloud/docs/tinymce/latest/migration-from-6x/&quot;&gt;migration documentation&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The TinyMCE 6 and TinyMCE 7 API are almost the same.&lt;/p&gt;</id><updated>2025-04-01T19:08:36.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Create custom folder type in Edit Mode</title><link href="https://gregwiechec.com/?p=2151" /><id>&lt;p&gt;Content Folders, which are located in assets pane gadget or multichannel content gadget, allow you to add any type of block or folders. But sometimes, for specific folders, we would like to store only one type of content and additional folders used for example for clustering or grouping. In this article, I will describe how [&amp;#8230;]&lt;/p&gt;
&lt;p&gt;The post &lt;a rel=&quot;nofollow&quot; href=&quot;https://gregwiechec.com/2024/08/create-custom-folder-type-in-edit-mode/&quot;&gt;Create custom folder type in Edit Mode&lt;/a&gt; appeared first on &lt;a rel=&quot;nofollow&quot; href=&quot;https://gregwiechec.com&quot;&gt;Grzegorz Wiecheć&lt;/a&gt;.&lt;/p&gt;
</id><updated>2024-08-28T17:59:43.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Copying property values part 2</title><link href="https://gregwiechec.com/?p=2139" /><id>&lt;p&gt;After publishing my last article about copying property values to other language versions, I received constructive feedback on how could I change the script. In this article I would like to describe changes that will improve the way the add-on works. The previous version had some significant limitations: it was not possible to change a [&amp;#8230;]&lt;/p&gt;
&lt;p&gt;The post &lt;a rel=&quot;nofollow&quot; href=&quot;https://gregwiechec.com/2024/06/copying-property-values-part-2/&quot;&gt;Copying property values part 2&lt;/a&gt; appeared first on &lt;a rel=&quot;nofollow&quot; href=&quot;https://gregwiechec.com&quot;&gt;Grzegorz Wiecheć&lt;/a&gt;.&lt;/p&gt;
</id><updated>2024-06-18T20:43:20.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Copying property values</title><link href="https://gregwiechec.com/?p=2104" /><id>&lt;p&gt;In this article I&amp;#8217;d like to show simple Edit Mode extension for copying property values to other language versions. In one of my previous blogposts about reverting property to a specific version I described how to update property value using property from another version. Today I&amp;#8217;d like to show the oposite scenario. We would like [&amp;#8230;]&lt;/p&gt;
&lt;p&gt;The post &lt;a rel=&quot;nofollow&quot; href=&quot;https://gregwiechec.com/2024/06/copying-property-values/&quot;&gt;Copying property values&lt;/a&gt; appeared first on &lt;a rel=&quot;nofollow&quot; href=&quot;https://gregwiechec.com&quot;&gt;Grzegorz Wiecheć&lt;/a&gt;.&lt;/p&gt;
</id><updated>2024-06-08T10:22:05.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>ExtendedCms.TinyMceEnhancements – marco support</title><link href="https://gregwiechec.com/?p=2079" /><id>&lt;p&gt;This article will be continuation of the previous series about TinyMCE extensions. Today I would like to describe an add-on that allows inserting dynamic fields (macro) into TinyMCE editor that are replaced with custom value when rendering the page. Macro support In the image above, when the page is rendered, the %%%USER_NAME%%% field will be [&amp;#8230;]&lt;/p&gt;
&lt;p&gt;The post &lt;a rel=&quot;nofollow&quot; href=&quot;https://gregwiechec.com/2024/06/extendedcms-tinymceenhancements-marco-support/&quot;&gt;ExtendedCms.TinyMceEnhancements &amp;#8211; marco support&lt;/a&gt; appeared first on &lt;a rel=&quot;nofollow&quot; href=&quot;https://gregwiechec.com&quot;&gt;Grzegorz Wiecheć&lt;/a&gt;.&lt;/p&gt;
</id><updated>2024-06-03T07:33:56.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>ExtendedCms.TinyMceEnhancements – serwer side webp support</title><link href="https://gregwiechec.com/?p=2067" /><id>&lt;p&gt;Today I will introduce another small feature of TinyMceEnhancements plugin. The functionality is used to automatically detect whether a browser supports the webp format. Using extension With this option, plug-ins such as imageSharp can change the image format from JPG to web. The extension uses the GeneratedUrl event from the IContentUrlGeneratorEvents service, which is available [&amp;#8230;]&lt;/p&gt;
&lt;p&gt;The post &lt;a rel=&quot;nofollow&quot; href=&quot;https://gregwiechec.com/2024/05/extendedcms-tinymceenhancements-serwer-side-webp-support/&quot;&gt;ExtendedCms.TinyMceEnhancements &amp;#8211; serwer side webp support&lt;/a&gt; appeared first on &lt;a rel=&quot;nofollow&quot; href=&quot;https://gregwiechec.com&quot;&gt;Grzegorz Wiecheć&lt;/a&gt;.&lt;/p&gt;
</id><updated>2024-05-22T21:46:53.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>ExtendedCms.TinyMceEnhancements – support for video tag</title><link href="https://gregwiechec.com/?p=2057" /><id>&lt;p&gt;In my previous post I showed Full Width for TinyMCE. In this article I will describe another feature for ExtendedCms.TinyMceEnhancements addon, supporting video tag. Optimizely integration supports adding links, images and content from Assets Pane. With TinyMceEnhancements you can also add video files. Plugin will use video tag when files has mp4, webm or ogg [&amp;#8230;]&lt;/p&gt;
&lt;p&gt;The post &lt;a rel=&quot;nofollow&quot; href=&quot;https://gregwiechec.com/2024/02/enhancements-for-tinymce-support-for-video-tag/&quot;&gt;ExtendedCms.TinyMceEnhancements – support for video tag&lt;/a&gt; appeared first on &lt;a rel=&quot;nofollow&quot; href=&quot;https://gregwiechec.com&quot;&gt;Grzegorz Wiecheć&lt;/a&gt;.&lt;/p&gt;
</id><updated>2024-02-19T08:28:31.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Enhancements for TinyMCE – Full WidthTinyMCE</title><link href="https://gregwiechec.com/?p=2048" /><id>&lt;p&gt;Recently I introduced TinyMceEnhancements addon for Optimizely TinyMCE integration. Today I&amp;#8217;d like to introduce another enhancement Full Width TinyMCE. All Optimizely properties have very similar width. This width is suitable for fields such as ContentReference or short text, but often the TinyMCE property used to store the main content of an article contains much more [&amp;#8230;]&lt;/p&gt;
&lt;p&gt;The post &lt;a rel=&quot;nofollow&quot; href=&quot;https://gregwiechec.com/2024/02/enhancements-for-tinymce-full-widthtinymce/&quot;&gt;Enhancements for TinyMCE &amp;#8211; Full WidthTinyMCE&lt;/a&gt; appeared first on &lt;a rel=&quot;nofollow&quot; href=&quot;https://gregwiechec.com&quot;&gt;Grzegorz Wiecheć&lt;/a&gt;.&lt;/p&gt;
</id><updated>2024-02-12T09:13:47.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Enhancements for TinyMCE – TinyMceEnhancements plugin</title><link href="https://gregwiechec.com/?p=2031" /><id>&lt;p&gt;In this article I&amp;#8217;d like to describe my new plugin for TinyMCE integration. The TinyMceEnhancements addon contains set of improvements for Optimizely TinyMCE integration. It focus on features related with images used in the HTML editor. Using this plugin you can modify the attributes of images, limit the size and set ALT text. Managing image [&amp;#8230;]&lt;/p&gt;
&lt;p&gt;The post &lt;a rel=&quot;nofollow&quot; href=&quot;https://gregwiechec.com/2024/02/enhancements-for-tinymce-tinymceenhancements-plugin/&quot;&gt;Enhancements for TinyMCE &amp;#8211; TinyMceEnhancements plugin&lt;/a&gt; appeared first on &lt;a rel=&quot;nofollow&quot; href=&quot;https://gregwiechec.com&quot;&gt;Grzegorz Wiecheć&lt;/a&gt;.&lt;/p&gt;
</id><updated>2024-02-02T17:08:37.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Copying inline blocks when translating pages</title><link href="https://gregwiechec.com/?p=2018" /><id>&lt;p&gt;A few versions ago, Optimizely CMS added inline blocks functionality. This is a very useful feature which enables the Editor to create dynamic pages using ContentArea. The publishing cycle of blocks is related to the page on which they are used, so editing has become very easy. In this article, I wanted to describe a [&amp;#8230;]&lt;/p&gt;
&lt;p&gt;The post &lt;a rel=&quot;nofollow&quot; href=&quot;https://gregwiechec.com/2023/12/copying-inline-blocks-when-translating-pages/&quot;&gt;Copying inline blocks when translating pages&lt;/a&gt; appeared first on &lt;a rel=&quot;nofollow&quot; href=&quot;https://gregwiechec.com&quot;&gt;Grzegorz Wiecheć&lt;/a&gt;.&lt;/p&gt;
</id><updated>2023-12-13T21:10:02.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Date property editor</title><link href="https://gregwiechec.com/?p=1998" /><id>&lt;p&gt;The Optimizely CMS has built-in DateTime property. When editing, the Editor selects both the date and the time. Sometimes we would like to configure only the date selection, e.g. for calendar events, employee-related dates, article release date etc. Therefore, I have prepared a simple date property editor. Below is the default DateTime property. The difference [&amp;#8230;]&lt;/p&gt;
&lt;p&gt;The post &lt;a rel=&quot;nofollow&quot; href=&quot;https://gregwiechec.com/2023/12/date-property/&quot;&gt;Date property editor&lt;/a&gt; appeared first on &lt;a rel=&quot;nofollow&quot; href=&quot;https://gregwiechec.com&quot;&gt;Grzegorz Wiecheć&lt;/a&gt;.&lt;/p&gt;
</id><updated>2023-12-09T11:37:50.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Update related content</title><link href="https://gregwiechec.com/?p=1993" /><id>&lt;p&gt;In this article, I will show simple code that allow to replace linked content with other content selected by the Editor. When deleting content whose references are used by other content, the Editor is shown a dialog box with a list of references. The Editor has the option to visit the page or block where [&amp;#8230;]&lt;/p&gt;
&lt;p&gt;The post &lt;a rel=&quot;nofollow&quot; href=&quot;https://gregwiechec.com/2023/12/update-related-content/&quot;&gt;Update related content&lt;/a&gt; appeared first on &lt;a rel=&quot;nofollow&quot; href=&quot;https://gregwiechec.com&quot;&gt;Grzegorz Wiecheć&lt;/a&gt;.&lt;/p&gt;
</id><updated>2023-12-08T22:46:45.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Redesign of Admin Mode Content Types</title><link href="https://world.optimizely.com/blogs/grzegorz-wiechec/dates/2023/9/redesign-of-admin-mode-content-types/" /><id>&lt;p&gt;Recently, in &lt;a href=&quot;https://nuget.optimizely.com/package/?id=EPiServer.CMS.UI&amp;amp;v=12.23.0&quot;&gt;EPiServer.CMS.UI 12.23.0&lt;/a&gt;, we&amp;rsquo;ve updated designs for the content types edit view in Admin Mode.&lt;/p&gt;
&lt;p&gt;It&#39;s important to mention, that no functionality has been removed, and there are no breaking changes as a result of these updates, functionally everything is working in the same way. We have just reorganized the layout to be more user friendly and consistent with other modules.&lt;/p&gt;
&lt;p&gt;Content types have a lot functionality to configure. We grouped them into a few clear sections: Properties, Details, Default Values, Child Content Types, Permissions and Settings. I will describe them one by one.&lt;/p&gt;
&lt;h2&gt;Properties&lt;/h2&gt;
&lt;p&gt;The properties section displays a list of properties that belongs to the edited content type. It allows to search and filter properties. From the list, Administrator can create and edit properties.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/link/cea6d57949c042b094a277be79492d95.aspx&quot; width=&quot;1076&quot; height=&quot;604&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Details&lt;/h2&gt;
&lt;p&gt;The &quot;details&quot; section contains basic, non-editable information about the content type, like GUID, created date and model type name. This section allows you to check database related fields and helps with troubleshooting.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/link/51f788fd302a4dd69e144b12d0488717.aspx&quot; width=&quot;1078&quot; height=&quot;328&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Default values&lt;/h2&gt;
&lt;p&gt;The &quot;Default Values&quot; section allows you to configure default settings for pages, like sort order or publishing rules. This section is available only for Page Types.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/link/869f5e1ea68f47839cf046edaabf880c.aspx&quot; width=&quot;1082&quot; height=&quot;608&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;&lt;/h2&gt;
&lt;h2&gt;Child content types&lt;/h2&gt;
&lt;p&gt;The Child content types section allows you to define which content type instances can be created as children of the content type.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/link/ca6da582f9164d76b1441d0a312ad76b.aspx&quot; width=&quot;1090&quot; height=&quot;613&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;&lt;/h2&gt;
&lt;h2&gt;Permissions&lt;/h2&gt;
&lt;p&gt;The Permission section allows you to configure access rights to the content type for specific groups and users.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/link/33cc114ee1b74ec68685d830f07e9111.aspx&quot; width=&quot;1089&quot; height=&quot;612&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Settings&lt;/h2&gt;
&lt;p&gt;The Settings section allows you to configure basic content type properties. Some properties cannot be set when they were localized.&lt;/p&gt;
&lt;p&gt;In this section, Administrators can also reset the content type (for content types created from code) or Delete the content type (for content types creted from Admin mode).&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/link/61f9f0cd41d34726a911341320b41075.aspx&quot; width=&quot;1090&quot; height=&quot;613&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Additional functionality&lt;/h2&gt;
&lt;p&gt;As I mentioned at the beginning, no functionality was removed, but a few small features related to editing properties were added.&lt;/p&gt;
&lt;h3&gt;List properties&lt;/h3&gt;
&lt;p&gt;Since some time, creating list properties was available from code (you can read more about list properties &lt;a href=&quot;/link/8ba16a78985e4446bf36669a38308eb4.aspx&quot;&gt;here&lt;/a&gt;). Now it&#39;s also available from Admin mode. To create a list property, an Administrator has to enable the &quot;List&quot; checkbox.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/link/f52bb8a83f6c45aba3e974564c915180.aspx&quot; width=&quot;427&quot; height=&quot;438&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Reordering properties&lt;/h3&gt;
&lt;p&gt;In the previous version, reordering properties was done with the &quot;Sort index&quot; input field on property details form. Administrator can still use this functionality, but now properties can be reordered in easier way by using drag &amp;amp; drop. Additionally, this functionality allows to change the group of the property.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/link/0e0d966e7b51422495e60d23bd1b686e.aspx&quot; width=&quot;446&quot; height=&quot;237&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Type selection&lt;/h3&gt;
&lt;p&gt;Before, the property definition type selector was a long list of types. Now, in the current version, types are grouped with additional dropdown. For example for Text group we can select Long string, String or XHTML.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/link/17a39285bc1245b5b348ac62869d0176.aspx&quot; width=&quot;491&quot; height=&quot;372&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Settings&lt;/h3&gt;
&lt;p&gt;On the properties edit form, we now allow to configure some of the custom property settings.&lt;/p&gt;
&lt;h4&gt;Allowed types&lt;/h4&gt;
&lt;p&gt;For property types related with ContentReference type, like ContentArea, Content Item etc., an administrator can configure allowed and restricted types.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/link/1b2853fcc70e4624a438c5ca43ead385.aspx&quot; width=&quot;471&quot; height=&quot;365&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;Dropdown lists&lt;/h4&gt;
&lt;p&gt;We changed the layout for dropdown lists to be more user friendly. There are no nested dialogs anymore and items can be configured directly from property edit form.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/link/1a82568cd4824fc8b3e48b1e94d414bd.aspx&quot; width=&quot;473&quot; height=&quot;309&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;Numbers&lt;/h4&gt;
&lt;p&gt;For number property types (Integer and Floats), an Administrator can configure value range by setting minimum and maximum values. Range can be also configured for date properties.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/link/86a52ed757eb4916955a931f03d784ed.aspx&quot; width=&quot;477&quot; height=&quot;291&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;String&lt;/h4&gt;
&lt;p&gt;For String property types, an Administrator can configure a maximum length as well as input regular expression validation rules.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/link/52a958903bf84b6dae91ea5bdc81200f.aspx&quot; width=&quot;469&quot; height=&quot;299&quot; /&gt;&lt;/p&gt;</id><updated>2023-10-08T06:43:21.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Extended SelectionFactory</title><link href="https://gregwiechec.com/?p=1981" /><id>&lt;p&gt;In one of my previous articles I described new Color Picker widget. Today I&amp;#8217;d like to show another simple property. I prepared extended version of the SelectOneAttribute. This extensions allows developers to configure SelectionFactory, that returns items with icons and CSS classess. This allows us to visually emphasize the importance of values in the list, [&amp;#8230;]&lt;/p&gt;
&lt;p&gt;The post &lt;a rel=&quot;nofollow&quot; href=&quot;https://gregwiechec.com/2023/06/extended-selectionfactory/&quot;&gt;Extended SelectionFactory&lt;/a&gt; appeared first on &lt;a rel=&quot;nofollow&quot; href=&quot;https://gregwiechec.com&quot;&gt;Grzegorz Wiecheć&lt;/a&gt;.&lt;/p&gt;
</id><updated>2023-06-07T18:37:54.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Content Bulk Edit</title><link href="https://gregwiechec.com/?p=1966" /><id>&lt;p&gt;Bulk Edit is a plugin that allows to make changes to more than one Content at the same time. This can save time by simultaneously updating multiple properties that share the same information. This can be useful when a new property has been added to a ContentType and a default value needs to be assigned, [&amp;#8230;]&lt;/p&gt;
&lt;p&gt;The post &lt;a rel=&quot;nofollow&quot; href=&quot;https://gregwiechec.com/2023/06/content-bulk-edit/&quot;&gt;Content Bulk Edit&lt;/a&gt; appeared first on &lt;a rel=&quot;nofollow&quot; href=&quot;https://gregwiechec.com&quot;&gt;Grzegorz Wiecheć&lt;/a&gt;.&lt;/p&gt;
</id><updated>2023-06-05T08:27:05.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Image preview</title><link href="https://gregwiechec.com/?p=1945" /><id>&lt;p&gt;In one of my recent articles I described the Media Report admin mode plugin. Today I will also continue media topic, but this time I will focus on Edit Mode. Sometimes site contain a lot of similar iamges. When adding an image to an image property or the a Content Area it&amp;#8217;s difficult to determinate [&amp;#8230;]&lt;/p&gt;
&lt;p&gt;The post &lt;a rel=&quot;nofollow&quot; href=&quot;https://gregwiechec.com/2023/04/image-preview/&quot;&gt;Image preview&lt;/a&gt; appeared first on &lt;a rel=&quot;nofollow&quot; href=&quot;https://gregwiechec.com&quot;&gt;Grzegorz Wiecheć&lt;/a&gt;.&lt;/p&gt;
</id><updated>2023-04-30T20:57:03.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Content Area default display options</title><link href="https://gregwiechec.com/?p=1917" /><id>&lt;p&gt;Content Area property items allows to select Display Options. Display options let Editor specify how item should be renderred in the view mode. When adding content to a Content Area, we usually know which display option will be the best choice based on content type. For example our ButtonBlock will be best displayed as Narrow [&amp;#8230;]&lt;/p&gt;
&lt;p&gt;The post &lt;a rel=&quot;nofollow&quot; href=&quot;https://gregwiechec.com/2023/04/content-area-default-display-options/&quot;&gt;Content Area default display options&lt;/a&gt; appeared first on &lt;a rel=&quot;nofollow&quot; href=&quot;https://gregwiechec.com&quot;&gt;Grzegorz Wiecheć&lt;/a&gt;.&lt;/p&gt;
</id><updated>2023-04-21T11:01:34.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Media report</title><link href="https://gregwiechec.com/?p=1901" /><id>&lt;p&gt;I recently prepared a plugin for Admin Mode that shows a list of all Content Media available on the system. The media report displays a list with useful statistics about the files and allows to sort and filter the results. In the list you can find the following information: Name and thumbnail &amp;#8211; thumbnail with [&amp;#8230;]&lt;/p&gt;
&lt;p&gt;The post &lt;a rel=&quot;nofollow&quot; href=&quot;https://gregwiechec.com/2023/04/media-report/&quot;&gt;Media report&lt;/a&gt; appeared first on &lt;a rel=&quot;nofollow&quot; href=&quot;https://gregwiechec.com&quot;&gt;Grzegorz Wiecheć&lt;/a&gt;.&lt;/p&gt;
</id><updated>2023-04-13T16:54:32.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Another take on ColorPicker property</title><link href="https://gregwiechec.com/?p=1884" /><id>&lt;p&gt;Over the years, several articles have been written about the ColorPicker property editor. I also decided to look into this topic. I wanted to create something modern, simple and configurable. That&amp;#8217;s why I used a simple HTML input color wrapped in a dijit widget. Since there was very little code, I didn&amp;#8217;t create a nuget [&amp;#8230;]&lt;/p&gt;
&lt;p&gt;The post &lt;a rel=&quot;nofollow&quot; href=&quot;https://gregwiechec.com/2023/03/another-take-on-colorpicker-property/&quot;&gt;Another take on ColorPicker property&lt;/a&gt; appeared first on &lt;a rel=&quot;nofollow&quot; href=&quot;https://gregwiechec.com&quot;&gt;Grzegorz Wiecheć&lt;/a&gt;.&lt;/p&gt;
</id><updated>2023-03-03T09:46:48.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>TinyMCE editor upgrade</title><link href="https://world.optimizely.com/blogs/grzegorz-wiechec/dates/2022/12/tinymce-editor-upgrade/" /><id>&lt;p&gt;I&amp;rsquo;m happy to announce that, after a &lt;a href=&quot;/link/b4a1b4e98369466b8888643d30820c6f.aspx&quot;&gt;quite long time&lt;/a&gt;, we finally upgraded the TinyMCE editor. The new &lt;a href=&quot;https://nuget.optimizely.com/package/?id=EPiServer.CMS.TinyMce&quot;&gt;EPiServer.CMS.TinyMce&lt;/a&gt; package contains integration with latest version of the &lt;a href=&quot;https://www.tiny.cloud/docs/tinymce/6/&quot;&gt;TinyMCE 6 library&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/link/72d73554232345b7a9af37804af0bb2a.aspx&quot; width=&quot;632&quot; alt=&quot;&quot; height=&quot;604&quot; /&gt;&lt;/p&gt;
&lt;p&gt;In this release we haven&#39;t added new functionalities, but have focused on the library migration.&lt;/p&gt;
&lt;h2&gt;Configuring editor&lt;/h2&gt;
&lt;p&gt;We have not changed the way TinyMCE is configured. We are still using &lt;a href=&quot;https://docs.developers.optimizely.com/content-cloud/v12.0.0-content-cloud/docs/configuration-api&quot;&gt;TinyMceConfiguration option&lt;/a&gt;:&lt;/p&gt;
&lt;pre class=&quot;language-csharp&quot;&gt;&lt;code&gt;context.Services.Configure&amp;lt;TinyMceConfiguration&amp;gt;(config =&amp;gt;
{
    // Add content CSS to the default settings.
    config.Default()
        .ContentCss(&quot;/static/css/editor.css&quot;);

    // Limit the block formats for the MainBody property of an ArticlePage.
    config.For&amp;lt;ArticlePage&amp;gt;(t =&amp;gt; t.MainBody)
        .BlockFormats(&quot;Paragraph=p;Header 1=h1;Header 2=h2;Header 3=h3&quot;);
});
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;There are no new extension methods added for our integration, but there were significant breaking changes in the TinyMCE library. All custom plugins have to be updated. To do that you should follow the migration guide &lt;a href=&quot;https://www.tiny.cloud/docs/migration-from-4x/&quot;&gt;migration from 4x&lt;/a&gt;, &lt;a href=&quot;https://www.tiny.cloud/docs/tinymce/6/migration-from-5x&quot;&gt;migration from 5x&lt;/a&gt; and &lt;a href=&quot;https://www.tiny.cloud/blog/how-to-migrate-from-tinymce-4-to-tinymce-5/&quot;&gt;how to migrate from tinymce 4 to tinymce 5&lt;/a&gt;. Please note that TinyMCE 5 and TinyMCE 6 API are very similar. Version 6 mainly removed obsolete methods.&lt;/p&gt;
&lt;p&gt;In the documentation above you can for example find that some plugins are not free anymore (&lt;span&gt;&lt;a href=&quot;https://www.tiny.cloud/docs/plugins/opensource/imagetools/&quot;&gt;Image tools&lt;/a&gt;, &lt;a href=&quot;https://www.tiny.cloud/docs/plugins/opensource/spellchecker/&quot;&gt;Spellchecker&lt;/a&gt;, &lt;a href=&quot;https://www.tiny.cloud/docs/tinymce/6/6.0-release-notes-core-changes/#removed-or-deprecated-plugins-table-of-contents&quot;&gt;Table of Contents&lt;/a&gt;) and some were move to the core package (print, paste, colorpicker, contextmenu, textcolor). Those plugins should be removed from TinyMCE configuration if they were used.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;All custom plugins code has to be revisited. There is not jQuery support anymore and there are API changes around registering button, icons, menus, etc. The latest documentation version about creating a custom plugin can be found &lt;a href=&quot;https://www.tiny.cloud/docs/tinymce/6/creating-a-plugin/&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Built-in TinyMCE spell checker&lt;/h2&gt;
&lt;p&gt;From EPiServer.CMS.TinyMce 4.0.0, the &lt;a href=&quot;https://nuget.optimizely.com/package/?id=EPiServer.TinyMCESpellChecker&quot;&gt;EPiServer.TinyMCESpellChecker&lt;/a&gt; plugin will be included in core page. The EPiServer.TinyMCESpellChecker should be uninstalled since it won&#39;t be available as a separate package for EPiServer.CMS.TinyMce 4 and above.&lt;/p&gt;

&lt;h2&gt;Paste plugin&lt;/h2&gt;
&lt;p&gt;The standard paste plugin is now part of &lt;a href=&quot;https://www.tiny.cloud/docs/tinymce/6/migration-from-5x/#plugins-paste&quot;&gt;TinyMCE core package&lt;/a&gt;. The paste functionality no longer supports pasting from Word. When pasting from Word, the &lt;a href=&quot;https://www.tiny.cloud/docs/tinymce/6/introduction-to-powerpaste/&quot;&gt;PowerPaste&lt;/a&gt; premium plugin should be used.&lt;/p&gt;</id><updated>2022-12-20T14:06:28.0000000Z</updated><summary type="html">Blog post</summary></entry></feed>