Override CSS in #Episerver editor mode

2 min reading how you can customize and override the CSS in Episerver UI admin with help of module system.

Published 19 April 2017
For Episerver Version 9 and later

In Quan Mai book, Pro Episerver Commerce, which I highly recommend for good understanding of Episerver Commerce platform, he mention under chapter 3, page 55, that you can override the CSS to put a height on the image, since there is no default height on images in Catalogue UI.

This is what i need to inject

In my case the proportion of the thumbnails wasn’t default, so I needed to override, but how?

Overriding using module system

Episerver has a great extensionality with its module system. In this case, just add the right folder structure, for example:

sln-root\modules\_protected\CustomCSS\1.0.0\ClientResources\styles\custom.css

Create a module.config

The module.config should be in the root of your plugin-folder, eg sln-root\modules\_protected\CustomCSS\module.config

Dependencies
You need to use the <moduledependencies> to configure when and where it should run you CSS/Script

  • Shell works in dashboard onlinecenter, CMS and Commerce
  • CMS is standard
  • Commerce is loading after CMS
  • Forms and Episerver.Forms.Samples are loading after Commerce

If you have more modules attached to your solution and if you need to have yours latest, check the loadings of css, and try to figure out what the name of the Module loading it is. Check in their module.config.

 

Remember to IISRESET between changes

And yes, you may override scripts too.

Source

SEO terms

  • Styling admin episerver
  • Custom script injection
  • How to make an Addon for Episerver

No More Broken Pics – Provider #AddOn for #EPiServer Developers

Ever restored the Production database to your developer environment and got a website with broken images? This lightweight AddOn keeps your local environment blob directory up to date.

Published 14th March 2017
For Episerver Version 9 and 10

This AddOn provider copies (on page load) the file blobs from production to your local environment, or to your staging/test environment.

For whom?

This AddOn is heaven for developers, get rid of copying the production blobs to your local or test installations.

How it works

When the EPiServer CMS page is binding the model to the page, the Provider GetBlob(URI id) is called for every Blob used on the loaded page. The “Download If Missing File Blob Provider” check if file exists on the local blob directory, if not it requests the file on the Production server and downloads the file with the friendly URL.

The DownloadIfMissingFileBlobProvider is using a web request to the production server since the local database is locked during request(because of possible risk of eternal loop).

The Provider works for the assetsystem in Episerver 9 and 10. It works in parallell with ImageVault but does not operate images in ImageVault. This provider is overriding and extending the default FileBlobProvider from Episerver.

Installation

Available on nuget.episerver.com in VS Package Manager Console ‘install-package Gosso.EPiServerAddOn.DownloadIfMissingFileBlobProvider’. It is dependent to EPiServer Core.

The DLL is installed in the modulesbin-directory. (you may need to add to source-control manually)

More config options: ProjectSite on github

SEO terms
  • Update assets files automatically
  • Download assets system automation
  • Episerver fileprovider addon
  • No more broken images

Another QuickNavigation Extension and Examples for #EPiServer #AddOn

Nice Episerver addon that adds menu items to the QuickNavigationMenu when logged in on public site, link to admin, link to ContentType, and logout.

Published 22 February 2017
For Episerver Version 9 and later

All configurable links to imagevault, find, admin, admin content type, and logout. Even custom links!

Default menus are Admin and logout, to activate other menu items apply this appsettings: (they are sortable)

You can add custom menu items, Name and url with pipe in between. Name can be lang resource path eg /shell/admin/logout

Download:

Packages are in Episerver’s NuGet feed. If not set up go to Visual Studio => NuGet Package Manager => Package Sources => Add http://nuget.episerver.com/feed/packages.svc/

http://nuget.episerver.com/en/OtherPages/Package/?packageId=Gosso.EPiServerAddOn.QuickNavExtension

More on Github: https://github.com/LucGosso/Gosso.EPiServerAddOn.QuickNavExtension

Regards!

Customize Summary in emails from #Episerver Forms

Episerver Forms is getting stronger. Here is a example of the how to customize the summary text with PlaceHolderProvider that is available in version 4.4.

Published 10th February 2017
For Episerver Version 10 and Forms 4.4

PlaceholderProvider in the Episerver.Form.UI  Namespace >4.4 can be used to override the processing of the Placeholder tags #yourelement#

Placeholders are handled with PlaceHolderService. You can replace PlaceHolderService with your own implementation with Dependency Injection.

But in this example i will extend the DefaultPlaceHolderProvider
because i want to reuse the code and override some methods.

DefaultPlaceHolderProvider is the default implementation of IPlaceHolderProvider, which replaces FormElementPlaceHolders with an actual value and provides an extra #SUMMARY# placeholder.

I will add an ExtraPlaceHolder called #FriendlySummary#, that takes away all hidden fields.

Why Changing the summary:

Editors may use summary in every email when confirming the submission to the user. When they used hidden element, they also where showed in summary, and we don’t want that.

Solution:

A form element that is implementing IExcludeInSubmission is automaticly not displayed in Summary, like the captcha element, but IExcludeInSubmission not applicable in this case.

My condition: All form elements with name starting with “Hidden… “ like “Hidden IP” or “Hidden VisitorGroup is returning user” or “Hidden anything” will not be displayed in my #FriendlySummary#

The form with hidden fields:

 

 

The email message:

The emailed result:

The idea in this example is to replace the value shouldNotShowInSummary with a real code, could be done in this provider code.

The Code example

Summary:

Episerver Forms is getting better and better, PlaceholderProvider is great news. Even better would be to add a new property on BaseElement called “HideInSummary” by default.

Gist:

Source:

SEO Terms:

  • SendEmailAfterSubmissionActor
  • Replacing input fields with custom data after submit
  • Changing field output in email
  • Customize Summary placeholder