<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">Blog posts by Alf Nilsson</title><link href="https://world.optimizely.com/blogs/Alf-Nilsson/" /><updated>2020-04-03T07:00:46.0000000Z</updated><id>https://world.optimizely.com/blogs/Alf-Nilsson/</id><generator uri="https://world.optimizely.com/blogs/Alf-Nilsson/" version="2.0">Optimizely World</generator><entry><title>Support for Block as Property in the Episerver Content Delivery API</title><link href="http://talk.alfnilsson.se/?p=3047" /><id>http://talk.alfnilsson.se/?p=3047</id><published>2019-05-27T08:00:54.0000000Z</published><updated>2019-05-27T09:01:27.0000000Z</updated><author><name>alf.a.nilsson@tietoevry.com</name></author><category term="Blog post" /><summary type="html">Since Episerver 7, CMS has support to add Blocks as Properties. This helps you to group Properties easier as well as reusing code. Unfortunately the Episerver Content Delivery API does not support these blocks. They are simply not serialized into the JSON response. In my example I will use the StartPage from the Alloy Templates [&amp;#8230;]</summary></entry><entry><title>Support for Block as Property in the Episerver Content Delivery API</title><link href="http://talk.alfnilsson.se/?p=3047" /><id>http://talk.alfnilsson.se/?p=3047</id><published>2019-05-27T06:00:54.0000000Z</published><updated>2020-04-03T07:00:46.0000000Z</updated><author><name>alf.a.nilsson@tietoevry.com</name></author><category term="Blog post" /><summary type="html">Since Episerver 7, CMS has support to add Blocks as Properties. This helps you to group Properties easier as well as reusing code. Unfortunately the Episerver Content Delivery API does not support these blocks. They are simply not serialized into the JSON response. In my example I will use the StartPage from the Alloy Templates [&amp;#8230;]</summary></entry><entry><title>Prevent Episerver ContentDelivery to hijack all application/json requests</title><link href="http://talk.alfnilsson.se/?p=3038" /><id>http://talk.alfnilsson.se/?p=3038</id><published>2019-02-26T09:31:29.0000000Z</published><updated>2019-02-26T10:01:24.0000000Z</updated><author><name>alf.a.nilsson@tietoevry.com</name></author><category term="Blog post" /><summary type="html">In one of my projects where we are using the Content Delivery API from Episerver, we also have some custom logic in the templates for some Ajax posting. A JavaScript makes a POST request to the current url and expects a json response, therefore the request has an Accept Header with the value: application/json. Issue [&amp;#8230;]</summary></entry><entry><title>Getting a previewable property value with UIHint.PreviewableText</title><link href="http://talk.alfnilsson.se/?p=3032" /><id>http://talk.alfnilsson.se/?p=3032</id><published>2018-10-01T16:34:24.0000000Z</published><updated>2018-10-01T17:01:22.0000000Z</updated><author><name>alf.a.nilsson@tietoevry.com</name></author><category term="Blog post" /><summary type="html">You might have seen that the field &amp;#8220;Name in URL&amp;#8221; first gives you the value and the editor needs to click &amp;#8220;change&amp;#8221; to edit it. You can also accomplish this on your normal string properties by using the UI Hint &amp;#8220;previewabletext&amp;#8221; (also found as the constant UIHint.PreviewableText). [Display(Name = "My Property")] [UIHint(UIHint.PreviewableText)] public virtual string [&amp;#8230;]</summary></entry><entry><title>Adding ImageVault buttons to TinyMCE 2 in Episerver</title><link href="http://talk.alfnilsson.se/?p=3028" /><id>http://talk.alfnilsson.se/?p=3028</id><published>2018-07-25T13:09:30.0000000Z</published><updated>2018-07-25T14:01:28.0000000Z</updated><author><name>alf.a.nilsson@tietoevry.com</name></author><category term="Blog post" /><summary type="html">With the new TinyMCE version in Episerver 11, there are some new changes on how to set up your toolbars. Episerver has documented it quite well and how you set it up in the back end is quite similar to how you would set it up using TinyMCE&amp;#8217;s JavaScript API. But it took a while [&amp;#8230;]</summary></entry><entry><title>Tweaking and extending serialization from Episerver Content Delivery API</title><link href="http://talk.alfnilsson.se/?p=3016" /><id>http://talk.alfnilsson.se/?p=3016</id><published>2018-04-24T23:51:55.0000000Z</published><updated>2018-04-25T00:01:24.0000000Z</updated><author><name>alf.a.nilsson@tietoevry.com</name></author><category term="Blog post" /><summary type="html">As you&amp;#8217;ve probably heard, Episerver is creating a Headless CMS API called &amp;#8220;Content Delivery API&amp;#8220;. With this, you can get, list and search (requires Episerver Find) content from Episerver in a JSON format. Matthew Mols has some blog posts about how to get started: Getting started with the Episerver Content Delivery API and Add HTTP Caching to [&amp;#8230;]</summary></entry><entry><title>Differences between DeletingContent/DeletedContent between emptying trash and deleting content</title><link href="http://talk.alfnilsson.se/?p=3008" /><id>http://talk.alfnilsson.se/?p=3008</id><published>2018-03-21T13:48:00.0000000Z</published><updated>2018-03-21T14:01:34.0000000Z</updated><author><name>alf.a.nilsson@tietoevry.com</name></author><category term="Blog post" /><summary type="html">We stumbled upon an area where the DeletingContent and DeletedContent events slightly differently when you&amp;#8217;re deleting content through the IContentRepository, manually emptying the trash and the scheduled job &amp;#8220;Automatic Emptying of Trash&amp;#8221;. Let&amp;#8217;s look at what the DeletingContent and DeletedContent events are. There are multiple articles and blog posts that mention this but simply these [&amp;#8230;]</summary></entry><entry><title>Automatic visual tests with Episerver: Prepare your conditions with Content Providers</title><link href="http://talk.alfnilsson.se/?p=2986" /><id>http://talk.alfnilsson.se/?p=2986</id><published>2018-03-12T16:50:11.0000000Z</published><updated>2018-03-12T17:01:26.0000000Z</updated><author><name>alf.a.nilsson@tietoevry.com</name></author><category term="Blog post" /><summary type="html">In my previous post I talked about how to set up automatic visual tests &amp;#8211; and for a time, it was good. Then editors and other team members starts changing the content and your tests starts showing deviations based on content changes rather than code changes. Yes, you can set up rules on not changing [&amp;#8230;]</summary></entry><entry><title>Workaround that ImageVault.EPiServer.UI 5.5.36 does not support non-standard ports</title><link href="http://talk.alfnilsson.se/?p=2981" /><id>http://talk.alfnilsson.se/?p=2981</id><published>2017-12-07T23:11:56.0000000Z</published><updated>2017-12-08T00:01:47.0000000Z</updated><author><name>alf.a.nilsson@tietoevry.com</name></author><category term="Blog post" /><summary type="html">We have upgraded the NuGet package ImageVault.EPiServer.UI to 5.5.36. This package is used to install ImageVault properties and editor UI into Episerver. However I noticed that I was unable to add images to the ImageReference properties in Episerver. The &amp;#8220;Insert&amp;#8221; button was replaced with &amp;#8220;Publish&amp;#8221;. Looking into the javascript errors I found the following: imagevault-insert-media.min.js:1 [&amp;#8230;]&lt;img alt="" border="0" src="https://pixel.wp.com/b.gif?host=talk.alfnilsson.se&amp;#038;blog=18285343&amp;#038;post=2981&amp;#038;subd=toders&amp;#038;ref=&amp;#038;feed=1" width="1" height="1" /&gt;</summary></entry><entry><title>Automatic visual tests with Episerver: Test after a Deploy</title><link href="http://talk.alfnilsson.se/?p=2971" /><id>http://talk.alfnilsson.se/?p=2971</id><published>2017-12-03T23:01:33.0000000Z</published><updated>2017-12-03T23:01:47.0000000Z</updated><author><name>alf.a.nilsson@tietoevry.com</name></author><category term="Blog post" /><summary type="html">A common reason I have heard that Episerver developers don&amp;#8217;t write automatic tests are that they&amp;#8217;re &amp;#8220;only doing content websites&amp;#8221;. First of all I suggest that you have an &amp;#8220;API first&amp;#8221; approach, even if you&amp;#8217;re only going to make content based functionality such as listing and filtering News Entries. This falls well into the classic [&amp;#8230;]&lt;img alt="" border="0" src="https://pixel.wp.com/b.gif?host=talk.alfnilsson.se&amp;#038;blog=18285343&amp;#038;post=2971&amp;#038;subd=toders&amp;#038;ref=&amp;#038;feed=1" width="1" height="1" /&gt;</summary></entry><entry><title>Simple pattern for custom forms</title><link href="http://talk.alfnilsson.se/?p=2516" /><id>http://talk.alfnilsson.se/?p=2516</id><published>2017-07-10T11:28:51.0000000Z</published><updated>2017-07-10T12:01:27.0000000Z</updated><author><name>alf.a.nilsson@tietoevry.com</name></author><category term="Blog post" /><summary type="html">Through the years I can&amp;#8217;t really keep count on how many custom forms I have created. I have found a simple pattern so that I can easily collect, validate and save the submitted information using a Model, Validator and Saver (MVS?). Dos and don&amp;#8217;ts I want to show you some practices I consider as Don&amp;#8217;t and [&amp;#8230;]&lt;img alt="" border="0" src="https://pixel.wp.com/b.gif?host=talk.alfnilsson.se&amp;#038;blog=18285343&amp;#038;post=2516&amp;#038;subd=toders&amp;#038;ref=&amp;#038;feed=1" width="1" height="1" /&gt;</summary></entry><entry><title>Presenting: Find My Content</title><link href="http://talk.alfnilsson.se/?p=2143" /><id>http://talk.alfnilsson.se/?p=2143</id><published>2017-02-12T18:06:28.0000000Z</published><updated>2017-02-12T19:01:24.0000000Z</updated><author><name>alf.a.nilsson@tietoevry.com</name></author><category term="Blog post" /><summary type="html">My main project is a multi website solution where 16 different websites is sharing the same source code. Sometimes when we need to change specific Content Type and find a strategy on how to migrate the changes it&amp;#8217;s good to know how much that Content Type is used, and in what way. How do you [&amp;#8230;]&lt;img alt="" border="0" src="https://pixel.wp.com/b.gif?host=talk.alfnilsson.se&amp;#038;blog=18285343&amp;#038;post=2143&amp;#038;subd=toders&amp;#038;ref=&amp;#038;feed=1" width="1" height="1" /&gt;</summary></entry><entry><title>Episerver Event Helper v3.0</title><link href="http://talk.alfnilsson.se/?p=1885" /><id>http://talk.alfnilsson.se/?p=1885</id><published>2017-01-11T22:35:18.0000000Z</published><updated>2017-01-11T23:01:30.0000000Z</updated><author><name>alf.a.nilsson@tietoevry.com</name></author><category term="Blog post" /><summary type="html">Years pass and hopefully you learn something and become better! One thing that have been poking on my conscience for a while is the old EPiEventHelper that I blogged about a couple of years ago. What&amp;#8217;s wrong with it? There are two things I don&amp;#8217;t like with it. 1) Unclear usage I have seen that it [&amp;#8230;]&lt;img alt="" border="0" src="https://pixel.wp.com/b.gif?host=talk.alfnilsson.se&amp;#038;blog=18285343&amp;#038;post=1885&amp;#038;subd=toders&amp;#038;ref=&amp;#038;feed=1" width="1" height="1" /&gt;</summary></entry><entry><title>Removing all translations – Part I (understanding the Episerver Database)</title><link href="http://talk.alfnilsson.se/?p=1870" /><id>http://talk.alfnilsson.se/?p=1870</id><published>2016-07-06T16:20:06.0000000Z</published><updated>2016-10-25T18:58:16.1100000Z</updated><author><name>alf.a.nilsson@tietoevry.com</name></author><category term="Blog post" /><summary type="html">Me and some colleagues had a project where we needed to remove all translations from an Episerver website except one. For that we needed to know what the database structure looks like in Episerver and I will share this to all of you! Now I&amp;#8217;m trying out something new &amp;#8211; a video post! I know it&amp;#8217;s not the [&amp;#8230;]&lt;img alt="" border="0" src="https://pixel.wp.com/b.gif?host=talk.alfnilsson.se&amp;#038;blog=18285343&amp;#038;post=1870&amp;#038;subd=toders&amp;#038;ref=&amp;#038;feed=1" width="1" height="1" /&gt;</summary></entry><entry><title>Planning your Episerver project</title><link href="http://talk.alfnilsson.se/?p=1447" /><id>http://talk.alfnilsson.se/?p=1447</id><published>2016-06-17T16:33:44.0000000Z</published><updated>2016-10-25T18:58:16.2200000Z</updated><author><name>alf.a.nilsson@tietoevry.com</name></author><category term="Blog post" /><summary type="html">You&amp;#8217;re going to start working on a brand new Episerver project! Your solution is a brand new slate where you can add your best code ever and you just received the design specs and requirements! Now you need to sit down and get an idea how to build your solution. But where should you start? In [&amp;#8230;]&lt;img alt="" border="0" src="https://pixel.wp.com/b.gif?host=talk.alfnilsson.se&amp;#038;blog=18285343&amp;#038;post=1447&amp;#038;subd=toders&amp;#038;ref=&amp;#038;feed=1" width="1" height="1" /&gt;</summary></entry><entry><title>How to NOT use properties on Content Types</title><link href="http://talk.alfnilsson.se/?p=1360" /><id>http://talk.alfnilsson.se/?p=1360</id><published>2016-05-17T14:08:20.0000000Z</published><updated>2016-10-25T18:58:16.3900000Z</updated><author><name>alf.a.nilsson@tietoevry.com</name></author><category term="Blog post" /><summary type="html">I&amp;#8217;ve seen more and more examples on how to NOT use properties on your Content Types &amp;#8211; setting visit/Request specific information to them. My example below is a very harmless, but I&amp;#8217;ve seen examples where the price for an e-com site is set like this! How do you mean? The example would be to display [&amp;#8230;]&lt;img alt="" border="0" src="https://pixel.wp.com/b.gif?host=talk.alfnilsson.se&amp;#038;blog=18285343&amp;#038;post=1360&amp;#038;subd=toders&amp;#038;ref=&amp;#038;feed=1" width="1" height="1" /&gt;</summary></entry><entry><title>Where to integrate with Episerver Forms</title><link href="http://talk.alfnilsson.se/?p=1197" /><id>http://talk.alfnilsson.se/?p=1197</id><published>2016-05-07T16:47:36.0000000Z</published><updated>2016-10-25T18:58:16.5600000Z</updated><author><name>alf.a.nilsson@tietoevry.com</name></author><category term="Blog post" /><summary type="html">If you want to control what&amp;#8217;s going on when a form created with Episerver Forms is submited, there are different areas you can implement your logic. The most usable ones (or the ones most people would go for) would be Controllers where the submitted form is posted, the implementation of DataSubmissionService, various Events and through Actors. So [&amp;#8230;]&lt;img alt="" border="0" src="https://pixel.wp.com/b.gif?host=talk.alfnilsson.se&amp;#038;blog=18285343&amp;#038;post=1197&amp;#038;subd=toders&amp;#038;ref=&amp;#038;feed=1" width="1" height="1" /&gt;</summary></entry><entry><title>Episerver Forms: How to change where uploaded files are stored</title><link href="http://talk.alfnilsson.se/?p=1323" /><id>http://talk.alfnilsson.se/?p=1323</id><published>2016-05-06T23:57:03.0000000Z</published><updated>2016-10-25T18:58:16.8100000Z</updated><author><name>alf.a.nilsson@tietoevry.com</name></author><category term="Blog post" /><summary type="html">During my session about Episerver Forms at the Øresund Episerver Developer meetup I received a question about how to change where uploaded files are stored A quick look at how Episerver Forms manage the posted information I found that it is the DataSubmissionService that creates an Asset Folder and stores the file. By replacing the original DataSubmissionService with a [&amp;#8230;]&lt;img alt="" border="0" src="https://pixel.wp.com/b.gif?host=talk.alfnilsson.se&amp;#038;blog=18285343&amp;#038;post=1323&amp;#038;subd=toders&amp;#038;ref=&amp;#038;feed=1" width="1" height="1" /&gt;</summary></entry><entry><title>Change access rights for Episerver Find UI</title><link href="http://talk.alfnilsson.se/?p=1070" /><id>http://talk.alfnilsson.se/?p=1070</id><published>2016-05-05T19:59:03.0000000Z</published><updated>2016-10-25T18:58:17.1230000Z</updated><author><name>alf.a.nilsson@tietoevry.com</name></author><category term="Blog post" /><summary type="html">As you probably know, Episerver Find has a UI where the editors can see statistics on how their visitors use the search functionality, fine-tune their search results by adding best-bets, related queries, synonyms and boost results as well as get an overview what kind of information is indexed in the Find Index. To see the menu items [&amp;#8230;]&lt;img alt="" border="0" src="https://pixel.wp.com/b.gif?host=talk.alfnilsson.se&amp;#038;blog=18285343&amp;#038;post=1070&amp;#038;subd=toders&amp;#038;ref=&amp;#038;feed=1" width="1" height="1" /&gt;</summary></entry><entry><title>Customize “Suggested Page/Block types” when creating content</title><link href="http://talk.alfnilsson.se/?p=961" /><id>http://talk.alfnilsson.se/?p=961</id><published>2016-04-17T19:32:31.0000000Z</published><updated>2016-10-25T18:58:17.2470000Z</updated><author><name>alf.a.nilsson@tietoevry.com</name></author><category term="Blog post" /><summary type="html">I&amp;#8217;ve found a neat way to improve the editor experience &amp;#8211; IContentTypeAdvisor and it can be found in the EPiServer.Cms.Shell.UI.Rest namespace of the assembly EPiServer.Cms.Shell.UI.dll. This interface is used to populate the list of suggested Content Types when creating new content. This interface has one method GetSuggestions which returns an collection of ids of block [&amp;#8230;]&lt;img alt="" border="0" src="https://pixel.wp.com/b.gif?host=talk.alfnilsson.se&amp;#038;blog=18285343&amp;#038;post=961&amp;#038;subd=toders&amp;#038;ref=&amp;#038;feed=1" width="1" height="1" /&gt;</summary></entry></feed>