02
Jun

Sitecore Analytics / Sitecore Online Marketing Suite

Hey guys,

finally Sitecore made it and published informations about the new Sitecore Online Marketing Suite and Sitecore Analytics. The Sitecore MVPs have been invited to take part at the presentation a couple of weeks ago, but the NDA don’t allow us to publish any information about it. Till now! :) I guess, if Sitecore posted the news, I’m allowed as well.

Check it out @ http://www.sitecore.net/en/Products/Sitecore-Online-Marketing-Suite.aspx 

I definitely enjoyed the demo and tour around it, such a great integrated analytics application within Sitecore. I’m a bit curious about writing the release date Sitecore told us, because they didn’t mention it though. But it will be soon.

That’s a good start, from a long weekend in Germany.

cheers chris

26
Apr

sheer ui: create webedit ribbons (part 2)

Hey guys,

here we go again. So after we know all relevant items and templates we can now go to create some and demonstrate how easy it is (after you know how :-) ).

Let’s create a chunk to demonstrate how to create your own strip:

/sitecore/content/Applications/Content Editor/Ribbons/Chunks: You find all existing chunks in Sitecore here. To create your own: Insert a new Item of the type “Chunk” (/sitecore/templates/system/ribbon/chunk). There are different fields in the data section (You have to scroll down to see them.).

  • Header: self explaining, isn’t it? - It’s the text below the buttons
  • Click: That is a command field, for my series I will call it that way. Commands are strings which are definied in App_Config/Commands.config. You have to specify the name and the type attribute.
    Be careful: The name has to be lower case!
    The type is “<namespace>.<class name>, <assembly name>”. This type is the link to the class which inherit the command class (Sitecore.Shell.Framework.Commands.Command). You have to implement the abstract method: public override void Execute(Sitecore.Shell.Framework.Commands.CommandContext context). The context parameter passes the current item in context.Items[0] (mostly, I didn’t find any methods where it is not).
    If you fill a value there, you will get a clickable header on the bottom, like the insert chunk where you can set your allowed templates.
  • Access key: Does not make sense for me, though. I don’t know how to move to a chunk by having an access key. Also I did not find any examples for this behaviour in Sitecore. Maybe some Sitecore devs can tell me more about it.
  • Tool Tip: Same here. I can’t find where it is displayed when I filled it with some value.
  • ID: Now get back to the important fields. This field has to be unique and no white spaces in it. I think you all know element ids and the requirements. I’m always using “<myChunkName>Chunk” as the value.

After you did this, you have your own chunk without any buttons. I will get back to the possible buttons and panels in my next post by demonstrating all buttons.

Let’s see how to integrate your own strip with your empty chunk. Go to Ribbons/Strips and create a new item of the type “Strip” (/sitecore/templates/system/ribbon/strip), there you have different fields:

  • Header: Self explaining, the title of the strip
  • Contextual Header: Sorry, but I can’t get this to work. If anyone knows how to use this field, please add a comment.
  • ID: Same as above, unique id of the current element.
  • Access key: Type a char in there and you can access your strip by pressing [alt] + <your Access key>
  • Tooltip: A tooltip next to the header of your strip.
  • Type: Of course you can create a dynamically strip which could be personalized, pulls something from an external database etc. The type is in the “normal Sitecore format”: <namespace>.<class name>, <assembly name>

Great! So far so good. After you created your strip, you need to let the strip know which chunks are in there. That’s why we created an empty chunk first. Under your strip you have to create a new item of type “Reference” (/sitecore/templates/system/reference) and give it the name of your chunk. There you will find a field called “Reference”: link your chunk here.

Now, if you want to see your strip in the Sitecore Client Content Editor, you have to go to …/Ribbons/Ribbons/Default and create a new item of type “Reference“, give it the name of your strip. Link your newly created strip item in the reference field.

After you saved the current item, you can right-click on your ribbon navigation and should now see your strip unchecked. If you click on your strip, it will get inserts in the content editor.

Other locations like WebEdit / Preview or Debug are also possible, I will tell you where in my next posts. As well as all possible buttons and panels you can add.

Have a nice sunday, I will go out for some sports now and enjoying the sun :)

cheers chris

21
Apr

Sheer UI: Create webedit ribbons (part 1)

Hey guys,

sorry that I didn’t write anything for a while, but I digged myself into a couple of books for my study.

The last days I worked to customize the webedit ribbon bar and added my own functionality. I really like working in the sheer ui and hopefully there come more tasks to tackle and I can write about them.

Here we go, everybody of you know the new webedit in Sitecore and the ribbon (button) above. I want to create a new strip (like “Page Editor” and “Home”) and in there I want a new chunk with a panel.

Ribbon structure
Here you see the Ribbon structure in Sitecore. It may be useful. :-) Now, your new friend is the Sitecore Core database and the Item: /sitecore/content/Applications/Content Editor/Ribbons; there you find all the relevant items you need to create or change. In there are different folders:

  • Chunks - defines all different chunks. If you want to create a new one, this is your first point.
  • Contextual Ribbons - You remember the context ribbons e.g. when you create a new template, this is done here.
  • Ribbons - under Default you can define the default strips you have in your normal content editor and if they are hidden by default (right click on the toolbar you see the developer and my toolbar which are hidden by default for example).
  • Strips - In the image above you see that this whole thing is strip. Define it’s details and chunks here, but I get back on that later.

Unfortunately I have not that much time at the moment, so I will split up this tutorial into several parts. Check back soon to see how to connect these items and see it in action. I will also describe how to create a panel such as insert, where you can change the behaviour programmatically.

cheers chris

17
Feb

Language embedding in urls

Hey there,

Sitecore 6 provides a functionality to embed your language as parts in the url e.g. http://www.test.com/en-US/test.aspx.

You can control this feature by using the web.config entries:

<linkManager defaultProvider=”sitecore”>
   <providers>
    <clear/>
    <add name=”sitecore” type=”Sitecore.Links.LinkProvider, Sitecore.Kernel” addAspxExtension=”true” alwaysIncludeServerUrl=”false” encodeNames=”true” languageEmbedding=”asNeeded” languageLocation=”filePath” shortenUrls=”true” useDisplayName=”false”/>
   </providers>
  </linkManager>

Cheers chris

13
Feb

Breaking xslt paradigm

Hey guys,

writing xslt is some kind of special, isn’t it? As a original developer who started with php need to pay special attention to the xslt paradigm.

In my case I have a dropdown navigation with two columns after each 4 items where you need to split the current div tag into a new.

You can’t do something like this:

<xsl:if test=”position () = 4″>
</div><div class=”Submenu”>
</xsl:if>

Right?

The solution is some kind of “hack”, so only use this if you have tried to think over your code and another solution.

<xsl:variable name=”divider”>
  <![CDATA[</div><div class=”Column”>]]>
</xsl:variable>

Now you can do:

<xsl:if test=”(position() mod 4) = 0″>
  <xsl:value-of select=”$divider” disable-output-escaping=”yes”/>
</xsl:if>

Enjoy ;)

10
Feb

Sitecore query in template source fields + language

Hey guys,

if you have:

  • A template with a dropdown (or droplink field)
  • A second template with a checkbox field

You want to have: An item based on the first template with a dropdown where only items are displayed which have the checkbox checked.

My source is:

query:/sitecore/content/home/Site/#Ueber-Uns#/Team/*[@is contact=’1′]

First you have to keep in mind that item names with “-” dashes should be covered by “#” else you get the exception: Invalid lookup source …

Second (if you operate with a second language - here: german): If you don’t get any results, mark the checkbox as shared. In some way the query doesn’t select the correct language from my point of view.

cheers chris

10
Feb

Sitecore released Sitecore 6.0.0 rev.090120

Hey guys,

just a short note: Sitecore has a new recommended version of Sitecore 6 (Sitecore 6.0.0 rev.090120). I will update all of our Sitecore webs as soon as possible.

Enjoy! :-) cheers chris

Sitecore Download Section

03
Feb

Versions are duplicated and have the same version number **update**

Hey guys,

at the moment I’m facing a really strange and annoying issue using versions in Sitecore 6.

Version numbersIf you want to add a second version to an item, how do you do this? You go to the version tab and click “Add”, right? Yes! (Of course there are other ways,….) Unfortunately you get more than you want to have. In my case you have a new version called “2? - but two times (!). Check the screenshot.

If you look into the database directly by using a select statement:

SELECT * FROM dbo.VersionedFields

You will get the hint that the two version don’t have the same values in every field. The language field says “de-de” for a couple of items and de-DE for other ones.

After creating a support case at the official Sitecore Support we got the solution by converting the different values to the same by using the sql statement:

UPDATE dbo.VersionedFields
SET Language=’de-DE’
WHERE Language=’de-de’ COLLATE Latin1_General_BIN

… a couple of days later ….

We have the same issue again! Annoying!

The facts:

  • It cannot be a displaying bug, because:
    • I directly triggered the sqlDataApi to get the versions => 3 versions / 2 version numbers
    • I checked the sql table directly and got the versions
  • I switched the Sitecore Installation to a new and clean installation and just connected the corrupted databases => Same issue
  • I disabled the Cache.GetVersions() method (by stepping directly in it) => same result.
  • I created a new version programatically and have the same result

After the Sitecore Support searched my web.config, they pointed me to my sites config and that the language parameter got the value “de-de” (it has to be “de-DE”), but this cannot be as well. We have been working with that Config from the beginning (approx. Aug 08), but we first experienced this in Dec 08.

So, what did we changed? At the moment I’m not looking at software updates (not yet!) - I remembered that we set up the PublishAgent in the web.config with that configuration:

<agent type=”Sitecore.Tasks.PublishAgent” method=”Run” interval=”02:00:00″>
 <param desc=”source database”>master</param>
 <param desc=”target database”>web</param>
 <param desc=”mode (full or incremental)”>incremental</param>
 <param desc=”languages”>de-de</param>
</agent>

Could that corrupt our database? I’m not sure, because after solving the problem by using the sql update statement and changing the auto publish to 2 minutes I cannot reproduce this issue locally.

Okay guys, if any one have some hints just give me a buzz. I’m still trying to reproduce and solve it forever!

cheers chris

The Solution:

The Sitecore Support guys are the best and really fast… The solution is that simple I have never thought about. My web.config have the values de-de instead of de-DE! You can reproduce this by creating an item and change the publish restrictions. If you have the correct values in your web.config you can’t reproduce this behaviour. That simple!

So, please set your web.config language values to the same you have in your sitecore/system/language tree! Case-sensitive!

(The Support also registered this as a bug for the current version.)

Thanks to the support at this point!

27
Jan

Obama’s Inauguration panorama shot

Hey guys,

one interesting link.. 220 single photos, 1474 mega pixel, resolution 59.783 x24.658 pixel …

Click here:duggback.com

I really like looking for the cia guys ;-) have fun.. cheers chris

06
Jan

Sitecore MVP - Most Valueable Professionals 2008

Hey guys,

finally somebody really reads the posts I write and Sitecore nominated me for the MVP award 2008. After weeks of votings I really got an award! :-) Hope the topics I wrote about are interesting and helpful. Now I get access to much more information I can share ;-)

Thanks to all who voted for me and of course also who nominated me.

San Francisco, January 6, 2009 – Sitecore, the leading provider of .NET Web Content Management System (CMS) software, today announced the Sitecore MVP Program. This program recognizes exceptional technical community leaders who foster free and objective exchange of knowledge by actively sharing their real-world expertise with technology users. For 2008, thirteen outstanding individuals from around the world were selected to be members of the program and honored with a Sitecore Most Valuable (MVP) Award.

The MVP award also goes to:

Australia
• Alistair Deneys (Next Digital Group)

Canada
• Eric Briand (Ergonet)
• Glen McInnis (Non-linear Creations)

Germany
• Julius Ganns (netzkern GmbH)

Denmark
• Klaus Petersen (Alpha Solutions A/S)
• Thomas Eldblom (Pentia A/S)

The Netherlands
• Justin Sjouw (Caesar Optimit)
• Marc van Aalst (Evident)

UK
• Mark Cassidy (Corepoint-IT)

USA
• Andy Uzick (FMC Technologies, Inc.)
• Sasha Pfandt (Digitaria Interactive, Inc.)
• Ben Golden (Aware Web Solutions)

Read the full press release by Sitecore here: http://www.sitecore.net/en/News/Press%20releases/2009/Sitecore%20MVP%20Program%202008.aspx?nav=s

cheers chris





July 2009
M T W T F S S
« Jun    
 12345
6789101112
13141516171819
20212223242526
2728293031  

Recent Entries

netzkern GmbH
View Christopher Wojciech Sitecore Developer