Weather-based content targeting with Sitecore DMS

Tags

, , , , , , , ,

umbrellasContent Targeting is one of the strongest points of Sitecore’s Digital Marketing Suite (DMS). Marketeers are able to set up rules and conditions for rendering conditional content on the website. The conditions provided by Sitecore out-of-the-box include: checking how many times the visitor has visited the website, checking what language version the website is in, and checking the “profile” of the visitor (in which predefined category the visitor fits). Marketeers could also check from which city the visitors is requesting the web page. This is done by looking up the GeoLocation of the visitor by his IP address.

Continue reading

A multi-language list of countries in Sitecore

Tags

, , , , ,

Sitecore comes with a list of countries, including a Country two-letter ISO code. This list is available at the node: “/sitecore/system/Settings/Analytics/Lookups/Countries/Afghanistan”. But this list is not very convenient, because it is not multi-language: it only stores the country name in English. And because it is a list of items, its performance could also be improved by making it a NameValueList. This is convenient for example when you want your forms to have a Country Selector field. In this article I will show how a multi-language list of countries could be created and supported in Sitecore.

Country Data List

Continue reading

Sitecore: Sharing Content over Multiple Sites

Tags

, ,

One of Sitecore’s greatest feats is the ability to organize multiple websites in one single Content Management System. End users could achieve a significant productivity gain by this. But it also allows content editors to share content over multiple sites. This results in much flexibility, and offers users a much broader content strategy.

Content Sharing could be achieved with a number of different structures:

  • Sharing pages
  • Sharing a single global data folder
  • Sharing multiple local data folders

Continue reading

Sitecore Webforms for Marketers HTML5 extensions: Placeholder attribute

Tags

, , , , ,

The Sitecore module Webforms for Marketers is a great module: it offers a superb user experience, and its functionality is very extensible. However, even after the latest update (pdf) (january 2013) the module makes almost no use of the new HTML5 capabilities. In this series of articles I will demonstrate how to extend the WFFM module with custom field types with HTML5 functionalities.

This article I will discuss the HTML5 “placeholder” attribute. This attribute enables you to prefill the textbox with content, and let the content disappear when the user focusses on the textbox. (This functionality has also been called “Watermark“).

html5 placeholder

Continue reading

Composition over Inheritance in Sitecore templates

Tags

, , , , ,

Templates
The design principle “favor composition over inheritance” from the Gang of Four book “Design Patterns” states that a combination of functionality should be made in a flat structure, rather than in a hierarchical structure. This way, the functionality becomes more reusable, and the combination more flexible.

The principle is originally meant for software architecture but it also applies to data architecture. In this article we will show how the principle could be applied to the main data architecture of Sitecore: templates.
Templates in Sitecore have the following features:

  • Templates can inherit from other templates
  • Templates can inherit from more than one generation of other templates
  • One template can inherit directly from more than one other templates

Continue reading

Mailto Protocol character limit

Tags

, , , , ,

Hyperlinks on websites and in documents could be used to open the default e-mail client, and prepare an e-mail for the user. This is called the Mailto Protocol. It could be implemented by filling the “href” attribute of the <a> element with a value starting with “mailto:” and followed by one or more e-mailaddresses.

choose a mail client

What Windows 8 does when you click on a mailto: link

Continue reading

Interactive Story Telling

Tags

, , , , , , , , ,

Story telling is more and more accepted as an important part of marketing and corporate image strategies. It has become clear that it is a powerful phenomenon and strong effects could be achieved. Unfortunately, there is too less thought given to the implementation of Story Telling on one of the most important communication channels of today: the website. Despite all the praise, Story Telling is at odds with the interactive character of the web.

Stories-at-Work

Continue reading

Modular integration between Sitecore Ecommerce Services and Sitecore Search Solution

Tags

, , , , ,

The module Sitecore Ecommerce Services offers a quite brilliant Search Framework. With this framework it is possible to build up a Query with a strongly typed model. This Query model could then be passed to an implementation of “ISearchProvider”, which uses a Lucene search or a Sitecore query search for example, and it returns a collection of items. This is quite brilliant, because it offers an abstraction layer for the several different ways to search the Sitecore database. This greatly enhances loosely coupled application design, because it enabled several (filter) controls to add filters to the Query model, without having to know which implementation is used to search the database.

The module harbors three implementation of searchproviders: Sitecore Query, Fast Query and Lucene. In this article I will show how this framework could be extended with a SOLR (Sitecore Search Solution) implementation. SOLR is a much more powerful searchprovider, because it enables facetted search. By adding an abstraction layer to the Sitecore Search Solution implementation, one also upholds the principles of modular, loosely coupled application design.

Continue reading

Sitecore query get specific number of items

Tags

, , ,

Sitecore Queries are useful for getting items from the Sitecore database. A lot of logic can be integrated in the query as well. Here follows a method that could be used for getting a specific number of items from the database:

public Item[] GetProducts(int numberOfItems)
{
	string query = string.Format("/sitecore/content/products/*[position() <= {0}]", numberOfItems);

	Item[] items = Sitecore.Context.Database.SelectItems(query);

	return items;
}

The function “position()” in the query returns the position of the item. This position is the absolute position of the item in the tree. So do not use this function in conjunction with other filters in the query, like “@@templatename = ‘MyTemplateName'”.

Sitecore Package Designer Zipfile location folder

Tags

, , , , , ,

In the Sitecore Package Designer you can easily make packages for deployment or backup purposes. The packages is saved as a .zip file, after you click the button “Generate zip” in the Ribbon. You can choose the name of the .zip file, and you can also download it. This is all nice.

But what if you forgot to download it? Where is the .zip file created? The otherwise very informative wizard never reveals the destination folder that is the location of the package. Sitecore saves the .zip file in the application’s file system, in this location: “~/Data/packages”.

You can also configure this location in the web.config, by editing this setting node: “PackagePath”.