#sitecore

Rules Engine and Rendering Variants

Published at June 3, 2019 ·  4 min read

The other day I was watching a presentation and learned something new. Out of the box, you can control insert options using the rules engine. Along that line of thinking, I decided to see if I could use the rules engine to customize what rendering variants show up on a component. With some customizations, I was able to use the rules engine to add/remove available rendering variants. However, there is one caveat: Sitecore caches the rendering variants using a cache key made up of the current page ID and the rendering item (in /sitecore/layouts) ID....


Configuring SolrCloud for XConnect

Published at December 13, 2018 ·  3 min read

Sitecore had a documentation page on their old doc site which detailed out how to setup Solr cloud for xConnect. That page has since been taken down and doesn’t appear to have been migrated to the new doc site. Luckily, I was able to find it cached. This blog post contains information taken from that cached page, mixed in with some of my own experiences. Getting Started You should already have Solr Cloud and Zookeeper setup and running with SSL....


ShowConfig on Content Delivery

Published at February 21, 2018 ·  2 min read

The Problem Today I was troubleshooting a problem on a content delivery server. I knew the problem was around configs, but I needed to see the combined config to determine what the exact problem was. Normally, I would login to Sitecore and go to /sitecore/admin/showconfig.aspx and I would see a beautiful XML file that shows me the merged config. The problem? The Sitecore back-end is removed on content delivery servers! There’s nowhere for me to login, and there’s now ShowConfig....


Synthesis Solr Support Now Available (Beta)

Published at December 27, 2017 ·  2 min read

Solr Support is Finally Here! History Three years ago, Jeff Darchuk set out with a mission: Add Solr Support to Synthesis. It was nearly finished, but the pull request never made it in. It’s been a requested feature for quite some time, and I’m happy to announce it’s finally here! What’s the Deal? I’m releasing support for Solr in Synthesis 8.2.7. It’s up on NuGet as a new package: Synthesis.Solr. I am planning on leaving it in beta for about a month....


Synthesis: The Road Ahead

Published at November 19, 2017 ·  3 min read

A couple months ago, Kam Figy joined a team of elite superheros known as the “The X Factor.” Wait… actually I think it’s “The X Team”? “X-Files”? I’m not sure. Go ask him. All I know is he’s off to do amazing things that will advance Sitecore in unimaginable ways in some super secret bunker in Cheyenne Mountain. Anyway, alongside that announcement, he mentioned that he was entrusting ownership of two of his most cherished, most famous, and most widely used repositories to me....


Checking for Experience Explorer Context in Sitecore 9

Published at November 3, 2017 ·  1 min read

With the release of Sitecore 9, a underappreciated DLL was removed: Sitecore.ExperienceExplorer.Business.dll. I’ve honestly never paid much attention to that DLL. The one thing I used it for, however, was determining if the current context was Experience Explorer. Synthesis made use of this: public class SitecoreRenderingContext : IRenderingContext { ... public bool IsExperienceExplorer => Sitecore.ExperienceExplorer.Business.Managers.ModuleManager.IsExpViewModeActive; ... } The new way of handling this is via the IsExplorerMode method in the ExplorerContext class....


Creating Custom Server Roles in Sitecore 9

Published at October 26, 2017 ·  2 min read

Sitecore 9 brings about a new feature: Server Roles. This is actually one of the features I was most excited about. What is a Server Role? Sitecore 9 ships with 5 server roles: ContentManagement, ContentDelivery, Processing, Reporting, Standalone. You can read more about what each role is used for from their documentation page. Using these server roles, you can conditionally load sections of configuration based off the server role. Rob Ahnemann wrote a more in-depth blog post that you should check out if you want more information on what you can do with server roles....


Autowiring XConnect Models

Published at October 24, 2017 ·  3 min read

I’ve been playing around with XConnect for the last few weeks and so far I like what I see. While playing around with custom models, I noticed that model schemas need to be manually registered. While not actually a big deal, this is an additional step that can be forgotten. I prefer to eliminate these “forgettable” tasks. I sought to determine a way of automatically wiring in these models. I’m pretty handy with reflection and figured if I could tag these models with an attribute, I could figure something out....


Get to Know a Pipeline: GetMediaCreatorOptions

Published at May 31, 2017 ·  2 min read

Background I was building a feature the other day that involved overriding something in the Sitecore file watcher. I needed to set some custom behavior in the MediaCreator to watch for a specific file being dropped into the /upload folder. Small disclaimer: I ultimately didn’t end up using this at all, but I still learned a bit about a pipeline that I thought was kinda neat. Discovery The file watcher calls MediaCreator's FileCreated method at some point in the process....


What Helix is NOT

Published at March 31, 2017 ·  3 min read

Last week I had the pleasure of attending a workshop on Helix, presented by Derek Correia. The mindset I had going into this was “I’ve seen the presentations, I’ve been working with Helix a bit, this will be nothing new.” I was pleasantly surprised to be wrong. If you’re not already aware, Helix is Sitecore’s recommended set of design principles. You can see a live example of Helix by checking out the Habitat demo....


Link Description Length Validator

Published at September 30, 2016 ·  4 min read

Today’s adventure is about custom validators. A feature I’m working on has a requirement that a link’s description must be no longer than 60 characters. I decided to look at the field validators that Sitecore comes with. The closest one I could find was the “Max Length 40” validator located at: /sitecore/system/Settings/Validation Rules/Field Rules/Sample/Max Length 40 I setup a template and slapped that validator onto the general link field and, as I expected, it didn’t work right:...


Upgrading Sitecore 6.6 to .NET 4.5

Published at July 3, 2016 ·  2 min read

Last week I had to update a Sitecore 6.6 site to .NET 4.5. The upgrade went just fine. After it was done, I flipped through the pages on the front end and everything looked fine. Next, I tried Sitecore to make sure everything was working. I clicked around the content editor for a good 15 minutes. Everything looked fine. Since I was already logged in due to the “remember me” feature, I didn’t notice at first that the login page was broken....


Automatically Resolving Home Item on an API Controller with Multiple Sites

Published at June 20, 2016 ·  2 min read

I was writing a method in a Web Api controller that was supposed to get data from a field. For now, let’s call the field “MicroSite Name”. To do so, I wrote a method that could be simplified down to this: [HttpGet] public string GetMicroSiteName() { return _sitecoreService.GetHomeItem<ISite2HomeItem>().Settings.MicroSiteName; } When I called that method from the front-end, I received a Null Reference Exception. Confused by this, I dug into it a bit further....


Sitecore Tips and Tricks: The Gutter

Published at May 30, 2016 ·  2 min read

Sitecore’s content editor has a handy feature called the gutter. The gutter shows up on the left hand side of the content editor, and is a great way of showing information about a content item at a glance. Some handy things it can show you: Item Buckets Cloned Items Personalizations Multivariant Tests My Locked Items Locked Items Workflow State Broken Links Missing Versions Publishing Warnings Presentation Overridden Let’s take a quick look at a gutter: example of a gutter...


Custom Product Sync Button

Published at April 3, 2016 ·  5 min read

Today’s adventure is about custom ribbon buttons, asynchronous commands, and progress dialogs. One of my recent projects deals with a 3rd party integration with a PIM (Product Information Management) system and Sitecore. This is not a very heavy integration. The PIM is the system of authority when it comes to a product’s description, price, color options, sizes, etc. Sitecore obtains this information via a REST API provided by the PIM. This information is fetched and transformed into Sitecore items, which we then store in a bucketed “Products” folder....


Sitecore 8 Package Installer over HTTPS

Published at February 28, 2016 ·  3 min read

Last week I was performing a deployment to our QA environment when I came across something odd. I was performing a routine content package install to Sitecore and all of the sudden I see “installation failed.” This particular package had been installed on 3 environments prior to QA, so I was confused. I dug into the logs to see if I could see the problem: ManagedPoolThread #18 14:24:01 INFO Job started: Install ManagedPoolThread #18 14:24:01 INFO Installing package: E:\inetpub\wwwroot\qa\web\Data\packages\normal-content-package....