by Dan Matthews
30. January 2009 12:12
I was recently working with a client to deploy an EPiServer site and we came across a rather strange problem. The EPiServer Manager installed fine, but when I tried to set up a web site (with a database or not it doesn't matter) we were getting the following error reported: System.InvalidOperationException: The installation failed, and the rollback has been performed. ---> System.IO.DirectoryNotFoundException: The system cannot find the path specified. (Exception from HRESULT: 0x80070003) at System.DirectoryServices.Interop.UnsafeNativeMethods.IAds.PutEx(Int32 lnControlCode, String bst...
[More]
by Dan Matthews
9. December 2008 12:42
I am currently working on a project where it was necessary to conditionally inject some content into certain properties on some pages. Dynamic Content didn't really help me because what I wanted to do was replace entire properties with content from a property on another page and do it in a nice way for the editor. Linking the page with a shortcut to another page didn't help me because it needed to be only a partial replace and also conditional.
Here's an example - and I know there are better ways to do this but I want an example that won't compromise the Intellectual Property of what I am act...
[More]
by Dan Matthews
5. December 2008 11:53
I needed to throw together a quick geolocalisation demo for EPiServer v5 R2 the other day and to do that it was necessary to override some of the default URL rewriting behaviour of EPiServer. I knew it could be done, but I'd never actually had to write a custom URL provider before, so Ted Nyberg's blog post on rewriting in EPiServer gave me a good kick-start.
My geolocalisation changes worked a treat (maybe I'll blog about that another time) but I did come across one really nasty 'feature' in EPiServer. I did find a workaround though, so I'll share it with you. Some background first though.
...
[More]
by Dan Matthews
11. November 2008 10:58
Introduction
Interakting use both Open Source and proprietary products to deliver solutions for many companies. We always try to select the best tool for the job, and when it comes to Content Management it is no different. We have a range of tools we consider using including various Open Source tools (e.g. Nuxeo, DotNetNuke) and also our proprietary offerings (EPiServer, ADXSTUDIO). In the context of many projects it would certainly be possible to deliver a ‘successful’ project in either a proprietary or an Open Source solution. However, when we consider budgetary, functionality, deadline, su...
[More]
by Dan Matthews
10. June 2008 12:13
At the EPiServer Partner Summit I was chatting over dinner to Andy Brodie of Networked Planet. He was remarking that it would be nice within EPiServer to have the capability to show site thumbnails when you hovered over hyperlinks. This intrigued me so when I got back to the UK I did some investigation. There are sites on the internet that do provide a service for this, such as websnapr, but ideally I wanted something that I had full control over.
Time to start coding :)
After some investigation on the web I found a great article about the WebBrowser control and ASP.NET. I tailored it to my ...
[More]
by Dan Matthews
20. May 2008 15:20
Google have released a lovely little API for their Google Translate service. It uses a RESTful interface and returns a JSON object in the HTTP Response. The usual way to use this would be AJAX-style in client side JavaScript. This might not always be what you want to do though. For example, if you have a server resource in English and you want to show it in the page as Spanish you wouldn't want to render it in English and then have some page load event client side to translate it. You really want to do it server side and render it on the page as Spanish straight away. Of course, Google know t...
[More]
by Dan Matthews
4. April 2008 08:44
My flight is booked and I'm looking forward to the summit! The agenda looks packed and I'm especially interested to see what is put on the developer second day 'stream'. At the moment it's just TBA... although there's plenty of other tasty tidbits on the other days too (like the MOSS/EPiServer slot with Mats Hellström).
I'm flying out on the early doors SAS flight from Heathrow on the 29th. If there's any other UK partners out there on the same flight, give me a shout and maybe we can link up on our way.
by Dan Matthews
2. April 2008 12:10
Whilst building the CloudCuckoo module, I used a neat trick to register my custom VPP on-the-fly by using an attribute flag to mark it as an EPiServer plugin. This would cause EPiServer to find it and intialise it when I first hit the EPiServer site. This worked fine on my machine and some others, but I was finding that on one specific machine it wasn't firing properly. EPiServer was calling it to initialise it, but the problem was when I tried to access the HttpContext. In a nutshell, for some reason when this machine fired up the plugin to initialise it, it was losing or not passing in the H...
[More]
by Dan Matthews
2. April 2008 09:55
I've recompiled the CloudCuckoo binary against EPiServer v5 SP1 to save you having to recompile the project yourself. (it was originally built against vanilla v5) Enjoy!
Get CloudCuckoo here
by Dan Matthews
25. March 2008 15:53
The EPiCloud module that I've been working on for a while is finally ready for release! Due to the EPiServer preferred module naming policy (no EPi.... please!) we had a few thoughts around the office here and one of my colleagues, Alan Bartlett, came up with CloudCuckoo. The name appealed to me because it was rather different and also has mild amusement value. The best part is this though - I have obtained clearance to release the module for FREE on EPiCode!
The module and sourcecode is available on EPiCode here.
I also finished off the tag moderation part of the plugin, which can be seen o...
[More]
by Dan Matthews
20. March 2008 16:38
I've just spent the last few days in a Commerce Server 2007 training course, which was surprisingly interesting. One of the things that leapt out at me was that there are a couple of partners who have worked with Commerce Server 2002 and EPiServer together. It's something that has interested me too and I see even more possibilities with Commerce Server 2007. Hmm...
As soon as I got back I got busy getting EPiCloud release ready (and thinking of a nice name for it). In doing that I came across this old error again: "The trust relationship between the primary domain and the trusted domain faile...
[More]
by Dan Matthews
12. March 2008 09:34
I've updated the B&D EPiLabs site with an updated version of the EPiCloud module. I've added the following features:
The top tags are now placed in a META tag and also as a tooltip on the tag entry (this is for SEO)
When a new tag is added the top tags for that page are placed in a page property and saved
The tag page property is created dynamically if needed
The cloud now shows hyperlinks which, when clicked, go to the search page and search for that tag
The admin plugin has been 'hooked in' (see screenshot)
Plugin saves settings using PlugInSettings
...
[More]
by Dan Matthews
10. March 2008 11:22
While working on my EPiCloud module I came across a snag where I wanted to update page properties (definitions) from code without republishing the page. The page property I'm updating is going to change frequently and I didn't fancy having pages of versions which would be confusing for editors. After having a play with 'traditional' page editing and publishing in code I was drawing a blank and was toying with the idea of calling the SQL stored procedures for editing properties, although I didn't want to go there! Before trying to go further I posed my problem to the #epicode IRC channel (see ...
[More]
by Dan Matthews
7. March 2008 09:51
We've been doing some R&D on funky plugins for EPiServer and decided that we'd show you guys what we're up to. Have a look at our new EPiServer labs site:
B&D EPiServer Labs
Our tag cloud module 'EPiCloud' is the first module I've put on there. (At the moment I've only put the cloud control on the section homepages (News/Events etc) but any page on the site can be tagged.) It already supports features such as:
Culture awareness
Tag quantity limiting
Ability to show tags for page, children or both
Moderator approval
We're looking to expand on this with so...
[More]
by Dan Matthews
4. March 2008 15:34
An EPiServer frustration for me is not being able to grab a 'deep' tree as a PageDataCollection. Sometimes I want to be able to iterate through a collection of all descendants of a page. Ideally I'd want to do a GetChildren with a 'deep' boolean parameter or something, but there isn't one. Trying to use FindPagesWithCriteria is frustrating as if you enter no Criteria then it returns nothing. For now, I've just hacked it with the following code. It works, but I hate it. If you have a better solution please let me know. And yes, I know that I could iterate through GetChildren but that would be...
[More]
by Dan Matthews
28. February 2008 09:41
I was writing an EPiServer plugin recently and it was bothering me slightly that EPiServer only supports .ASCX or .ASPX pages for plugins. What I wanted to do was just drop a single DLL file into the BIN folder of my website. EPiServer 5 does have much better plugin management, true, but it still bothered me. I wanted to have control over the content of my plugin and didn't want to have to package my control along with a DLL. After rummaging around a bit to see if EPiServer would pick up any overridden render methods if I missed the URL attribute off a plugin (it doesn't) I decided to drop St...
[More]
by Dan Matthews
27. February 2008 15:48
I was writing an EPiServer plugin recently and it was bothering me slightly that EPiServer only supports .ASCX or .ASPX pages for plugins. What I wanted to do was just drop a single DLL file into the BIN folder of my website. EPiServer 5 does have much better plugin management, true, but it still bothered me. I wanted to have control over the content of my plugin and didn't want to have to package my control along with a DLL.
After rummaging around a bit to see if EPiServer would pick up any overridden render methods if I missed the URL attribute off a plugin (it doesn't) I decided to drop St...
[More]
by Dan Matthews
20. February 2008 08:48
In my last post we discussed the DACL and how to get the Access List from a Directory Entry object. We finished the post by grabbing our (D)ACL as an AuthorizationRuleCollection.
In this post we are going to look at what that collection contains; a set of AuthorizationRule objects. Just to make things a little more interesting, the AuthorizationRuleCollection can contain two types of rule - Access Rules (for the DACL) and Audit Rules (for the SACL). As we are looking at the DACL rather than the SACL we will be looking at a type that is inherited from the AuthorizationRule called an AccessRule...
[More]
by Dan Matthews
2. January 2008 15:58
In my last post on creating your own AD/ADAM permissions editor I covered the basic terminology used with Active Directory and also introduced the DirectoryEntry class. In this post I will discuss how to read, filter and understand an ACL on a DirectoryEntry.
The first thing we need to decide is what part of the ACL we want to read. As mentioned in the glossary on my last post, an ACL actually contains TWO types of ACL record - those to do with reading/modifying the object itself (DACL) and those to do with reading/modifying the audit settings (SACL). For the purposes of what we are doing, we...
[More]
by Dan Matthews
19. December 2007 10:52
When building a left-hand navigation control using a Web.Sitemap file and the default .NET2 sitemap provider, I hit an annoying snag. I wanted my navigation to look like this:
Home
- Welcome
- News
- About
In terms of pages, it would look like this:
Home.aspx
- Welcome.aspx
- News.aspx
- About.aspx
So far so easy. I just wrote a simple routine in the Page.Load of my master page that gets SiteMap.CurrentNode and then iterates back to the root node, rendering the menu as it goes via a repeater:
if(SiteMap.CurrentNode != null)
{
SiteMapNode tempNode = Si...
[More]
65feab4c-cf52-4aff-af89-31e8ab12a9e4|0|.0
Tags:
.NET/C#