Sitecore: extending field datasource queries with tokens

It is quite common situation when you need to create data source query for a field in a template that is quite complex: e.g you would like to use current item property as a part of a query or you have dependency on some other item in a content tree.

In case of list fields you could use GetLookupSourceItems pipelines to modify query according to your requirements.

As usual you will need to register this pipeline in sitecore patch file and put it in <web root>/app_config/include

Finally, to use it need to use defined token in a field query, when you defining your template.

Simple, but give you a lot of flexibility.

Sitecore: multisite solution organization

Reading Sitecore manuals or digging in the Internet you probably see a following statement: "Information Architecture is very important for Sitecore solution". So I would like to share some thoughts and approached.
Nowadays I'm mainly working with MVC and this post is also about it, but a lot of stuff could be applicable to WebForms as well.

Sitecore: using MVC areas

Sitecore out of the box will not provide MVC ares support but you will really need this functionality for good solution organization. However, Sitecore has good pipelines system and you could plug you code that will resolve areas.

Sitecore: logging via RabbitMQ

In previous post I've described why I've started to look into RabbitMQ integration. Here you could find its implementation.

Sitecore + RabbitMQ implementation

In order to send log data from Sitecore we need to extend its Logger. Sitecore uses logging system based on log4net (it is their own implementation and based not on the latest log4net sources) so we could try to use existing open source module from NuGet at least as a reference.

I took the module, replace log4net reference to Sitecore.Logging dll and made all needed changes. All this code you could find on GitHub in pre-beta version.
GitHub: Sitecore.Logger.RabbitMQ.GelfAppender

Sitecore: Logging with EKL (ElasticSearch+Logstash+Kibana)

Why not to use standard files?

Usually when you are working with Sitecore you will have standard file based logs. For development this is more that enough but when it comes to other environments it could be very nice to have all logs sentralized. Moreover need to be sure that logs are not lost in cases when something went wrong and it is easy to find information in it.
So my goal is to create solution base on EKL (ElasticSearch+Logstash+Kibana) which will get log data from Sitecore and provide possibilities to search and work with them. ()


Kibana Query interface

Sitecore: Round Image Processor

How to create round images

When you are creating a marketing site with a lot of visual on it very likely that you will need to process images that you need to display.

Fortunately, Sitecore provide you with some basic operation that you would need like resize or grayscale image. Moreover it will think for about caching images on server side after processing, so that processing of the image for specific page will happen only once ( for more information about images params see this link ).

Sitecore: Solr spell check

Extending Sitecore ContentSearch provider with Solr spell check

During one of our projects we faced with a problem that Sitecore 7 does not support out of the box some cool features of Solr like spell check and similar results , which were in great demand on one of our projects.

After some time of investigation with reflector we found out that this kind of customization would not be easy, as a lot of classes in Sitecore provider to Solr wasn't designed to support third party customization. There are a lot of internal classes and important properties hidden in private properties.