Blog posts by Eric Herlitz2023-01-27T12:25:19.0000000Z/blogs/Eric-Herlitz/Optimizely WorldImplementing EmbeddedLocalization in Optimizely CMS 12https://www.herlitz.io/2023/01/27/implementing-embeddedlocalization-in-optimizely-cms-12/2023-01-27T12:25:19.0000000Z<p>My previous post on translation (Translating Optimizely CMS 12 UI components) gives an overview of how to implement the FileXmlLocalizationProvider, how a folder structure can be implemented and some advice how to find the XML-elements to translate in the CMS UI. This post will cover how to implement the alternative of FileXmlLocalizationProvider which is the EmbeddedXmlLocalizationProviderInitializer or commonly implemented using the AddEmbeddedLocalization extension method.</p>
<p> </p>
<div id="gtx-trans" style="position: absolute; left: 407px; top: 92.2px;">
</div>Translating Optimizely CMS 12 UI componentshttps://www.herlitz.io/2023/01/26/translating-optimizely-cms-12-ui-components/2023-01-26T17:33:08.0000000Z<p>Optimizely CMS 12 have been out for a while now, but still some elements haven't been properly translated resulting in a GUI defaulting to english. While that may be fine with many of us I still do have some customers who refuse to see the benefits of learning a bit of english. Anyways, it is good practice to implement translations of elements in all web sites which would include the Optimizely CMS GUI.</p>Setting up the ImageEditor in Optimizely CMS 12https://www.herlitz.io/2023/01/25/setting-up-the-imageeditor-in-optimizely-cms-12/2023-01-25T17:44:23.0000000Z<p>Setting up certain configurations on Opimizely CMS 12 differs quite a bit from prior versions of (Episerver CMS 11 and older). Here's a small guide on how to read and use the documentation from Optimizely regarding the ImageEditor.</p>Resolving Optimizely CMS error "InvalidOperationException: The view 'Bootstrapper' was not found."https://www.herlitz.io/2023/01/20/resolving-optimizely-cms-error-invalidoperationexception-the-view-bootstrapper-was-not-found/2023-01-20T15:13:32.0000000Z<p>Bootstrapper errors are not very common during development in Optimizely CMS but they do occur on special occasions.</p>Validate Optimizely XhtmlString property lengthhttps://www.herlitz.io/2022/12/21/validate-optimizely-xhtmlstring-property-length/2022-12-21T15:16:01.0000000Z<p>Since the built in attributes [StringLength], [MinLength] and [MaxLength] doesn't work when using a XhtmlString property we need to implement a custom ValidationAttribute.</p>
<p> </p>
<p> </p>
<div id="gtx-trans" style="position: absolute; left: 425px; top: -28px;">
</div>Creating a new CMS database using the Optimizely CLIhttp://www.herlitz.nu/2022/06/30/creating-a-new-cms-database-using-the-optimizely-cli/2022-06-30T17:29:11.0000000Z<p>CLI tools are getting more and more popular once again. In this short blog post, I'll guide you on how to set up a new Optimizely CMS database and add an admin user to the database.</p>Creating a new CMS database using the Optimizely CLIhttps://www.herlitz.io/2022/06/30/creating-a-new-cms-database-using-the-optimizely-cli/2022-06-30T17:29:11.0000000Z<p>CLI tools are getting more and more popular once again. In this short blog post, I'll guide you on how to set up a new Optimizely CMS database and add an admin user to the database.</p>Creating page types in Optimizely CMS 12 using the command linehttp://www.herlitz.nu/2022/05/12/creating-page-types-in-optimizely-cms-12-using-the-command-line/2022-05-12T13:32:10.0000000Z<p>Creating page types and similar using the Optimizely CLI may be a new approach to many but when you get the basics it is very powerful. Here are some advices on how to script and setup content types and controllers a bit more automated.</p>Creating page types in Optimizely CMS 12 using the command linehttps://www.herlitz.io/2022/05/12/creating-page-types-in-optimizely-cms-12-using-the-command-line/2022-05-12T13:32:10.0000000Z<p>Creating page types and similar using the Optimizely CLI may be a new approach to many but when you get the basics it is very powerful. Here are some advices on how to script and setup content types and controllers a bit more automated.</p>Programmatically rewriting all site and host definitions to HTTPS in Optimizely CMShttp://www.herlitz.nu/2022/05/05/programmatically-rewriting-all--site-and-host-definitions-to-https-in-optimizely-cms/2022-05-05T13:31:26.0000000Z<p>Some sites have many host definitions, and some want's to enforce HTTPS within Optimizely CMS.</p>Programmatically rewriting all site and host definitions to HTTPS in Optimizely CMShttps://www.herlitz.io/2022/05/05/programmatically-rewriting-all--site-and-host-definitions-to-https-in-optimizely-cms/2022-05-05T13:31:26.0000000Z<p>Some sites have many host definitions, and some want's to enforce HTTPS within Optimizely CMS.</p>Optimizely CMS 12 CLI tools, getting startedhttp://www.herlitz.nu/2022/05/03/optimizely-cms-12-cli-tools-getting-started/2022-05-03T09:03:08.0000000Z<p>Since the launch of CMS 12, the usage of CLI tools (command-line interfaces) has accelerated. This is mostly awesome since it is costly and not very platform multi-platform to build graphical user interfaces. CLI tools are also simpler to ship and install and usually more powerful.</p>Optimizely CMS 12 CLI tools, getting startedhttps://www.herlitz.io/2022/05/03/optimizely-cms-12-cli-tools-getting-started/2022-05-03T09:03:08.0000000Z<p>Since the launch of CMS 12, the usage of CLI tools (command-line interfaces) has accelerated. This is mostly awesome since it is costly and not very platform multi-platform to build graphical user interfaces. CLI tools are also simpler to ship and install and usually more powerful.</p>Running Optimizely CMS behind NGINX Reverse Proxyhttp://www.herlitz.nu/2022/03/27/running-optimizely-cms-behind-nginx-reverse-proxy/2022-03-27T19:27:44.0000000Z<p>A reverse proxy is a server that acts as a single point of entry to as many services (e.g. web sites) as you like on your internal network. The reverse proxy typically sits behind the firewall and directs requests to the appropriate backend server. The firewall is configured to allow certain traffic to be transmitted from and to the reverse proxy. Reverse proxies are typically implemented to scale different types of services, increase security, performance, and reliability.</p>Running Optimizely CMS behind NGINX Reverse Proxyhttps://www.herlitz.io/2022/03/27/running-optimizely-cms-behind-nginx-reverse-proxy/2022-03-27T19:27:44.0000000Z<p>A reverse proxy is a server that acts as a single point of entry to as many services (e.g. web sites) as you like on your internal network. The reverse proxy typically sits behind the firewall and directs requests to the appropriate backend server. The firewall is configured to allow certain traffic to be transmitted from and to the reverse proxy. Reverse proxies are typically implemented to scale different types of services, increase security, performance, and reliability.</p>Setting a static license path in Optimizely CMS 12http://www.herlitz.nu/2022/03/03/setting-static-license-path-in-optimizely-cms-12/2022-03-03T13:10:45.0000000Z<p>There is an alternative to having license files in the project root directory where you instead set a path to where you store your license files. This is an excellent way to also remove the need of extra deployments to update the license file.</p>Setting a static license path in Optimizely CMS 12https://www.herlitz.io/2022/03/03/setting-static-license-path-in-optimizely-cms-12/2022-03-03T13:10:45.0000000Z<p>There is an alternative to having license files in the project root directory where you instead set a path to where you store your license files. This is an excellent way to also remove the need of extra deployments to update the license file.</p>Accessing current IContent in Episerver MVC Viewhttp://www.herlitz.nu/2019/12/17/accessing-current-icontent-in-episerver-mvc-view/2019-12-17T14:28:47.0000000Z<p>I needed to access the current content model (IContent) in Episerver MVC views (included partial loaded) using the always available ViewContext. </p>Accessing current IContent instance in Episerver MVC Viewhttp://www.herlitz.nu/2019/12/17/accessing-current-icontent-in-episerver-mvc-view/2019-12-17T13:28:47.0000000Z<p>I needed to access the current content model (IContent) in Episerver MVC views (included partial loaded) using the always available ViewContext. </p>Accessing current IContent instance in Episerver MVC Viewhttps://www.herlitz.io/2019/12/17/accessing-current-icontent-in-episerver-mvc-view/2019-12-17T13:28:47.0000000Z<p>I needed to access the current content model (IContent) in Episerver MVC views (included partial loaded) using the always available ViewContext. </p>