I recently spent some time with a customer who wanted to use PingFederate Server with Episerver. After some initial Googling I could see PingFederate Server is a single sign on (SSO) server which is part of the Ping Identity suite of products. The image from the Ping Identity site implied Episerver could act as a Web App so it looked promising:
Most importantly for me it I noted it coud configured to support the WS-Federation protocol (WS-FED). This means it should be easy to set an Episerver site using the standard infrastructure we have to set up federated security in Episerver.
So this post is a knowledge share to ensure I have notes in case I need to do this it again in the future.
Episerver by default doesn't have a built in time property. However I was speaking to a customer recently who wanted just that. I know that Episerver uses Dojo for the UI behind the scenes so started to investigate if there was anything we could use to help us.
I read Steve Celus's post on creating a colour picker using Dojo in the past: http://world.episerver.com/blogs/Steve-Celius/Dates/2015/5/simple-color-picker-property/. So I used it as inspiration for this post.
It turns out that we can use the built in Dojo widget "dijit/form/TimeTextBox" to create a time picker in the Episerver UI. To create a property that allows users to input a time add the following ClientEditor attribute to your model:
The current release of Episerver Content Approvals does not yet integrate with the tasks pane in Episerver:
This means it's not currently possible for content approvers to find the content they need to approve. However the task pane is extensible as recently described by Episerver legend Linus Ekström. So using this knowledge and some use of the Content approvals API we can build out some tasks for people who are using content approvals.
I want a task to show content approvers what outstanding content approvals they have. Users should get a list of content items that require their approval making it simple and easy for approvers to find the content that requires their attention:
The latest release of Episerver A/B testing adds the ability to add custom goals for conversion. This post shows how it's possible to create a custom KPI that will trigger a conversion when a user matches a visitor group.
How to implement a custom goal
Its possible to implement a custom goal by implenting the IKpi interface. The code below simply adds a Kpi once a user has matched a visitor group:
This post is a write up about my experiences of building a bot using the Microsoft Bot Framework. This isn't a best practice, it's just practical advice about what I learned on the way and hope it might help others who are looking to learn how to build bots.
The output of this work was presented at Episerver Ascend Europe and was ultimately connected to a running instance of Episerver. At a simple level the architecture looked like this:
A new version of MenuPin is now available. This is is a compatibility release for Episerver 10 upwards. If you have not heard of MenuPin before then it allows users to pin the menu at the top of the Episerver UI (as shown in the image).
What's new in v4.0:
- Compatible with Episerver 10+
This feature is now a fully released product feature so the steps below are not required to install.
It can be installed by installing this package: Episerver Marketing Testing Tools
Recently the new Episerver A/B testing feature was released in beta. This is a quick post to explain how to install it.
Your site should be running at least Episerver.CMS.Core v9.10.1.
A note on versioning
The package is in beta so does not appear when you browse directly to http://nuget.episerver.com by default, however you can see the package by browsing here: http://nuget.episerver.com/en/OtherPages/Package/?packageId=EPiServer.Marketing.Testing
Episerver releases software on a continuous release cycle. This means that a new version of Episerver is typically available every week. This is good news for customers as the software is kept up to date with new features and bug fixes.
However updates are not automatic (for good reason) and need to be installed and put through a standard deployment cycle. As administrators or developers potentially working on multiple Episerver solutions it can sometimes be tricky to know exactly what version is installed and what the latest version of Episerver packages are when looking at the UI.
So I created a tool that allows users to see what versions of packages are installed and also what is the latest available version.
What does the tool do
The tool adds a new icon to the menu bar showing the current status of packages (green = up to date, yellow = updates available, red = very out of date) with some descriptive text on hover:
Episerver has a powerful UI that makes it very easy for editors to create and edit content in an on-page and a drag and drop way. However I was recently talking to a customer who are going to have a larger editor estate (> 500 people) and wanted 2 types of editors. The first type are editors who are trained and are familiar with Episerver. These editors can use the UI as normal for creating and editing content.
The second type of editor is more interesting. They should only be able edit existing content, often only on a single page. These editors require a very cut down version of the Episerver UI with "super simple" editor functions. So this post describes how its possible to hide certain Episerver UI elements for certain groups of editors.
Previously I blogged about Approvals for moving content in the Episerver page tree. This allowed us as developers to prevent users from moving content pages around in the tree without someone else signing the request off.
The approach works fine, however there is one shortcoming in this approach. That is that the default move confirmation message is still displayed after a user moves a page in the tree:
Optimizely posts all updates for it's products to the Optimizely Nuget feed. This feed is an invaluable resource if you are an Optimizely developer and is the same feed where community submitted packages can be found too. Heck I even created a Optimizely Nuget Feed Explorer to explore what's on the feed. Optimizely encourages community contributions and appreciates all the effort that goes into the packages. However it's worth nothing that when uploading a package it is moderated before being released onto the feed to ensure the quality of the package. So there are things to bear in mind when creating a package I have summarised below.
Episerver's UI is simple for editors to use but also very powerful. One specific feature I'd like to talk about today is the ability to move pages around in the site tree by simply dragging and dropping them.
This is great feature and incredibly simple to use. However moving content around a site can have big impacts on the site SEO, site functionality and in the worst case scenario create errors on a site. By default any editor can move pages to other places in the tree (with sufficient access rights) and the moves require no approval.
Episerver Forms is a new add-on that vastly improves the form capabilities over the legacy xforms implementation. However (at the time of writing) Episerver forms does not come with a set of visitor group criterion that will allow editors to personalise a user’s experience based on their interactions with forms on the site.
When working with the new Episerver Forms its possible to build out custom forms elements that can be used just like the built in form elements (by simply dragging and dropping them onto the form area). Maris Krivtezs has already written about creating a custom forms field but I wanted to expand this further and create a custom form element with a custom icon, translation etc.
So in this example I’m going show how to create a simple "Restricted text box" element that extends the built in Text element to create a textbox that only allows a certain number of characters in a textbox.