<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-2762447899887212599</atom:id><lastBuildDate>Fri, 17 Feb 2012 04:21:52 +0000</lastBuildDate><title>Umbraco CMS</title><description /><link>http://umbracocms.blogspot.com/</link><managingEditor>noreply@blogger.com (Jason)</managingEditor><generator>Blogger</generator><openSearch:totalResults>29</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/UmbracoCms" /><feedburner:info uri="umbracocms" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:browserFriendly></feedburner:browserFriendly><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2762447899887212599.post-9112489816760901849</guid><pubDate>Sat, 22 Oct 2011 19:53:00 +0000</pubDate><atom:updated>2011-10-23T02:53:41.564+07:00</atom:updated><title>PSD to Umbraco</title><description>&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Umbraco is a developer friendly content management system (CMS) that is designed to be completely customizable, user friendly, and powerful. It makes it quick and easy to create websites or a breeze to build a complex websites. It is a CMS that can support any modern browser and that even allows editing with Microsoft Word. It allows for complete control over templates, content, and much more. It is the one where designers can create accessible and valid xhtml with their mark-up left intact.&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;For Umbraco it's an easy as designing your website in your favorite tool like Adobe Dreamweaver, just cut and paste the HTML code into the Umbraco template editor(in the back office ) and then in the spots where you want your Umbraco data, insert an Umbraco field and save. When a page is rendered using the template, the content is dynamically displayed.&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;While, PSD is a proprietary file format used to create and edit images in Adobe Photoshop. It is a widely accepted format as it supports all available image types – Bitmap, RGB, Duotone, Grayscale, Indexed Color, CMYK, Lab, and Multichannel.&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;The maximum size of a PSD file (with file extension of ‘.psd') is 30,000x30,000 pixels and may be saved with 16 bits per color channel. PSD image files may be opened with Adobe Photoshop or Photoshop Elements on Windows; and Adobe Photoshop, Photoshop Elements, or Apple Preview on Mac OS.&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;PSD to Umbraco conversion is the conversion of data from the Adobe suite to that of Umbraco and is the best option out there in the market these days if you wish to grow your business without really expanding and spending on infrastructure and hiring on roll employees.&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Basically,PSD to Umbraco conversionis very complex and tedious process. As this type of conversion requires deep knowledge, experience and skills to perform this task in an effective and efficient way is the need of the hour.&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;PSD format for any particular website is definitely not an easy task. Moreover, in PSD format the data organization can become very time consuming. Therefore, for easy accessibility of data and to improve file management PSD to Umbraco conversion is very important.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2762447899887212599-9112489816760901849?l=umbracocms.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://umbracocms.blogspot.com/2011/10/psd-to-umbraco.html</link><author>noreply@blogger.com (Jason)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2762447899887212599.post-424038025785368581</guid><pubDate>Sun, 15 Aug 2010 16:51:00 +0000</pubDate><atom:updated>2010-08-16T00:03:42.035+07:00</atom:updated><title>Guide To Umbraco CMS for beginners</title><description>&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;I remember that when I first I first started messing around with Umbraco I had more than a few issues trying to get it installed due to not being able to find the right answers about a year or so ago.&lt;br /&gt;There has also been some great movements in pushing Umbraco to the next level and making it easier than ever to use. Now I’m no professional or avid blogger, so don’t expect miracles… The only aim for this post is to try and give anyone looking to get into Umbraco and real life example and reference from someone doing the same thing.&lt;br /&gt;&lt;br /&gt;What Is Umbraco?&lt;br /&gt;&lt;br /&gt;Well here is what's written on the CodePlex Site..&lt;br /&gt;&lt;br /&gt;“For the first time on the Microsoft platform a free user and developer friendly cms (Content Management System) that makes it quick and easy to create websites - or a breeze to build complex web applications. Umbraco got award-winning integration capabilities and supports your ASP.NET User and Custom Controls out of the box. It's a developers dream and your users will love it too. Used by more than 57.000 active websites including Heinz.com, Peugeot.com, NAIAS.com and Microsoft's documentinteropinitiative.org website you can be sure that the technology is proven, stable and scales.”&lt;br /&gt;&lt;br /&gt;And here is what Umbraco say themselves..&lt;br /&gt;&lt;br /&gt;“Who would believe that there would be an open source CMS based on Microsoft's ASP.NET? A CMS that can support any modern browser and that even allows editing with Microsoft Word. One where designers can create accessible and valid xhtml with their mark-up left intact. Where developers can integrate any .net based control right out of the box. If someone tells you "won’t happen", then they have never used umbraco...” &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;h3&gt;&lt;span style="font-family:verdana;"&gt;Some Important Bookmarks Before We Start&lt;/span&gt;&lt;br /&gt;&lt;/h3&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;Please take the time to bookmark these pages, they WILL help you down the line.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;Our.Umbraco Forum&lt;/strong&gt; - &lt;/span&gt;&lt;a title="http://our.umbraco.org/forum" href="http://our.umbraco.org/forum"&gt;&lt;span style="font-family:verdana;"&gt;http://our.umbraco.org/forum&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;em&gt;A great active community where you can post questions and get answers within a few minutes from Umbraco users in the know&lt;/em&gt; . &lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;Umbraco Wiki &lt;/strong&gt;- &lt;/span&gt;&lt;a title="http://our.umbraco.org/wiki" href="http://our.umbraco.org/wiki"&gt;&lt;span style="font-family:verdana;"&gt;http://our.umbraco.org/wiki&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;em&gt;The wiki is relatively knew, as it was added with the new our.umbraco site. But its getting bigger by the day and has some AMAZING nuggets of information in it.&lt;/em&gt; &lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;Umbraco Projects&lt;/strong&gt; - &lt;/span&gt;&lt;a title="http://our.umbraco.org/projects" href="http://our.umbraco.org/projects"&gt;&lt;span style="font-family:verdana;"&gt;http://our.umbraco.org/projects&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-family:verdana;"&gt;For me personally, this is my most favourite part of the new our.umbraco site as the projects section is becoming HUGE. Some fantastic FREE add-ons you can use, including the forum project, eCommerce, Twitter and many more. &lt;/span&gt;&lt;/em&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;Stack Overflow&lt;/strong&gt; - &lt;/span&gt;&lt;a href="http://stackoverflow.com/"&gt;&lt;span style="font-family:verdana;"&gt;http://stackoverflow.com&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;em&gt;This is not specifically about Umbraco, but anyone who hasn’t found StackOverFlow yet then you need to get signed up – You can get answers to any ASP.NET, XSLT &amp;amp; General programming questions (Including Umbraco problems) within minutes!&lt;/em&gt; &lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;Umbraco.TV&lt;/strong&gt; – &lt;/span&gt;&lt;a href="http://umbraco.tv/"&gt;&lt;span style="font-family:verdana;"&gt;http://umbraco.tv&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;em&gt;Just brilliant for anyone wanting to learn about Umbraco, from the front end user to the developer – I reference it all the time.&lt;/em&gt; &lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;&lt;span style="font-family:verdana;"&gt;Nibble.be - &lt;/span&gt;&lt;/strong&gt;&lt;a href="http://www.nibble.be/"&gt;&lt;strong&gt;&lt;span style="font-family:verdana;"&gt;http://www.nibble.be&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;em&gt;This is the site of Tim Geyssens, who now actually works for Umbraco. This site is just RAMMED full of fantastic tutorials, mainly more advanced stuff but I would bet my shoes you will find yourself referencing this site throughout your Umbraco adventures (I have multiple times).&lt;/em&gt; &lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;&lt;em&gt;&lt;span style="font-family:verdana;"&gt;other must have bookmarks&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;/h3&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;These bookmarks are ones you will use when you are a bit more confident, and start playing around with more complex sites (Give it a few weeks and you’ll be using these)&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;Setting Up Membership With Umbraco&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;a title="http://www.mortenbock.dk/setting-up-membership-in-umbraco-116.htm" href="http://www.mortenbock.dk/setting-up-membership-in-umbraco-116.htm"&gt;&lt;span style="font-family:verdana;"&gt;http://www.mortenbock.dk/setting-up-membership-in-umbraco-116.htm&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt; &lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;Setting Up Member Profiles&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;a title="http://www.aaron-powell.com/blog/july-2009/umbraco-member-profiles.aspx" href="http://www.aaron-powell.com/blog/july-2009/umbraco-member-profiles.aspx"&gt;&lt;span style="font-family:verdana;"&gt;http://www.aaron-powell.com/blog/july-2009/umbraco-member-profiles.aspx&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt; &lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;Working With Members API&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;a title="http://umbraco.org/documentation/books/api-cheatsheet/working-with-members" href="http://umbraco.org/documentation/books/api-cheatsheet/working-with-members"&gt;&lt;span style="font-family:verdana;"&gt;http://umbraco.org/documentation/books/api-cheatsheet/working-with-members&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt; &lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;Email Newsletters&lt;/strong&gt; (See I told you Tims blog would be popping up all the time)&lt;br /&gt;&lt;/span&gt;&lt;a title="http://www.nibble.be/?p=" href="http://www.nibble.be/?p=63"&gt;&lt;span style="font-family:verdana;"&gt;http://www.nibble.be/?p=63&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt; &lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;eCommerce / Selling Online With Umbraco&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;a title="http://our.umbraco.org/projects/commerce-for-umbraco" href="http://our.umbraco.org/projects/commerce-for-umbraco"&gt;&lt;span style="font-family:verdana;"&gt;http://our.umbraco.org/projects/commerce-for-umbraco&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;- Google Checkout For Umbraco - &lt;/span&gt;&lt;a title="http://www.orcare.com/products/google-checkout-package-for-umbraco.aspx" href="http://www.orcare.com/products/google-checkout-package-for-umbraco.aspx"&gt;&lt;span style="font-family:verdana;"&gt;http://www.orcare.com/products/google-checkout-package-for-umbraco.aspx&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt; &lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;Forums &amp;amp; Umbraco&lt;/strong&gt;&lt;br /&gt;YetAnotherForum &amp;amp; Umbraco - &lt;/span&gt;&lt;a title="http://dawoe.blogspot.com/2009/02/intergrate-yet-another-forum-193rc2.html" href="http://dawoe.blogspot.com/2009/02/intergrate-yet-another-forum-193rc2.html"&gt;&lt;span style="font-family:verdana;"&gt;http://dawoe.blogspot.com/2009/02/intergrate-yet-another-forum-193rc2.html&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;uForum - &lt;/span&gt;&lt;a title="http://our.umbraco.org/projects/uforum-basics" href="http://our.umbraco.org/projects/uforum-basics"&gt;&lt;span style="font-family:verdana;"&gt;http://our.umbraco.org/projects/uforum-basics&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt; (This is the forum our.umbraco is built on!) &lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;Umbraco Debugging Made Easy&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;a title="http://www.cpalm.dk/blog/2008/01/20/umbraco-debugging-made-easy.aspx" href="http://www.cpalm.dk/blog/2008/01/20/umbraco-debugging-made-easy.aspx"&gt;&lt;span style="font-family:verdana;"&gt;http://www.cpalm.dk/blog/2008/01/20/umbraco-debugging-made-easy.aspx&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt; &lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;Extension less URL’s&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;a title="http://our.umbraco.org/wiki/install-and-setup/setting-up-umbraco-for-friendly-urls" href="http://our.umbraco.org/wiki/install-and-setup/setting-up-umbraco-for-friendly-urls"&gt;&lt;span style="font-family:verdana;"&gt;http://our.umbraco.org/wiki/install-and-setup/setting-up-umbraco-for-friendly-urls&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt; &lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;Now there are a few options here, but I’ll walk you through how I went about learning from scratch and now have built a few sites, created my own packages and macros, and even understand XSLT&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;Umbraco.TV&lt;/strong&gt; – &lt;/span&gt;&lt;a href="http://umbraco.tv/"&gt;&lt;span style="font-family:verdana;"&gt;http://umbraco.tv&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;First thing I did was went to over to the brilliant Umbraco.tv and got a subscription, I cannot stress enough how much help the &lt;strong&gt;&lt;a href="http://umbraco.tv/documentation/videos/for-site-builders"&gt;site builder&lt;/a&gt;&lt;/strong&gt; &amp;amp; &lt;strong&gt;&lt;a href="http://umbraco.tv/documentation/videos/for-developers"&gt;developer videos&lt;/a&gt;&lt;/strong&gt; are when you are first learning. Basically the videos cover 99% of the level 1 training. So by watching them all you get a great understanding of ‘how’ to build a site and what things mean.&lt;br /&gt;&lt;em&gt;&amp;gt; Free Site Builder Video: &lt;/em&gt;&lt;/span&gt;&lt;a title="http://umbraco.tv/documentation/videos/for-site-builders" href="http://umbraco.tv/documentation/videos/for-site-builders"&gt;&lt;em&gt;&lt;span style="font-family:verdana;"&gt;http://umbraco.tv/documentation/videos/for-site-builders&lt;/span&gt;&lt;/em&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;em&gt;&amp;gt; Free Developer Video: &lt;/em&gt;&lt;/span&gt;&lt;a title="http://umbraco.tv/documentation/videos/for-developers/foundation/using-net-user-controls" href="http://umbraco.tv/documentation/videos/for-developers/foundation/using-net-user-controls"&gt;&lt;em&gt;&lt;span style="font-family:verdana;"&gt;http://umbraco.tv/documentation/videos/for-developers/foundation/using-net-user-controls&lt;/span&gt;&lt;/em&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;&lt;a href="http://www.creativewebspecialist.co.uk/2009/03/06/creative-website-starter-%28cws2%29-for-umbraco-is-released.aspx"&gt;&lt;span style="font-family:verdana;"&gt;Install CWS 2&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt; - (&lt;/span&gt;&lt;a href="http://www.creativewebspecialist.co.uk/2009/03/06/creative-website-starter-%28cws2%29-for-umbraco-is-released.aspx"&gt;&lt;span style="font-family:verdana;"&gt;Creative Website Starter v2&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt; by Warren Buckley)&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;Once I had a grasp I decided to download and install CWS2, its a fully featured site straight out the box built by an Umbraco MVP! This was great as now I had an understanding from the videos, I started to delve around Warrens XSLT’s &amp;amp; Macro’s (If you watched all the videos you’ll know what an Umbraco Macro is) and see how things really work under the hood. &lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;Human Face To Face Training&lt;/strong&gt;&lt;br /&gt;Now I wanted to become level 1 certified (And successfully did just that) – So I decided to opt for &lt;/span&gt;&lt;a href="http://www.umbraco.tv/training"&gt;&lt;span style="font-family:verdana;"&gt;official training&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;. Umbraco do lots of training course (&lt;/span&gt;&lt;a title="http://www.umbraco.tv/training" href="http://www.umbraco.tv/training"&gt;&lt;span style="font-family:verdana;"&gt;http://www.umbraco.tv/training&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;) however most of them seem to be in Denmark, and as I am based in the UK I didn’t want to wait (Because I’m inpatient and I was excited) or travel to Denmark. So after some posting I found &lt;/span&gt;&lt;a href="http://www.percipientstudios.com/"&gt;&lt;span style="font-family:verdana;"&gt;Doug Robar&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;, based in Cambridge(UK) he is a level 1 trainer and came to our office for two days which was such a great help and made me realise ‘I should really read up a little about XSLT’.&lt;br /&gt;&lt;br /&gt;Here is a great little PDF from one of Doug's Presentation’s (Although for it to really make sense you need him sitting next to you explaining the slides):&lt;br /&gt;&lt;/span&gt;&lt;a title="http://blog.percipientstudios.com/2009/6/22/codegarden-%2709-presentation.aspx" href="http://blog.percipientstudios.com/2009/6/22/codegarden-%2709-presentation.aspx"&gt;&lt;span style="font-family:verdana;"&gt;http://blog.percipientstudios.com/2009/6/22/codegarden-%2709-presentation.aspx&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;&lt;span style="font-family:verdana;"&gt;XSLT Basics (Wiki) - &lt;/span&gt;&lt;/strong&gt;&lt;a title="http://umbraco.org/documentation/books/xslt-basics" href="http://umbraco.org/documentation/books/xslt-basics"&gt;&lt;strong&gt;&lt;span style="font-family:verdana;"&gt;http://umbraco.org/documentation/books/xslt-basics&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;Now after our time with Doug, he pointed me to this GREAT page on Umbraco. I would strongly recommend reading all these pages, as not only will you be able to create your own XSLT but be able to edit and understand everyone else’s – As you will find, majority of people use XSLT with macros for the free projects you can download. &lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2762447899887212599-424038025785368581?l=umbracocms.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://umbracocms.blogspot.com/2010/08/guide-to-umbraco-cms-for-beginners.html</link><author>noreply@blogger.com (Jason)</author><thr:total>3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2762447899887212599.post-7896848456941901325</guid><pubDate>Tue, 06 Apr 2010 22:51:00 +0000</pubDate><atom:updated>2010-04-07T05:56:01.142+07:00</atom:updated><title>How to Import RSS (and other) data</title><description>&lt;span class="BookAuthor"&gt;Written by Mark Burnham   &lt;/span&gt;&lt;br /&gt;&lt;h3&gt;&lt;a name="22257"&gt;&lt;span style="font-family:verdana;"&gt;Importing data into Umbraco&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;It's really easy to import data of all sorts into Umbraco. First of all, to import RSS feeds, you should read Kaspar's article on importing Flickr images:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://kasperb.dk/2006/6/26/display-your-flickr-images-on-your-umbraco-driven-website.aspx" target="_blank"&gt;http://kasperb.dk/2006/6/26/display-your-flickr-images-on-your-umbraco-driven-website.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;When I first read this, a number of lights went on, and I realized it was going to be easy to import any other kind of data into Umbraco. Basically, you import whatever data you want as XML,&lt;br /&gt;&lt;br /&gt;and transform it exactly like Kasper does, with XSLT.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;There are other methods. You can write a library as is described here:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://blockquote.be/2006/08/09/extending-umbraco-with-a-library/" target="_blank"&gt;&lt;span style="font-family:verdana;"&gt;http://blockquote.be/2006/08/09/extending-umbraco-with-a-library/&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;For me, it's easier and more flexible to output the data with a .NET Web Form and use &lt;strong&gt;umbraco.library:GetXmlDocumentByUrl&lt;/strong&gt; to import it into your XSLT.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;If your data source is SQL Server, you can use the "FOR XML" clause in your queries. You should definitely read up on this, because it will save you a bunch of time. Get the basics here:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.sqljunkies.ddj.com/Article/296D1B56-8BDD-4236-808F-E62CC1908C4E.scuk" target="_blank"&gt;&lt;span style="font-family:verdana;"&gt;http://www.sqljunkies.ddj.com/Article/296D1B56-8BDD-4236-808F-E62CC1908C4E.scuk&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;I'll give you a quick example of importing data from an AdventureWorks database (download the source from &lt;/span&gt;&lt;a href="http://www.manhattanheavy.com/media/2267/importdata.zip" target="_blank"&gt;&lt;span style="font-family:verdana;"&gt;here&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;) :&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;1) create a new Web Form in Visual Studio. Call it ourData.aspx. To make things simple, we'll do all the work in the Page_Load function:&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;div style="BORDER-BOTTOM: #cccccc 1px solid; POSITION: relative; MARGIN: 10px"&gt;&lt;span style="BORDER-BOTTOM: #cccccc 1px solid; TEXT-ALIGN: right; WIDTH: 100%; DISPLAY: block"&gt;&lt;a style="COLOR: #3366cc" onclick="if(this.parentNode.parentNode.getElementsByTagName('pre')[0].style.display==''){this.innerHTML = 'Show Code [+]';this.parentNode.parentNode.getElementsByTagName('pre')[0].style.display = 'none';this.parentNode.parentNode.getElementsByTagName('div')[0].style.display = '';}else{this.innerHTML = 'Hide Code [-]';this.parentNode.parentNode.getElementsByTagName('pre')[0].style.display = '';this.parentNode.parentNode.getElementsByTagName('div')[0].style.display = 'none';}return false;" href="http://www.blogger.com/post-create.g?blogID=2762447899887212599#"&gt;Hide Code [-]&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre style="PADDING-BOTTOM: 30px; OVERFLOW-X: auto; OVERFLOW-Y: hidden"&gt;&lt;br /&gt;    &lt;span style="font-size:85%;"&gt;&lt;span style="color:#0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; Page_Load(&lt;span style="color:#0000ff;"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt;    {&lt;br /&gt;&lt;br /&gt;        &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; sqlStr = "&lt;span style="color:#8b0000;"&gt;select top 30 Title, FirstName,LastName,EmailAddress FROM Person.Contact For XML RAW('Person.Contact'),ROOT,ELEMENTS&lt;/span&gt;";&lt;br /&gt;&lt;br /&gt;        &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; connStr = "&lt;span style="color:#8b0000;"&gt;Server=(local);Database=AdventureWorks; User ID=umbracoUser;Password=pass;&lt;/span&gt;";&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; (SqlConnection cn = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; SqlConnection(connStr))&lt;br /&gt;&lt;br /&gt;        &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; (SqlCommand cmd = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; SqlCommand(sqlStr, cn))&lt;br /&gt;        {&lt;br /&gt;            cmd.Connection.Open();&lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; (XmlReader xr = cmd.ExecuteXmlReader())&lt;br /&gt;            {&lt;br /&gt;                xr.Read();&lt;br /&gt;&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;while&lt;/span&gt; (xr.ReadState != System.Xml.ReadState.EndOfFile)&lt;br /&gt;                    Response.Write(xr.ReadOuterXml());&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="BACKGROUND-COLOR: #3366cc; DISPLAY: none; COLOR: #ffffff; FONT-WEIGHT: bold"&gt;&lt;span style="font-size:85%;"&gt;{..} Click Show Code&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Make sure to change the database connection string to whatever you need for you installation. You should be able to load this page in a browser and see a nice dose of XML. If you can't see XML, there's something wrong. &lt;strong&gt;NOTE:&lt;/strong&gt; When you get more complicated data imports, you can always see the XML by loading your "data import page".&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;2) Copy this Web Form to the /umbraco directory of your installation.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;3) Now, in Umbraco, create a new XSLT file and macro that contains the following code:&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;div style="BORDER-BOTTOM: #cccccc 1px solid; POSITION: relative; MARGIN: 10px"&gt;&lt;span style="BORDER-BOTTOM: #cccccc 1px solid; TEXT-ALIGN: right; WIDTH: 100%; DISPLAY: blockfont-size:85%;" &gt;&lt;a style="COLOR: #3366cc" onclick="if(this.parentNode.parentNode.getElementsByTagName('pre')[0].style.display==''){this.innerHTML = 'Show Code [+]';this.parentNode.parentNode.getElementsByTagName('pre')[0].style.display = 'none';this.parentNode.parentNode.getElementsByTagName('div')[0].style.display = '';}else{this.innerHTML = 'Hide Code [-]';this.parentNode.parentNode.getElementsByTagName('pre')[0].style.display = '';this.parentNode.parentNode.getElementsByTagName('div')[0].style.display = 'none';}return false;" href="http://www.blogger.com/post-create.g?blogID=2762447899887212599#"&gt;Hide Code [-]&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;pre style="PADDING-BOTTOM: 30px; OVERFLOW-X: auto; OVERFLOW-Y: hidden"&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;?&lt;/span&gt;xml version="1.0" encoding="UTF-8"&lt;span style="color:#0000ff;"&gt;?&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;!DOCTYPE xsl:Stylesheet [ &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;!ENTITY nbsp "&amp;amp;#x00A0;"&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt; ]&amp;gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;xsl&lt;/span&gt;:&lt;span style="color:#800000;"&gt;stylesheet&lt;/span&gt;&lt;br /&gt;  &lt;span style="color:#ff0000;"&gt;version&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"1.0"&lt;/span&gt;&lt;br /&gt;  &lt;span style="color:#ff0000;"&gt;xmlns&lt;/span&gt;:&lt;span style="color:#ff0000;"&gt;xsl&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"http://www.w3.org/1999/XSL/Transform"&lt;/span&gt;&lt;br /&gt;  &lt;span style="color:#ff0000;"&gt;xmlns&lt;/span&gt;:&lt;span style="color:#ff0000;"&gt;msxml&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"urn:schemas-microsoft-com:xslt"&lt;/span&gt;&lt;br /&gt;  &lt;span style="color:#ff0000;"&gt;xmlns&lt;/span&gt;:&lt;span style="color:#ff0000;"&gt;umbraco&lt;/span&gt;.&lt;span style="color:#ff0000;"&gt;library&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"urn:umbraco.library"&lt;/span&gt;&lt;br /&gt;  &lt;span style="color:#ff0000;"&gt;exclude&lt;/span&gt;-&lt;span style="color:#ff0000;"&gt;result&lt;/span&gt;-&lt;span style="color:#ff0000;"&gt;prefixes&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"msxml umbraco.library"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;xsl&lt;/span&gt;:&lt;span style="color:#800000;"&gt;output&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;method&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"xml"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;omit&lt;/span&gt;-&lt;span style="color:#ff0000;"&gt;xml&lt;/span&gt;-&lt;span style="color:#ff0000;"&gt;declaration&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"yes"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;xsl&lt;/span&gt;:&lt;span style="color:#800000;"&gt;variable&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;name&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"url"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;select&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"'http://localhost/umbraco/ourData.aspx'"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;xsl&lt;/span&gt;:&lt;span style="color:#800000;"&gt;template&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;match&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"/"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;xsl&lt;/span&gt;:&lt;span style="color:#800000;"&gt;variable&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;name&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"pagexml"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;select&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"umbraco.library:GetXmlDocumentByUrl($url)"&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#008000;"&gt;&amp;lt;!--&amp;lt;xsl:copy-of select="$pagexml"/&amp;gt;--&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;ul&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;xsl&lt;/span&gt;:&lt;span style="color:#800000;"&gt;for&lt;/span&gt;-&lt;span style="color:#ff0000;"&gt;each&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;select&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"$pagexml/root/Person.Contact"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;li&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;xsl&lt;/span&gt;:&lt;span style="color:#800000;"&gt;value&lt;/span&gt;-&lt;span style="color:#ff0000;"&gt;of&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;select&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"Title"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&amp;amp;nbsp;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;xsl&lt;/span&gt;:&lt;span style="color:#800000;"&gt;value&lt;/span&gt;-&lt;span style="color:#ff0000;"&gt;of&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;select&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"FirstName"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&amp;amp;nbsp;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;xsl&lt;/span&gt;:&lt;span style="color:#800000;"&gt;value&lt;/span&gt;-&lt;span style="color:#ff0000;"&gt;of&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;select&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;"LastName"&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;li&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#c71585;"&gt;xsl&lt;/span&gt;:&lt;span style="color:#800000;"&gt;for&lt;/span&gt;-each&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;ul&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#c71585;"&gt;xsl&lt;/span&gt;:&lt;span style="color:#800000;"&gt;template&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#c71585;"&gt;xsl&lt;/span&gt;:&lt;span style="color:#800000;"&gt;stylesheet&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="BACKGROUND-COLOR: #3366cc; DISPLAY: none; COLOR: #ffffff; FONT-WEIGHT: bold"&gt;{..} Click Show Code&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;2 items of note here:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;a) the URL path has to be complete (use "http://")&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;b) You can always see what is being imported by using the &lt;strong&gt;xsl:copy-of&lt;/strong&gt; function.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;4) Place the macro you created in step 3 anywhere you like and the data will appear. That's it!&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;Hopefully you can now see how easy it is to import data into Umbraco. Have fun!!&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2762447899887212599-7896848456941901325?l=umbracocms.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://umbracocms.blogspot.com/2010/04/how-to-import-rss-and-other-data.html</link><author>noreply@blogger.com (Jason)</author><thr:total>33</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2762447899887212599.post-3958542110597328684</guid><pubDate>Mon, 05 Apr 2010 22:09:00 +0000</pubDate><atom:updated>2010-04-06T05:45:45.752+07:00</atom:updated><title>Get Over 1000 Templates In Umbraco</title><description>&lt;span class="BookAuthor"&gt;Written by Richard Weeks &lt;/span&gt;&lt;br /&gt;&lt;span class="BookumbVer"&gt;&lt;br /&gt;&lt;h3&gt;&lt;a name="18286"&gt;&lt;span style="font-family:verdana;"&gt;Get Over 1000 Templates In Umbraco&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;In this article, I am going to show you how to get access to a huge range of cross-browser CSS-template layouts in Umbraco using one CSS file and two Umbraco templates. No, that's not a typo!&lt;br /&gt;&lt;br /&gt;In the interest of keeping things brief, this article assumes you have a fresh working installation of Umbraco. I also assume you have at least a working knowledge of how templates work in Umbraco.&lt;br /&gt;&lt;br /&gt;First of all, download the latest &lt;/span&gt;&lt;a href="http://developer.yahoo.com/yui/]" target="_blank"&gt;&lt;span style="font-family:verdana;"&gt;Yahoo User Interface (YUI)&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt; from Yahoo!.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;Extract the archive and copy "reset-fonts-grids" from the Build directory. That's the only file you will need for the purposes of this article but I strongly recommend you delve into the documentation regarding the rest of the library.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;Again, to keep things simple, we won't bother copying this file to Umbraco. I like to put things like this in their own directory, say, /Assets/Styles/YUI/.&lt;/span&gt;&lt;/p&gt;&lt;h3&gt;&lt;span style="font-family:verdana;"&gt;Specifying Document Widths&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;Next, we need to start creating our templates. First, we create our page templates. These basically set how wide the content is on a web page and how it reacts to browser resizing. These are set by applying a specific ID and are as follows:&lt;br /&gt;&lt;br /&gt;#doc - 750px centred (good for 800x600)&lt;br /&gt;#doc2 - 950px centred (good for 1024x768)&lt;br /&gt;#doc3 - 100% fluid (good for everybody)&lt;br /&gt;#doc4 - 974px fluid (good for 1024x768)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;There is also another custom width:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;&lt;span class="c2"&gt;#doc-custom&lt;/span&gt; - an example of a custom page width&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;I'll just be using the first 4. These provide for the vast majority of use cases.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;I created a base template, which looks like this:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="c2"&gt;&amp;lt;!DOCTYPE HTML PUBLIC &amp;quot;-//W3C//DTD HTML 4.01//EN&amp;quot;&lt;/span&gt; &lt;span class="c2"&gt;&amp;quot;&lt;/span&gt;&lt;a href="http://www.w3.org/TR/html4/strict.dtd&amp;quot;" class="c3"&gt;http://www.w3.org/TR/html4/strict.dtd&amp;quot;&lt;/a&gt;&lt;span class="c2"&gt;&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;link rel="stylesheet" href="/Styles/YUI/reset-fonts-grids/reset-fonts-grids.css" type="text/css"&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;lt;div id="" class=""&amp;gt;&lt;br /&gt;&amp;lt;div id="hd"&amp;gt;Header&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;div id="bd"&amp;gt;Body&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;div id="ft"&amp;gt;Footer&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;h3&gt;&lt;span style="font-family:verdana;"&gt;Specifying Document Templates&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;Now, this is where it gets interesting. Look at this part of the code:&lt;/span&gt;&lt;/p&gt;&lt;p class="c1"&gt;&lt;span style="font-family:verdana;"&gt;&amp;lt;div id="" class=""&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;This is our placeholder for one the IDs as specified above. Putting one of those IDs into this template will make it conform to that page width. That's not the whole story though. Note also the class attribute. The class allows us to further specify the layout of our page. We can add a range of class names that further divide the page within the body region. These are as follows:&lt;/span&gt;&lt;/p&gt;&lt;p class="c1"&gt;&lt;span style="font-family:verdana;"&gt;.yui-t1 - Two columns, narrow on left, 160px&lt;br /&gt;.yui-t2 - Two columns, narrow on left, 180px&lt;br /&gt;.yui-t3 - Two columns, narrow on left, 300px&lt;br /&gt;.yui-t4 - Two columns, narrow on right, 180px&lt;br /&gt;.yui-t5 - Two columns, narrow on right, 240px&lt;br /&gt;.yui-t6 - Two columns, narrow on right, 300px&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;What about if we just want one column? Well, this has a class attribute of .yui-t7.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;To accompany each of these templates, we have some code to add between our body. In terms of Umbraco, the page width document serves as our master template and the template that provides page columns are sub templates. Here are the templates for t1 to t6 (remember these go between #bd):&lt;/span&gt;&lt;/p&gt;&lt;p class="c1"&gt;&lt;span style="font-family:verdana;"&gt;&amp;lt;div id="yui-main"&amp;gt;&lt;br /&gt;&amp;lt;div class="yui-b"&amp;gt;&lt;br /&gt;&amp;lt;div class="yui-g"&amp;gt;&lt;br /&gt;&amp;lt;!-- YOUR DATA GOES HERE --&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;div class="yui-b"&amp;gt;&lt;br /&gt;&amp;lt;!-- YOUR NAVIGATION GOES HERE --&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;No, actually, that's it! Yes, you get 6 templates for the price of 1!&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;The one-column template is very simple:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;&lt;span class="c2"&gt;&amp;lt;div class="yui-g"&amp;gt;&lt;br /&gt;&amp;lt;!-- YOUR DATA GOES HERE --&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;&lt;h3&gt;&lt;span style="font-family:verdana;"&gt;Making YUI Grids Work With Umbraco&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;Let's make our templates more Umbraco friendly.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="c2"  style="font-family:verdana;"&gt;&amp;lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "&lt;/span&gt;&lt;a class="c3" href="http://www.w3.org/TR/html4/strict.dtd%22"&gt;&lt;span style="font-family:verdana;"&gt;http://www.w3.org/TR/html4/strict.dtd%22&lt;/span&gt;&lt;/a&gt;&lt;span id="'&amp;amp;"  href="/Styles/YUI/reset-fonts-grids.css" rel="stylesheet" style="font-family:verdana;"&gt;&amp;lt;div id="hd"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;div id="bd"&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="c1"&gt;&lt;span style="font-family:verdana;"&gt;&amp;lt;?UMBRACO_TEMPLATE_LOAD_CHILD/&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="c1"&gt;&lt;span style="font-family:verdana;"&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;div id="ft"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/?ASPNET_FORM&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;This is perhaps the quickest implementation. What we are saying here is there will always be two properties given to any page created. These will supply the document ID and Class. You would create these document properties when you create the accompanying Document Type entry in Umbraco.&lt;/span&gt;&lt;/p&gt;&lt;h3&gt;&lt;span style="font-family:verdana;"&gt;Advanced Template Selection&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;If you don't want to have to supply these details every time a page is created, you could bind their values to a Macro and use some XSLT to automatically choose the appropriate attribute values, e.g.:&lt;/span&gt;&lt;/p&gt;&lt;p class="c1"&gt;&lt;span style="font-family:verdana;"&gt;&amp;lt;div id="&amp;lt;?UMBRACO_GETITEM field="templateId"/&amp;gt;" class="&amp;lt;?UMBRACO_GETITEM field="templateClass"/&amp;gt;"&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;Becomes...&lt;/span&gt;&lt;/p&gt;&lt;p class="c1"&gt;&lt;span style="font-family:verdana;"&gt;&amp;lt;?UMBRACO_MACRO macroAlias="GenerateDocType"&amp;gt;&amp;lt;/?UMBRACO_MACRO&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;The Macro has no parameters and simply gets the results of a XSL transformation:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="c2"  style="font-family:verdana;"&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&amp;lt;!DOCTYPE xsl:Stylesheet [ &amp;lt;!ENTITY nbsp "&amp;amp;#x00A0;"&amp;gt; ]&amp;gt;&lt;br /&gt;&amp;lt;xsl:stylesheet&lt;br /&gt;version="1.0"&lt;br /&gt;xmlns:xsl="&lt;/span&gt;&lt;a class="c3" href="http://www.w3.org/1999/XSL/Transform%22"&gt;&lt;span style="font-family:verdana;"&gt;http://www.w3.org/1999/XSL/Transform%22&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="c2"  style="font-family:verdana;"&gt;xmlns:msxml="urn:schemas-microsoft-com:xslt"&lt;br /&gt;xmlns:umbraco.library="urn:umbraco.library"&lt;br /&gt;exclude-result-prefixes="msxml umbraco.library"&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="c1"&gt;&lt;span style="font-family:verdana;"&gt;&amp;lt;xsl:output method="xml" omit-xml-declaration="yes"/&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="c1"&gt;&lt;span style="font-family:verdana;"&gt;&amp;lt;xsl:param name="currentPage"/&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="c1"&gt;&lt;span style="font-family:verdana;"&gt;&amp;lt;xsl:template match="/"&amp;gt;&lt;br /&gt;&amp;lt;xsl:choose&amp;gt;&lt;br /&gt;&amp;lt;xsl:when test="$currentPage/@nodeTypeAlias = 'YOUR_NODE_TYPE_ALIAS'"&amp;gt;&lt;br /&gt;&amp;lt;xsl:call-template name="doctype"&amp;gt;&lt;br /&gt;&amp;lt;xsl:with-param name="document"&amp;gt;YOUR_SPECIFIC_ID_VALUE&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;&amp;lt;xsl:with-param name="template"&amp;gt;YOUR_SPECIFIC_CLASS_VALUE&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;&amp;lt;/xsl:call-template&amp;gt;&lt;br /&gt;&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;&amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;&amp;lt;xsl:call-template name="doctype"&amp;gt;&lt;br /&gt;&amp;lt;xsl:with-param name="document"&amp;gt;YOUR_SPECIFIC_ID_VALUE&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;&amp;lt;xsl:with-param name="template"&amp;gt;YOUR_SPECIFIC_CLASS_VALUE&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;&amp;lt;/xsl:call-template&amp;gt;&lt;br /&gt;&amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;&amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;&amp;lt;/xsl:template&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="c1"&gt;&lt;span style="font-family:verdana;"&gt;&amp;lt;xsl:template name="doctype"&amp;gt;&lt;br /&gt;&amp;lt;xsl:param name="document" /&amp;gt;&lt;br /&gt;&amp;lt;xsl:param name="template" /&amp;gt;&lt;br /&gt;&amp;lt;xsl:text disable-output-escaping="yes"&amp;gt;&amp;lt;![CDATA[&amp;lt;div id="]]&amp;gt;&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;&amp;lt;xsl:value-of select="$document"/&amp;gt;&lt;br /&gt;&amp;lt;xsl:text disable-output-escaping="yes"&amp;gt;&amp;lt;![CDATA[" class="]]&amp;gt;&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;&amp;lt;xsl:value-of select="$template"/&amp;gt;&lt;br /&gt;&amp;lt;xsl:text disable-output-escaping="yes"&amp;gt;&amp;lt;![CDATA["&amp;gt;]]&amp;gt;&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;&amp;lt;/xsl:template&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="c1"&gt;&lt;span style="font-family:verdana;"&gt;&amp;lt;/xsl:stylesheet&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;The caveat of the first method is that you must supply the id and class attribute values with every page, for the second you must remember to create an entry in the XSLT to supply the appropriate values.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;To form your pages, create a template with the template code:&lt;/span&gt;&lt;/p&gt;&lt;p class="c1"&gt;&lt;span style="font-family:verdana;"&gt;&amp;lt;div id="yui-main"&amp;gt;&lt;br /&gt;&amp;lt;div class="yui-b"&amp;gt;&lt;br /&gt;&amp;lt;div class="yui-g"&amp;gt;&lt;br /&gt;&amp;lt;!-- YOUR DATA GOES HERE --&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;div class="yui-b"&amp;gt;&lt;br /&gt;&amp;lt;!-- YOUR NAVIGATION GOES HERE --&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;Make the document width template the master and you're good to go - lots of possible combinations from just two templates and one CSS file!&lt;/span&gt;&lt;/p&gt;&lt;h3&gt;&lt;span style="font-family:verdana;"&gt;Wrapping Up&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;This article really only touches on the power and flexibility of YUI Grids. If you are interested, visit the YUI developer site and particularly look at nested grids. Adding these will give you the ability to create thousands of templates using very little code. YUI Grids can be very confusing at first but perseverance wins. Naturally, the examples above keeps everything basic but I hope you can see with the addition of nested grids, your templates within Umbraco could get very creative indeed.&lt;br /&gt;&lt;br /&gt;Note that of course, nothing is perfect. YUI Grids are an amazing achievement but like all frameworks, subject to bugs and bug fixes! YUI has an established developer community and you can find details of this for help, when needed, on the YUI site.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="BookumbVer"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2762447899887212599-3958542110597328684?l=umbracocms.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://umbracocms.blogspot.com/2010/04/get-over-1000-templates-in-umbraco.html</link><author>noreply@blogger.com (Jason)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2762447899887212599.post-5240545253976600000</guid><pubDate>Sun, 04 Apr 2010 22:36:00 +0000</pubDate><atom:updated>2010-04-05T05:38:18.797+07:00</atom:updated><title>Debugging</title><description>&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;Debugging your Umbraco usercontrols&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;If your newly built usercontrol fails to work, you have several options to debug your control:&lt;br /&gt;&lt;br /&gt;If you add ?umbDebugShowTrace=true to the URL, you'll be able to see a complete stack trace, showing all parts of the communication between Umbraco and your usercontrol. The actual error(s) is marked with red.&lt;br /&gt;&lt;br /&gt;You can also see the elements being passed to a macro by appending&lt;br /&gt;?umbDebug=true to the URL in your browser &lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2762447899887212599-5240545253976600000?l=umbracocms.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://umbracocms.blogspot.com/2010/04/debugging.html</link><author>noreply@blogger.com (Jason)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2762447899887212599.post-5032217988315844649</guid><pubDate>Sun, 04 Apr 2010 03:26:00 +0000</pubDate><atom:updated>2010-04-04T10:48:13.323+07:00</atom:updated><title>Creating and Using an Action Handler</title><description>&lt;div align="left"&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;What is an action handler?&lt;/strong&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;An action handler is a piece of code (a proper class) that gives you the possibility to react on the actions performed by any user in the content tree. For example, you can perform some actions in each node in the tree content is published. An example will explain in detail:&lt;br /&gt;&lt;br /&gt;For a concrete example, I took the position that umbraco has the build in mechanism to define the values of properties Devault new content. The new action will Handler Devault write values to properties of a document type defined.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;How to implement an action handler&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;You can implement your own action in any Handler. NET as a class. In this example, I'll do a class project own library to show how the complete cycle.&lt;br /&gt;&lt;br /&gt;1. So in VS.NET create a class library project. Give it a name of your choice. In this example, the name of the project is TH.Umb.Sandbox.Library.&lt;br /&gt;&lt;br /&gt;2. Add a new class and give it a name of your choice. In this example, the name of the class is DefaultValueHandler&lt;br /&gt;&lt;br /&gt;3. Add references businesslogic.dll, and cms.dll interfaces.dll from the bin folder umbraco.&lt;br /&gt;&lt;br /&gt;4. Let class implements the interface umbraco.BusinessLogic.Actions.IActionHandler.&lt;br /&gt;&lt;br /&gt;5. Implement HandlerName the function that returns the name of this action handler.&lt;br /&gt;&lt;br /&gt;6. Implement returnAction the function that defines the actions to which the action handler will react.&lt;br /&gt;&lt;br /&gt;7. Last but not least the implementation of the Run function that does the job. Here you can set this code should be executed on this measure.&lt;br /&gt;Thus, at least, you should have a code like this:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre class="code"&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;using&lt;/span&gt; System;&lt;br /&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;namespace&lt;/span&gt; TH.Umb.Sandbox.Library&lt;br /&gt;{&lt;br /&gt;    &lt;span style="COLOR: rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="COLOR: rgb(0,0,255)"&gt;class&lt;/span&gt; &lt;span style="COLOR: rgb(43,145,175)"&gt;DefaultValueHandler&lt;/span&gt; : umbraco.BusinessLogic.Actions.&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="COLOR: rgb(43,145,175)"&gt;IActionHandler&lt;br /&gt;&lt;/span&gt;    {&lt;br /&gt;        &lt;span style="COLOR: rgb(0,0,255)"&gt;string&lt;/span&gt; umbraco.BusinessLogic.Actions.&lt;span style="COLOR: rgb(43,145,175)"&gt;IActionHandler&lt;/span&gt;.HandlerName()&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="COLOR: rgb(0,0,255)"&gt;return&lt;/span&gt; &lt;span style="COLOR: rgb(163,21,21)"&gt;"TH.Umb.Sandbox.Library.DefaultValueHandler"&lt;/span&gt;;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        umbraco.interfaces.&lt;span style="COLOR: rgb(43,145,175)"&gt;IAction&lt;/span&gt;[] umbraco.BusinessLogic.Actions.&lt;span style="COLOR: rgb(43,145,175)"&gt;IActionHandler&lt;/span&gt;.ReturnActions()&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="COLOR: rgb(0,0,255)"&gt;return&lt;/span&gt; &lt;span style="COLOR: rgb(0,0,255)"&gt;new&lt;/span&gt; umbraco.interfaces.&lt;span style="COLOR: rgb(43,145,175)"&gt;IAction&lt;/span&gt;[] { &lt;span style="COLOR: rgb(0,0,255)"&gt;new&lt;/span&gt; umbraco.BusinessLogic.Actions.&lt;span style="COLOR: rgb(43,145,175)"&gt;ActionNew&lt;/span&gt;() };&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="COLOR: rgb(43,145,175)"&gt;Boolean&lt;/span&gt; umbraco.BusinessLogic.Actions.&lt;span style="COLOR: rgb(43,145,175)"&gt;IActionHandler&lt;/span&gt;.Execute(&lt;br /&gt;       umbraco.cms.businesslogic.web.&lt;span style="COLOR: rgb(43,145,175)"&gt;Document&lt;/span&gt; documentObject,umbraco.interfaces.&lt;span style="COLOR: rgb(43,145,175)"&gt;IAction&lt;/span&gt; action)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="COLOR: rgb(0,0,255)"&gt;if&lt;/span&gt; (documentObject.ContentType.Alias == &lt;span style="COLOR: rgb(163,21,21)"&gt;"th_sandbox_defaultvaluetest"&lt;/span&gt;)&lt;br /&gt;            {&lt;br /&gt;                &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;try&lt;br /&gt;&lt;/span&gt;                {&lt;br /&gt;                    umbraco.cms.businesslogic.property.&lt;span style="COLOR: rgb(43,145,175)"&gt;Property&lt;/span&gt; p =&lt;br /&gt;                    documentObject.getProperty(&lt;span style="COLOR: rgb(163,21,21)"&gt;"DefaultValueProperty"&lt;/span&gt;);&lt;br /&gt;                    &lt;span style="COLOR: rgb(0,0,255)"&gt;if&lt;/span&gt; (p == &lt;span style="COLOR: rgb(0,0,255)"&gt;null&lt;/span&gt;) { &lt;span style="COLOR: rgb(0,0,255)"&gt;return&lt;/span&gt; &lt;span style="COLOR: rgb(0,0,255)"&gt;false&lt;/span&gt;; }&lt;br /&gt;                    p.Value = &lt;span style="COLOR: rgb(163,21,21)"&gt;"This is the default value set by an action handler"&lt;/span&gt;;&lt;br /&gt;                    documentObject.Save();&lt;br /&gt;                }&lt;br /&gt;                &lt;span style="COLOR: rgb(0,0,255)"&gt;catch&lt;/span&gt; (&lt;span style="COLOR: rgb(43,145,175)"&gt;Exception&lt;/span&gt;)&lt;br /&gt;                {&lt;br /&gt;                    &lt;span style="COLOR: rgb(0,0,255)"&gt;return&lt;/span&gt; &lt;span style="COLOR: rgb(0,0,255)"&gt;false&lt;/span&gt;;&lt;br /&gt;                }&lt;br /&gt;                &lt;span style="COLOR: rgb(0,0,255)"&gt;return&lt;/span&gt; &lt;span style="COLOR: rgb(0,0,255)"&gt;true&lt;/span&gt;;&lt;br /&gt;            }&lt;br /&gt;            &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;else&lt;br /&gt;&lt;/span&gt;            {&lt;br /&gt;                &lt;span style="COLOR: rgb(0,0,255)"&gt;return&lt;/span&gt; &lt;span style="COLOR: rgb(0,0,255)"&gt;false&lt;/span&gt;;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;A word from the function of returnAction: The return variable is an array of actions. Thus, you can come back to action. Therefore, you can manage more than one type of action with an action Handler.&lt;br /&gt;&lt;br /&gt;A word to the execution of the function: The first item you get from this function is called documentObject and it is the document upon which this action is the stage. The second parameter is the action that is the stage. So if you defined an action returnAction you can delay the action you handle at this time.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;How to install the action handler&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;The installation is done by copying the dll in the bin folder umbraco:&lt;br /&gt;&lt;br /&gt;1. First build the project release (right click on the project, select new build). &lt;/span&gt;&lt;/div&gt;&lt;span style="font-family:verdana;"&gt;&lt;div align="justify"&gt;&lt;br /&gt;2. Then go to the project file to select the DLL from the bin / output folder (in this case, select the TH.Umb.Sandbox.Library.dll) and copy it into the bin folder umbraco. &lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;That's it. Now the manager is installed and will perform all the actions you have selected.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Supported Actions&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;•Assign Domain&lt;br /&gt;•Audit&lt;br /&gt;•Copy&lt;br /&gt;•Delete&lt;br /&gt;•Disable&lt;br /&gt;•Empty Transcan (new in v3)&lt;br /&gt;•Export&lt;br /&gt;•Import&lt;br /&gt;•Move&lt;br /&gt;•New&lt;br /&gt;•Notify&lt;br /&gt;•Package&lt;br /&gt;•PackageCreate&lt;br /&gt;•Protect&lt;br /&gt;•Publish&lt;br /&gt;•Quit&lt;br /&gt;•Refresh&lt;br /&gt;•RePublish&lt;br /&gt;•Rights&lt;br /&gt;•Rollback&lt;br /&gt;•Save&lt;br /&gt;•SendToTranslate (new in v3)&lt;br /&gt;•Sort&lt;br /&gt;•ToPublish&lt;br /&gt;•Translate (new in v3)&lt;br /&gt;•UnPublish&lt;br /&gt;•Update &lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2762447899887212599-5032217988315844649?l=umbracocms.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://umbracocms.blogspot.com/2010/04/creating-and-using-action-handler.html</link><author>noreply@blogger.com (Jason)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2762447899887212599.post-2982248558974348997</guid><pubDate>Sat, 05 Dec 2009 00:06:00 +0000</pubDate><atom:updated>2009-12-05T07:07:03.019+07:00</atom:updated><title>Best Blog Software - What Are the Best Choices?</title><description>&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;When trying to find the right if not the best blog software there are tons of options available.&lt;br /&gt;&lt;br /&gt;Your choice will largely depend on how much money you have to invest in it and also the kind of options that you are looking at in a weblog application.&lt;br /&gt;&lt;br /&gt;Some of the common free blogging applications are Wordpress and Blogger. Blogger is incredibly easy to use and you can have a new blog up in minutes right on their server. However, one of the limitations of Blogger is that you can't use plugins that are specially designed for Wordpress blogs.&lt;br /&gt;&lt;br /&gt;Other popular choices include Drupo, Typo, Squarespace, Kiubi, Movable Type and Umbraco.&lt;br /&gt;&lt;br /&gt;How To Know When You Should Buy Your Blogging Software&lt;br /&gt;&lt;br /&gt;It's important to consider your blogging needs first of all. If you are serious about blogging and making money as a blogger then you really need a software application that will automate a lot of the tedious tasks and free up a lot of your valuable time to do other things.&lt;br /&gt;&lt;br /&gt;You also need to consider your skill level. Some programs are more complicated than others. Other software programs such as Blogger are simple to use and provide step by step instructions.&lt;br /&gt;&lt;br /&gt;Price is another factor.&lt;br /&gt;&lt;br /&gt;Features are also of critical importance. If you only have basic needs and aren't serious about blogging then Blogger or Wordpress should be enough to get you started.&lt;br /&gt;&lt;br /&gt;However, if you blogging to create a passive monthly income from it then the right program is a must have - not a choice. I'm a niche blogger myself and my program of choice is cutting edge. It's called Firepow. It's perfect for both novices and advanced bloggers. It's easy to use, you can create a blog in a matter of minutes, and monitor and manage multiple blogs from the one control panel. You can see an example of a Firepow created blog here.&lt;br /&gt;&lt;br /&gt;I make $8000,00 online as a niche blogger. Let me give YOU the edge over other Firepow users with my exclusive Firepow offer. Instantly save 30% on Firepow and get access to my exclusive Firepow bonuses to help you make money online. PLUS when you invest in Firepow at the site below you'll also qualify for free one on one email coaching and mentoring with me.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2762447899887212599-2982248558974348997?l=umbracocms.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://umbracocms.blogspot.com/2009/12/best-blog-software-what-are-best.html</link><author>noreply@blogger.com (Jason)</author><thr:total>3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2762447899887212599.post-6922816054153092567</guid><pubDate>Thu, 03 Dec 2009 03:02:00 +0000</pubDate><atom:updated>2009-12-03T10:13:17.522+07:00</atom:updated><title>Install umbraco on Windows Server 2003</title><description>&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Installing umbraco on Windows Server 2003 is very simple and quick.&lt;br /&gt;&lt;br /&gt;Beginning with umbraco v3.0.3, you can use the automated MSI installer. These instructions, however, demonstrate in detail every step that is required for a manual installation of umbraco.&lt;br /&gt;&lt;br /&gt;Prerequisites&lt;br /&gt;These instructions assume you have already installed and configured the following items on your server(s).&lt;br /&gt;&lt;br /&gt;•Windows Server 2003&lt;br /&gt;•IIS&lt;br /&gt;•Microsoft .NET Framework 2.0&lt;br /&gt;•Microsoft ASP.NET 2.0 AJAX Extensions 1.0&lt;br /&gt;•Microsoft SQL Server 2005&lt;br /&gt;Note: Be sure that the TCP/IP protocol is enabled via the SQL Server Configuration Manager&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;INSTALL SQL Server Management Studio&lt;br /&gt;1.Click Start, click All Programs, click Microsoft SQL Server 2005, and click SQL Server Management Studio.&lt;br /&gt;2.Connect to the database server with an account that has sufficient permissions to create a new database. Contact your database system administrator if you are unsure how to log in.&lt;br /&gt;&lt;br /&gt;3.Click Connect.&lt;br /&gt;4.Right-click on the Databases folder, and select New Database.&lt;br /&gt;&lt;br /&gt;5.Enter a Database name.&lt;br /&gt;(we’ll use ‘umbracoCMS’ in these instructions)&lt;br /&gt;6.Leave the Owner as &lt;default&gt;.&lt;br /&gt;&lt;br /&gt;7.Click OK.&lt;br /&gt;8.Expand the Security folder.&lt;br /&gt;9.Right-click on the Logins folder, and select New Login.&lt;br /&gt;&lt;br /&gt;10.Select the General page:&lt;br /&gt;   1.Enter a Login name. (we’ll use ‘umbracoUser’ in these instructions)&lt;br /&gt;   2.Select the radio button next to “SQL Server authentication”, and enter and confirm a Password.&lt;br /&gt;   3.Remove the check mark in the box next to “Enforce password policy”.&lt;br /&gt;(note: this is optional and should not be done in a production environment)&lt;br /&gt;&lt;br /&gt;11.Select the User Mapping page:&lt;br /&gt;   1.Place a check mark in the box next to the Database you created.&lt;br /&gt;(‘umbracoCMS’ in these instructions)&lt;br /&gt;   2.Place a check mark in the boxes next to the following Database role memberships:&lt;br /&gt;    db_datareader&lt;br /&gt;    db_datawriter&lt;br /&gt;    db_owner&lt;br /&gt;    public&lt;br /&gt;&lt;br /&gt;   3.Click OK.&lt;br /&gt;12.Right-click on the root server folder (the parent of Databases, Security, etc.), and select Properties.&lt;br /&gt;&lt;br /&gt;13.Select the Security page:&lt;br /&gt;   1.Select the radio button next to “SQL Server and Windows Authentication mode”.&lt;br /&gt;&lt;br /&gt;   2.Click OK.&lt;br /&gt;          Test the configuration by disconnecting and logging in as the user you just created.&lt;br /&gt;           1.Click File, click Disconnect Object Explorer.&lt;br /&gt;           2.Click File, click Connect Object Explorer.&lt;br /&gt;           3.Select SQL Server Authentication, enter the name of the login user you create (‘umbracoUser’ in these instructions), and type the password you specified when you created the login user, above..&lt;br /&gt;&lt;br /&gt;           4.Click Options.&lt;br /&gt;           5.Select the Connections Properties tab.&lt;br /&gt;           6.Select TCP/IP as the Network Protocol.&lt;br /&gt;&lt;br /&gt;           7.Click Connect.&lt;br /&gt;           If you cannot log in with SQL Server authentication…&lt;br /&gt;             •Check the log files after a failed attempt.&lt;br /&gt;             •The default log location is C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG\ERRORLOG and can be opened with Notepad.&lt;br /&gt;             •Look for an entry in the ERRORLOG such as: 2007-05-16 16:43:42.75 Logon Error: 18456, Severity: 14, State: 8.&lt;br /&gt;             •“State: 8” indicates a problem with the user password.&lt;br /&gt;             •You can find a list of the meaning of each state message at &lt;/span&gt;&lt;a href="http://blogs.msdn.com/sql_protocols/archive/2006/02/21/536201.aspx"&gt;&lt;span style="font-family:verdana;"&gt;http://blogs.msdn.com/sql_protocols/archive/2006/02/21/536201.aspx&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;br /&gt;Install umbraco 3.0 Files&lt;br /&gt;These instructions were created using umbraco 3.0.3.&lt;br /&gt;&lt;br /&gt;IIS on Windows Server can host a large number of web sites. If you already have web site content in C:\Inetpub\wwwroot (the Default Web Site), create a new web site and corresponding root folder with the IIS Manager and extract the files and folders into that new location (such as, C:\Inetpub\umbracoRoot). These instructions will use the default web site.&lt;br /&gt;&lt;br /&gt;Note that umbraco 3.x does not support being installed in virtual directories.&lt;br /&gt;&lt;br /&gt;1.Download the binaries for umbraco 3.0 from the umbraco web site at:&lt;br /&gt;http://www.codeplex.com/umbraco/Release/ProjectReleases.aspx?ReleaseId=6344&lt;br /&gt;2.Save the v303.zip file to your desktop.&lt;br /&gt;3.When downloading has finished, double-click the v303.zip file on your desktop.&lt;br /&gt;4.Click Extract all files.&lt;br /&gt;&lt;br /&gt;5.Follow the wizard to extract all files and folders to C:\Inetpub\wwwroot&lt;br /&gt;Note: it is vital that you keep the file and folder structure intact!&lt;br /&gt;Set file permissions &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;You will need to set file permissions to allow umbraco to create and update its files.&lt;br /&gt;&lt;br /&gt;1.Using My Computer or the Windows Explorer, navigate to the folder containing the umbraco web site files.&lt;br /&gt;Note: C:\Inetpub\wwwroot, according to these instructions.&lt;br /&gt;2.Hold down the CTRL key, and click the following folders to select them:&lt;br /&gt;bin&lt;br /&gt;config&lt;br /&gt;css&lt;br /&gt;data&lt;br /&gt;media&lt;br /&gt;python&lt;br /&gt;scripts&lt;br /&gt;umbraco&lt;br /&gt;usercontrols&lt;br /&gt;xslt &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;   1.Right-click on any of the selected folders, click Properties.&lt;br /&gt;&lt;br /&gt;   2.On the Security tab, click Add.&lt;br /&gt;&lt;br /&gt;   3.Click Locations.&lt;br /&gt;&lt;br /&gt;   4.Select the local machine (or domain controller if it is the local machine)&lt;br /&gt;&lt;br /&gt;   5.Type NETWORK SERVICE into the “Enter the object names to select” text box.&lt;br /&gt;(Note: NETWORK SERVICE is the default owner of the web site’s application pool in IIS. If you have changed the application pool to another user, enter that username here)&lt;br /&gt;&lt;br /&gt;   6.Click Check Names.&lt;br /&gt;Note: the text field should change to NETWORK SERVICE, and underline the name, indicating the account has been found and validated.&lt;br /&gt;&lt;br /&gt;   7.Click OK.&lt;br /&gt;   8.On the Security tab, click the NETWORK SERVICE user name.&lt;br /&gt;   9.Place a check mark in the box next to Full Control, in the Allow column.&lt;br /&gt;&lt;br /&gt;   10.Click OK.&lt;br /&gt;3.Click the web.config file and repeat the steps above&lt;br /&gt;&lt;br /&gt;Configure IIS for umbraco&lt;br /&gt;1.Click Start, click Administrative Tools, and click Internet Information Services (IIS) Manager.&lt;br /&gt;2.Expand the (local computer) folder, expand the Web Sites folder, and click on Default Web Site.&lt;br /&gt;Note: if you extracted the umbraco files to a folder other than C:\Inetpub\wwwroot, select the website that corresponds to that file location.&lt;br /&gt;3.Right-click on Default Web Site, click on Properties.&lt;br /&gt;&lt;br /&gt;4.On the ASP.NET tab, select ASP.NET version of 2.0.xxxxx.&lt;br /&gt;&lt;br /&gt;5.You may also need to add default.aspx as the top-most entry on the Documents tab if it is not already present.&lt;br /&gt;&lt;br /&gt;6.Click OK.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Configure IIS for umbraco&lt;br /&gt;1.Click Start, click Administrative Tools, and click Internet Information Services (IIS) Manager.&lt;br /&gt;2.Expand the (local computer) folder, expand the Web Sites folder, and click on Default Web Site.&lt;br /&gt;Note: if you extracted the umbraco files to a folder other than C:\Inetpub\wwwroot, select the website that corresponds to that file location.&lt;br /&gt;3.Right-click on Default Web Site, click on Properties.&lt;br /&gt;&lt;br /&gt;4.On the ASP.NET tab, select ASP.NET version of 2.0.xxxxx.&lt;br /&gt;&lt;br /&gt;5.You may also need to add default.aspx as the top-most entry on the Documents tab if it is not already present.&lt;br /&gt;&lt;br /&gt;6.Click OK.&lt;br /&gt;&lt;br /&gt;Configure umbraco 3.0&lt;br /&gt;You will need to edit the web.config file to specify the location and connection string information for your database.&lt;br /&gt;&lt;br /&gt;1.Using My Computer or the Windows Explorer, navigate to the folder containing the umbraco web site files.&lt;br /&gt;Note: C:\Inetpub\wwwroot, according to these instructions.&lt;br /&gt;2.Double-click the Web.config file.&lt;br /&gt;&lt;br /&gt;3.If prompted, select the radio button next to “Select a program from a list of installed programs”, click OK, click Notepad, place a check mark in the box next to “Always use the selected program to open this kind of file”, and click OK.&lt;br /&gt;4.Near the middle of the file, find the following line:&lt;br /&gt;&lt;add value="Server=127.0.0.1;Database=YOUR_DATABASE;User 8 ID=YOUR_USER;Password=YOUR_PASSWORD;Trusted_Connection=False" key="umbracoDbDSN"&gt;&lt;br /&gt;&lt;br /&gt;5.Modify the following umbracoDbDSN items to match your database configuration.&lt;br /&gt;Note: according to these instructions, the values would be:&lt;br /&gt;1.Server=127.0.0.1&lt;br /&gt;Database=umbracoCMS&lt;br /&gt;User ID=umbracoUser&lt;br /&gt;Password=denmark&lt;br /&gt;Trusted_Connection=False&lt;br /&gt;&lt;br /&gt;6.Save the Web.config file. &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Set up umbraco from a web browser&lt;br /&gt;1.Using a web browser, navigate to http://localhost.&lt;br /&gt;&lt;br /&gt;2.Click Next.&lt;br /&gt;&lt;br /&gt;3.Your database should be found and identified as None, meaning your database is empty.&lt;br /&gt;Note: If your database is not found or is unavailable, double-check your umbracoDbDSN settings in the web.config file.&lt;br /&gt;4.Click Install.&lt;br /&gt;&lt;br /&gt;5.Click Next.&lt;br /&gt;6.Click Next.&lt;br /&gt;Note: If there are any permission problems, return to Set File Permissions, above.&lt;br /&gt;7.Enter a password for the umbraco user interface, and click Change Password.&lt;br /&gt;8.Click Next.&lt;br /&gt;9.Click Next.&lt;br /&gt;&lt;br /&gt;10.Finally, delete or rename the \install folder&lt;br /&gt;Note: C:\Inetpub\wwwroot\install, according to these instructions.&lt;br /&gt;&lt;br /&gt;Congratulations!&lt;br /&gt;You are now ready to start creating an umbraco website!&lt;br /&gt;&lt;br /&gt;Please note that if you now browse to http://localhost, you will see the following page because the umbraco web site does not yet have any content.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Log in to the umbraco interface&lt;br /&gt;1.Navigate to http://localhost/umbraco, or click the Launch umbraco button shown above.&lt;br /&gt;&lt;br /&gt;2.The username is admin.&lt;br /&gt;3.The password is that which you entered when you set up umbraco from your web browser, above.&lt;br /&gt;4.Once you have logged in, you will see the full umbraco interface.&lt;br /&gt;&lt;br /&gt;Installing a Website Starter Kit (optional)&lt;br /&gt;1.Click the Developer section icon, and then right-click on Macros to select the Import Package item.&lt;br /&gt;&lt;br /&gt;2.Click the Go to the package repository link&lt;br /&gt;&lt;br /&gt;3.Select the Website Packages section to view a list of sample websites. &lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2762447899887212599-6922816054153092567?l=umbracocms.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://umbracocms.blogspot.com/2009/12/install-umbraco-on-windows-server-2003.html</link><author>noreply@blogger.com (Jason)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2762447899887212599.post-410985579937395969</guid><pubDate>Thu, 03 Dec 2009 02:53:00 +0000</pubDate><atom:updated>2009-12-03T10:14:52.773+07:00</atom:updated><title>Converting existing site to Umbraco - Installing umbraco on our server</title><description>&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Installation was pretty good, because our server is a Windows Server 2003, which means that umbraco is provided with an auto-installer. Of course, I had to install Microsoft SQL Server Express. Fortunately, it was so simple.&lt;br /&gt;&lt;br /&gt;To install I used this item:&lt;a href="http://umbracocms.blogspot.com/2009/12/install-umbraco-on-windows-server-2003.html"&gt;http://umbracocms.blogspot.com/2009/12/install-umbraco-on-windows-server-2003.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;1. The installation of MS SQL Server Express&lt;br /&gt;&lt;br /&gt;2. Install umbraco&lt;br /&gt;&lt;br /&gt;3. Remember to configure your domain name or a subdomain with your ISP and IIS&lt;br /&gt;&lt;br /&gt;A small problem is that when he says the foundation, my default SQL Server Express named something like MSSQL $ L12325413 essentially the default name of my machine, the installation program has been allocated SQL. It was not easy to understand, and there was no help from umbraco to find the name of the database. What I had to get umbraco installation was "L12325413/L12325413" hostname / server name ...&lt;br /&gt;&lt;br /&gt;Once this is resolved, the installation went smoothly.&lt;br /&gt;&lt;br /&gt;TIP: To find the name of the database, run the SQL Server Surface Area Configuration (catchy name), select the Surface Area Configuration for Services and Connections, and find the service name.&lt;br /&gt;&lt;br /&gt;It gives you umbraco empty, alone, naked and lost ...&lt;br /&gt;&lt;br /&gt;So, what's more, I installed the package WebsiteWizard. It provides a good overview of basic functionality. The repository of the package can be found here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://packages.umbraco.org/packages"&gt;http://packages.umbraco.org/packages&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2762447899887212599-410985579937395969?l=umbracocms.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://umbracocms.blogspot.com/2009/12/converting-existing-site-to-umbraco.html</link><author>noreply@blogger.com (Jason)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2762447899887212599.post-8329722059586507811</guid><pubDate>Sun, 08 Nov 2009 09:20:00 +0000</pubDate><atom:updated>2009-11-08T16:27:59.172+07:00</atom:updated><title>Converting existing site to Umbraco - Intro</title><description>&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;T0 convert our existing web site to umbraco. This site is not terribly complicated, you can see here: &lt;http:&gt;, but it has its own quirks "small" are ordered. &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;I'll document the process here, hoping to learn a bit 'and perhaps help others get started. I am not an expert umbraco, just trying to collect document what I found so that others can learn from my researches.&lt;br /&gt;&lt;br /&gt;Here are the steps you must take for my site translated, at least the steps I can foresee at this point ... The sections that follow are not necessarily in that order :-) &lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Installing umbraco on our server &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Joined our provider of group membership as a witness. NET, as we have thousands of people registering on our site, and I'm not in the business of maintaining synchronized databases. &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Moving CSS, scripts, and a framework MasterPages nested ASP.NET &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;See if I can get our current URL redirection to work with umbraco &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Learn to manage my pages (HTTPS now automatically forwarded to the folder level) &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Figure of URL parameters can be manipulated to my pages are dynamically generated. &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Convert our current one basket. NET User Control. &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Enabling Secure Web Services WSE3&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2762447899887212599-8329722059586507811?l=umbracocms.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://umbracocms.blogspot.com/2009/11/converting-existing-site-to-umbraco.html</link><author>noreply@blogger.com (Jason)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2762447899887212599.post-7256663637151783185</guid><pubDate>Fri, 14 Aug 2009 10:33:00 +0000</pubDate><atom:updated>2009-08-27T11:10:47.428+07:00</atom:updated><title>Quick Take Review: Umbraco Web Content Management System III</title><description>&lt;h3 align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Workflow&lt;/span&gt;&lt;br /&gt;&lt;/h3&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Workflow is an interesting topic for Hartvig. He quotes James Robertson and Tony Byrne saying "workflow doesn't work in practice". That being said, you &lt;em&gt;can&lt;/em&gt; implement workflow.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Out of the box, Umbraco includes the basics including the ability to restrict users and get notified on actions. Workflow is based on the permission modelyou set up in the Users section. For example, if you don't allow Writers to have Publish permissions, then the Writer only has the ability to Save or Save and Send for Approval:&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;img height="375" alt="Workflow1.jpg" src="http://www.cmswire.com/images/Workflow1.jpg" width="396" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-family:verdana;"&gt;Umbraco — Simple Workflow Options&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Note that the article has a little orange star, indicating it has not been published. As well, the right click menu does not offer the option to Publish, but to &lt;em&gt;&lt;strong&gt;Send To Publish&lt;/strong&gt;&lt;/em&gt;, which means sending for approval. There is also a button in the main window that you can click to send the article off for approval as well.&lt;/span&gt;&lt;/p&gt;&lt;h4 align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Notifications&lt;/span&gt;&lt;br /&gt;&lt;/h4&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;The system does not automatically send out workflow notifications. One must subscribe to specific system events in order for this to happen. You can do this on a Site level, Section Level or Page level. You can also select which types of changes you want notification on (see list below).&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;img height="483" alt="Notifications2.jpg" src="http://www.cmswire.com/images/Notifications2.jpg" width="355" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;em&gt;Umbraco — Configuring &lt;/em&gt;&lt;em&gt;Event Notifications&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Notifications come by email:&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;img height="406" alt="Notifications.jpg" src="http://www.cmswire.com/images/Notifications.jpg" width="600" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;em&gt;Umbraco — Email Notification Example&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;This is a fairly straightforward and basic approach to providing workflow for your content. In addition, the event model is exposed which is meant to enable third-party integrations (e.g., workflow systems, translation automation, etc.). In speaking with Niels, he generally discourages the use of workflow unless it is absolutely needed. With that said, there are cases where it is absolutely needed.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3 align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Multi-Lingual Support&lt;/span&gt;&lt;/h3&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Umbraco ships with 15 languages for a localized back office user interface (UI). You can also add additional language if required.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;The Umbraco UI text is stored in an XML file. This enables you to take a copy of the file and translate it for a new language. Once done, the language is automatically available.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Current languages include: English, French, Spanish (with variants), Dutch, Japanese, Chinese, Russian, Danish, Swedish, Norwegian and Greek.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;There is a menu item on the Content Menu to Send to Translation. You must have a user assigned to the Translator role for this to work. This will send an email to the Translator.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;img height="319" alt="Content_SendtoTranslation.jpg" src="http://www.cmswire.com/images/Content_SendtoTranslation.jpg" width="500" /&gt;&lt;br /&gt;&lt;em&gt;Umbraco — &lt;/em&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;em&gt;Send Content for Translation&lt;/em&gt; &lt;/span&gt;&lt;/p&gt;&lt;h3 align="justify"&gt;&lt;span style="FONT-WEIGHT: bold"&gt;&lt;span style="font-family:verdana;"&gt;Editorial Capabilities &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/h3&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Umbraco refers to their Administration site as the &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;em&gt;&lt;strong&gt;Back Office&lt;/strong&gt;&lt;/em&gt;. In the Back Office you can do a number of things, depending on your role and permissions: Manage Content, Media, Users and Members.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;You can also manage Settings like style sheets, templates, scripts, dictionary, languages, media types and document types. Finally, there's a developers section where you can do things like browse cache settings, manage data types, create and manage macros, packages, XSLT files and phyton files.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;When you first log in, the opening dashboard is empty, but you are able to modify what is displayed in the dashboard through the use of dashboard controls.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;These dashboard controls are basically .NET user controls that are added to the &lt;em&gt;/config/dashboard.config&lt;/em&gt; file. There are a number of free community controls for things like New Content, Last Modified Content, Search, Viewing Log Files, etc.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;You can even create tabs to organize your dashboard better.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;img height="249" alt="Umb_BackOffice.jpg" src="http://www.cmswire.com/images/Umb_BackOffice.jpg" width="600" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Umbraco Back Office — Main Dashboard&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;h4 align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Content Section&lt;/span&gt;&lt;br /&gt;&lt;/h4&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;The content section is where your editors are going to live. Other than possibly the media section, it's the only section they will likely have access to. It's here that they can manage the website pages and content.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;The tree structure in the left pane represents the structure of the website — the navigation. To create a new page you can simply right-click on the navigation item where you want the new page to live (i.e click on Home to have it live under Home) and then fill in the sections in the main window.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Note that depending on how you set up the Document Type the new webpage is based on, there may be multiple tabs to complete. You can save your new webpage, Save and Publish or Preview it.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;img height="305" alt="UmbCont_CreatePage.jpg" src="http://www.cmswire.com/images/UmbCont_CreatePage.jpg" width="600" /&gt;&lt;br /&gt;&lt;em&gt;Umbraco — Creating Content in the &lt;/em&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-family:verdana;"&gt;Back Office&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;When you create a new piece of content you can publish immediately or set a date sometime in the future. You can also set an archive date (Remove On).&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;In addition, you can change the default template that the content will be rendered in. Remember that you can only select a template that has beendefined as allowed for that Document Type. These properties are automatic with every piece of content created.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Other options that can be added include hiding the page in navigation, setting up an Umbraco alias and set up redirects to another page. Again, these many of these are properties you have to set up.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;The right-click menu in the Content Section gives you a number of options:&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;img height="542" alt="Umbraco_RightClickMenu.jpg" src="http://www.cmswire.com/images/Umbraco_RightClickMenu.jpg" width="379" /&gt;&lt;br /&gt;&lt;em&gt;Umbraco Back Office — Content Right Click Menu&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;One option is to Edit in Canvas. This options enables you to view the website and edit in context:&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;img height="289" alt="EditInCanvas.jpg" src="http://www.cmswire.com/images/EditInCanvas.jpg" width="600" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-family:verdana;"&gt;Umbraco — Editing in Canvas Mode (In-context Editing)&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;h4 align="justify"&gt;&lt;span style="font-family:verdana;"&gt;External Blog Editor Integration&lt;/span&gt;&lt;/h4&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;If you prefer to develop your content using an external editor, you can do that with Umbraco. Out of the box, Umbraco supports both Word 2007 and Windows Live Writer, but you can also use just about any blog editor that works with the &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;MetaWeblog API.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;There is a small catch to this capability and that is that you can only grant access to a specific section of your website using the &lt;em&gt;&lt;strong&gt;Content Channels&lt;/strong&gt;&lt;/em&gt; functionality.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;img height="401" alt="ContentChannel.jpg" src="http://www.cmswire.com/images/ContentChannel.jpg" width="561" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;em&gt;Umbraco — Setting Up a Content Channel&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Content Channels are set up for Users. You can only have one content channel per user.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;The start node indicates at what location this users articles will be published to. The description field is usually the bodytext part of the Document Type you are creating. This is the main part of the content and usually is associated with a rich text editor control.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;It is this channel that you connect your blog editor or Word 2007 to. You can view current content in the section and add new content. Of course you don't have the ability to add the other properties that may be associated with the Document Type, like Metadata. For anything other than Description, you need to come into the Back Office and edit there.&lt;/span&gt;&lt;/p&gt;&lt;h3 align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Media Section&lt;/span&gt;&lt;/h3&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;The Media Section is where all your digital assets are stored. You organize this section any way you like. The types of media you can create are predefined in the Media Types under the Settings Section.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;img height="301" alt="MediaSection.jpg" src="http://www.cmswire.com/images/MediaSection.jpg" width="600" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;em&gt;Umbraco — Media Library&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Usually you would give your writer access to the Media Library in addition to the Content Section. &lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;When you want to add images or other things to a content page, you first can select from the Media Library. You also have the option of adding something new to the Library.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;img height="495" alt="AddingMedia.jpg" src="http://www.cmswire.com/images/AddingMedia.jpg" width="600" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-family:verdana;"&gt;Umbraco — Using Media Library&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;h3 align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Social Media Capabilities&lt;/span&gt;&lt;/h3&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;There is a blog package for Umbraco that includes all the typical blogging capabilities:&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Posts with paging and filter on category &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Comments (custom usercontrol) &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Datefolder Categories (using tag datatype)&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Archive (collapsable, only showing latest months)&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Latest comments&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Blogroll (using related links) &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Gravatar (global avatars) &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Customizability &amp;amp; Integration&lt;/span&gt;&lt;/h3&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Umbraco is completely customizable to your needs and integration is something it does very well. You can extend it without modifying the source code. You can add new applications, new trees and new dashboards (shown in the right side of the back office website), new data sources and more. And you aren't limited to .NET systems.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;There's a complete .NET API for manipulating Umbraco objects and a SOAP API.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;img height="175" alt="Umbraco_API.jpg" src="http://www.cmswire.com/images/Umbraco_API.jpg" width="600" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;em&gt;Umbraco API&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;In addition to integrating with Umbraco, you can also expose Umbraco data to other systems, such as a SharePoint WebPart displaying Umbraco content. &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;You can extend Umbraco by adding Macros that include .NET User Controls or .NET Custom Control.&lt;/span&gt;&lt;/p&gt;&lt;h4 align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Packages&lt;/span&gt;&lt;br /&gt;&lt;/h4&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Packages are bundled applications that add additional functionality to the CMS or your website. In the Developer's Section of Umbraco, you can upload new Packages. Umbraco offers a number of free packages including applications for collaboration, site utilities and more.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;img height="284" alt="Packages.jpg" src="http://www.cmswire.com/images/Packages.jpg" width="600" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;em&gt;Umbraco Packages&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;You can create your own package and view currently installed packages (you also remove installed packages from this section).&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Creating your own Package enabled you to package up your site and related content and move it somewhere else, such as a Production environment&lt;/span&gt;&lt;/p&gt;&lt;h3 align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Content Delivery Architecture&lt;/span&gt;&lt;/h3&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Umbraco supports caching by default. Caching is configurable, but you do not have access to 100% of the settings. All published content nodes are loaded in the Umbraco.config file and then into memory for faster access. Static files are cached by IIS and templates, xslt and user controls are cached using ASP.NET cache controls.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Umbraco has built in load-balancing support. It can scale from a web hosting solution to a web farm out of the box. DNS Round Robin and Hardware solutions are both supported in Umbraco as is using a High Availability Service. There is a ten minute video on Umbraco.tv that walks you through the process of setting up Umbraco for load balancing.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Umbraco can support up to 200,000 published pages (2 million published properties). It has been tested to scale to 830 page requests/second or 35 million Umbraco page views a month. (Wired.co.uk did extensive testing when they decided to go with Umbraco.)&lt;/span&gt;&lt;/p&gt;&lt;h2 align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Similar Products&lt;/span&gt;&lt;/h2&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Hartvig says Umbraco has been used in the same market as solutions like &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;Ektron&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;,&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;Sitecore&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;, and occasionally &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;SharePoint&lt;/span&gt;&lt;span style="font-family:verdana;"&gt; (when used incorrectly). Sitecore and Ektron are suited for mid to larger enterprises.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Other web content management systems to consider in the SMB space include&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;Kentico&lt;/span&gt;&lt;span style="font-family:verdana;"&gt; and &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;Sitefinity&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;. Both of these systems are .NET based and developer oriented.&lt;/span&gt;&lt;/p&gt;&lt;h2 align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Summary&lt;/span&gt;&lt;br /&gt;&lt;/h2&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Here's a summary table of the review (rating is 0.0-5.0 with 5.0 being the best):&lt;/span&gt;&lt;/p&gt;&lt;div align="justify"&gt;&lt;table class="bordered" cellpadding="1" width="590"&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;span style="font-family:verdana;"&gt;Feature&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;&lt;span style="font-family:verdana;"&gt;Description&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;&lt;span style="font-family:verdana;"&gt;Rating&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;span style="font-family:verdana;"&gt;Product Core Technology&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-family:verdana;"&gt;ASP.NET, IIS, Windows, AJAX&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-family:verdana;"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;span style="font-family:verdana;"&gt;Content Entities&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-family:verdana;"&gt;Document Types&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-family:verdana;"&gt;4&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;span style="font-family:verdana;"&gt;Editorial Features&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-family:verdana;"&gt;Dashboard, Notifications, Canvas Editing, RTE&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-family:verdana;"&gt;4&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;span style="font-family:verdana;"&gt;Content Versioning&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-family:verdana;"&gt;Unlimited versions, review and rollback&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-family:verdana;"&gt;4&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;span style="font-family:verdana;"&gt;Content Workflow&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-family:verdana;"&gt;Basic Workflow based on permissions and notifications&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-family:verdana;"&gt;3.5&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;span style="font-family:verdana;"&gt;Multi-lingual Support&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-family:verdana;"&gt;Supports multiple languages out of the box&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-family:verdana;"&gt;4.5&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;span style="font-family:verdana;"&gt;Social Media Capabilities&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-family:verdana;"&gt;Blogging Package&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-family:verdana;"&gt;3.5&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;span style="font-family:verdana;"&gt;Security&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-family:verdana;"&gt;Basic, Single Role, Manage granular permissions&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-family:verdana;"&gt;3.5&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;span style="font-family:verdana;"&gt;Content Delivery Architecture&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-family:verdana;"&gt;Built in Load balancing, EC2, hosted or web farm&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-family:verdana;"&gt;4&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:verdana;"&gt;&lt;p align="justify"&gt;Umbraco in some ways stands alone because of how it's been designed. It is not a plug and play solution and this is what many web content management systems strive for today. It's not enterprise level, although it may be used for very large websites.&lt;/p&gt;&lt;/span&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;The biggest drawbacks to Umbraco from an enterprise content management standpoint are with it's workflow and users. The workflow is very simple, and although you can hook in 3rd party workflow solutions, it would be nicer to see more flexibility out of the box.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;In addition, a user can only have one User Type — or Role — assigned to them. In many cases a user may fulfill multiple roles for different content. It may be possible to extend Umbraco to allow multiple roles, but this capability should be out of the box as well.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3 align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Documentation, Documentation, Documentation&lt;/span&gt;&lt;/h3&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Simply stated, the Umbraco documentation is lacking in structure and focus.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;There is a lot of documentation on the website, but some of it is for version three and not version 4 and it's hard to know what you are supposed to be looking at. There's no defined reading path for learning how to use Umbraco…unless of course you subscribe to &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;Umbraco.tv&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Download and install this web content management system and you may take one look at what's there and get concerned. Umbraco.tv will take that concernaway and is well worth the 19 EUR per month they are asking for.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;That being said, there also needs to be some free documentation that helps you out as well — in a well structured format.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;The good news is that Umbraco will have a book out at the end of 2009/beginning of 2010, so developers and designers and probably end-users will&lt;br /&gt;have a much better idea of how this Web CMS really works.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Hartvig says that many of his community members say Umbraco is the best kept secret in web content management. This may likely to be true. You really don't get a good feel for the full capabilities that this solution has from looking at it. In some ways, we feel like we have just scratched the surface of what this Web CMS is all about.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3 align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Built for Designers and Developers&lt;/span&gt;&lt;br /&gt;&lt;/h3&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;If you are looking for a web content management system that, once installed, your marketing team or non-technical users can use immediately, Umbraco is not&lt;br /&gt;for you.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;em&gt;&lt;strong&gt;Umbraco is really designed to be used by a developer or development team&lt;/strong&gt;&lt;/em&gt;. They have a lot of work to do before the writers and editors of the website even get started. That's not a bad thing, just something to keep in mind as you consider this CMS.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Again, we feel we must mention the steep learning curve. This, we believe, is primarily related to understanding how the Document Types work. If you get that under your belt, then you are a long way along and can likely have a website up and running pretty quickly.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;The Content Section where you create your content is very easy to work in — a big plus for the non-technical users — and if you have defined your content types properly, will be a breeze to use.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3 align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Our Final Take&lt;/span&gt;&lt;br /&gt;&lt;/h3&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Overall, we like the CMS that Niels has built. This is partly because there is a developer in us and partly because you can create your HTML design in any tool you want, and cut and paste it into Umbraco to get your website up quickly.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Another nice aspect is that if you're already a .NET developer, you don't have to learn new technologies or templating languages. As such a developer, you should be well versed in creating the .NET controls which, along with XSLT, are key to developing an Umbraco solution.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;If you are a .NET-focused operation looking for a web content management system to create dynamic websites for your customers, we recommend taking a close look at Umbraco.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2762447899887212599-7256663637151783185?l=umbracocms.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://umbracocms.blogspot.com/2009/08/quick-take-review-umbraco-web-content_2039.html</link><author>noreply@blogger.com (Jason)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2762447899887212599.post-2383358794264379880</guid><pubDate>Fri, 14 Aug 2009 10:12:00 +0000</pubDate><atom:updated>2009-08-27T11:12:16.961+07:00</atom:updated><title>Quick Take Review: Umbraco Web Content Management System II</title><description>&lt;h2 align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Key Features and Ratings&lt;/span&gt;&lt;/h2&gt;&lt;h3 align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Core Technologies&lt;/span&gt;&lt;br /&gt;&lt;/h3&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Umbraco is a Microsoft.NET solution. It runs on Microsoft Windows Server 2003 and up against SQL Server 2005 or VistaDB.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Built on the .NET framework 2.0 and using &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;ASP.NET 2.0&lt;/span&gt;&lt;span style="font-family:verdana;"&gt; and C#, Umbraco supports .NET Custom Control and .NET User Controls without having to do anything special. Controls are added to Umbraco using Macros. It fully supports ASP.NET Ajax using jQuery, Prototype, MooTools or another Ajax toolkit.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;It also fully supports ASP.NET Master Pages. XSLT is used for generating dynamic lists.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;You have full access to the Umbraco API which includes over 15,000 lines of code. The API is well documented. The event model for the content engine is also exposed allowing you to automate tasks based on the actions of content editors.&lt;/span&gt;&lt;/p&gt;&lt;h4 align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Designing Templates/Look and Feel&lt;/span&gt;&lt;/h4&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Umbraco does not have a custom template engine, so you &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;em&gt;&lt;strong&gt;do not&lt;/strong&gt;&lt;/em&gt; have learn a new templating language in order to create websites. This is a plus in our opinion. The Umbraco team believes there are better tools already out there, tools that designers know well and are comfortable using.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;img height="146" alt="UmbracoTemplate1.jpg" src="http://www.cmswire.com/images/UmbracoTemplate1.jpg" width="600" /&gt;&lt;br /&gt;&lt;em&gt;Umbraco Templates&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;For Umbraco, it's as easy as designing your website in your favorite tool like Adobe Dreamweaver, then cut and paste the HTML code into the Umbraco template editor (in the Back Office) and then in the spots where you want your Umbraco data, insert an Umbraco field and save. When a page is rendered using the template, the content is dynamically displayed.&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;img height="481" alt="UmbTemp_PageField.jpg" src="http://www.cmswire.com/images/UmbTemp_PageField.jpg" width="600" /&gt;&lt;br /&gt;&lt;em&gt;Umbraco Templates — Insert Page Field&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Umbraco gives you 100% control over the design for your website. You don't need to worry about themes or skinning, the design can be anything you want. Hartvig believes that themes and skinning is often a sign of bad separation of content, functionality and presentation.&lt;/span&gt;&lt;/p&gt;&lt;h4 align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Modify vs Customize&lt;/span&gt;&lt;/h4&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Like any &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;open source content management solution&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;, you are able to modify the source. But like the Umbraco folks say, that's a big step to take and you run the risks of breaking future upgrades or breaking compatibility. Their motto instead is customize and extend, saying they have built every part of Umbraco to be extensible.&lt;/span&gt;&lt;/p&gt;&lt;h4 align="justify"&gt;&lt;strong&gt;&lt;span style="font-family:verdana;"&gt;What About MVC?&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;/h4&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Umbraco is heavily investigating the use of ASP.NET MVC — Microsoft's newest framework for ASP.NET — as an alternative for the front-end website. Hartvig says that the current engine is very close to the MVC model now.&lt;/span&gt;&lt;/p&gt;&lt;h4 align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Web Analytics&lt;/span&gt;&lt;br /&gt;&lt;/h4&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Umbraco does not have web analytics built-in. Hartvig believes analytics is not a trivial task and is best left to the experts. You can integrate any web analytics tool with Umbraco via web server plugins, access logs or JavaScript — think WebTrends and Google Analytics.&lt;/span&gt;&lt;/p&gt;&lt;h3 align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Content Entities&lt;/span&gt;&lt;/h3&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;In Umbraco, the core or foundational concept is the &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;em&gt;&lt;strong&gt;Document Type&lt;/strong&gt;&lt;/em&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Document Types describe the type of content that you can create in your website. Examples of Document Types include News Items, Articles, HomePage, SearchPage. Document Types are to Umbraco what content types are to another web cms and web pages are to another.&lt;/span&gt;&lt;/p&gt;&lt;h4 align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Document Types and IA&lt;/span&gt;&lt;br /&gt;&lt;/h4&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Understanding how Document Types work is &lt;strong&gt;&lt;em&gt;the key&lt;/em&gt;&lt;/strong&gt; to understanding Umbraco. Unfortunately, at first they are a bit confusing, because defining them is a mostly about modeling content but also a bit about the website's information architecture.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;This blend of concepts and the related implications threw us for a little turn. However, if you can get these concepts under your belt, then the rest of the system is much easier to understand.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;When you create Document Types you are also outlining the rough structure for the website's information architecture. Specifically, when you define a type, you must also specify where that type can live in the website's structure. Down the road, content authors and manager will not be able to over-ride this.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;To put this differently, when you define the type you aren't exactly building the navigation, but &lt;em&gt;&lt;strong&gt;you are placing limits&lt;/strong&gt;&lt;/em&gt; on how the navigation can be defined.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;In Umbraco, there's no delineation between content (like individual articles) and webpages (like HomePage or Article List page). You create Document Types for each type of content whether it's "real" content or a webpage with dynamic functionality and some metadata, etc. Hartvig says that this is a good thing and provides the flexibility needed when building a website.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;In thinking about the blend of type definition and type usage it strikes us as a good model for small to mid-sized organizations with only one or a few authors and no "Editor" or "Administrator" to who controls the overall structure of the website. The initial system set up can be done by an expert and then the content managers can be left to their own devices and one need not fret that content instances will end up in the wrong place in the website.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;For larger organizations it can also work, but if more powerful users want full control over the website's information hierarchies, they might find the blend of type and location to be a source of frustration.&lt;/span&gt;&lt;/p&gt;&lt;h4 align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Creating Document Types&lt;/span&gt;&lt;/h4&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Document Types are like SQL database tables. You create the Type and then assign a number of properties to it, indicating what the format of each property can be (text, rich text, drop down, etc) and if that property is required. This is pretty standard stuff for content management systems.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;For example, an Article Document Type means that you can create one or more articles for your website.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;img height="368" alt="CreateDocType.jpg" src="http://www.cmswire.com/images/CreateDocType.jpg" width="600" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;em&gt;Umbraco — Creating a New Document Type&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;When you create a Document Type, you provide some basic information about it such as Name, Alias, Icon, thumbnail and description. The Icon is the image you see beside the content you create in the Content Section. The thumbnail gives you a quick view of what type of content you are creating when you create a new piece of content.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;You can also indicate to have a template created automatically. All this does is create a template shell with the same name as the document type. You can actually have more than one template (view of the Document Type), but one is the default. The allowed templates section on the Info tab indicates which templates you can use for this Document Type.&lt;/span&gt;&lt;/p&gt;&lt;h4 align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Document Type Tabs&lt;/span&gt;&lt;/h4&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Sometimes you may have a lot of different properties for your content type. You can organize the way the content information is added by creating TABS for your document type. This is simply a way to organize the information you want to add without having everything listed on one single page. For example, you can have a tab for Core Content and one for MetaData.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;h4 align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Creating Properties&lt;/span&gt;&lt;br /&gt;&lt;/h4&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;You define the properties for your Document Type in the Generic Properties tab and assign a TAB those properties will appear on.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;img height="533" alt="DTProperties.jpg" src="http://www.cmswire.com/images/DTProperties.jpg" width="576" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-family:verdana;"&gt;Umbraco — Document Type Properties&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;/p&gt;&lt;h4 align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Defining Structure&lt;/span&gt;&lt;br /&gt;&lt;/h4&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;The &lt;em&gt;&lt;strong&gt;Structure Tab&lt;/strong&gt;&lt;/em&gt; for a Document Type lists the Document Types already created. Here you select the type of Document Types that can be created as child nodes under your Document Type.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;The structure is really the navigation for your site. If you create a HomePage Document Type, then you would probably allow all other DocumentTypes to be created under it. But if you were creating a News Summary Page Document Type, you would probably only want a News Item Document Type to be createdunder it.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3 align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Security&lt;/span&gt;&lt;br /&gt;&lt;/h3&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Umbraco's security model is easy to understand. There are two parts to it. First, you can easily create users and roles in Umbraco.&lt;/span&gt;&lt;/p&gt;&lt;h4 align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Creating Users&lt;/span&gt;&lt;/h4&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;When you create a user, you set up all the basics such as username, password, email, default language and role. In Umbraco, a user is assigned to one role only. You select what sections within the Back Office the user has access to and you can automatically redirect the user to Canvas Editing on log in, thus restricting them from the Back Office completely.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;img height="340" alt="Umb_CreateUser.jpg" src="http://www.cmswire.com/images/Umb_CreateUser.jpg" width="600" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;em&gt;Umbraco — &lt;/em&gt;&lt;em&gt;Creating a User&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;You can also restrict the area of content the user can work in by setting the Start Node in Content. If you set this node to something other than the top level, when the user logs in they only see the Content Navigation Tree from that Node down.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;img height="511" alt="UserPermissions.jpg" src="http://www.cmswire.com/images/UserPermissions.jpg" width="424" /&gt;&lt;br /&gt;&lt;em&gt;Umbraco — &lt;/em&gt;&lt;em&gt;Restricting Content Access&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;h4 align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Creating User Types&lt;/span&gt;&lt;/h4&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;There are several User Types created by default in Umbraco: Writer, Editor, Translator, Reviewer. For each role, you specify the permissions for that role.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;img height="510" alt="CreateRole.jpg" src="http://www.cmswire.com/images/CreateRole.jpg" width="339" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;em&gt;Umbraco — &lt;/em&gt;&lt;em&gt;Creating a User Type&lt;/em&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;When a user is assigned to a specific User Type, their actions are limited to those set by the User Type:&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;img height="338" alt="PermissionsMenuChange.jpg" src="http://www.cmswire.com/images/PermissionsMenuChange.jpg" width="373" /&gt;&lt;br /&gt;&lt;em&gt;Umbraco — &lt;/em&gt;&lt;em&gt;Limiting Permissions by User Type&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;h4 align="justify"&gt;&lt;span style="font-family:verdana;"&gt;User Permissions&lt;/span&gt;&lt;/h4&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;You can also set user permissions on individual pages.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;img height="310" alt="SpecificUserPermissions.jpg" src="http://www.cmswire.com/images/SpecificUserPermissions.jpg" width="600" /&gt;&lt;br /&gt;&lt;em&gt;Umbraco — Defining &lt;/em&gt;&lt;em&gt;User Permissions&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;h4 align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Membership&lt;/span&gt;&lt;br /&gt;&lt;/h4&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;You also have the ability in Umbraco to create Members Only areas for your website. In the Members Section of the Back Office you can create Member Types like Basic, Silver and Gold, Member Groups and view the Members who are signed up.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;You can full control here over how to format Membership.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;To assign a section of your website as Members only, you right click on the particular section and select the Public Access Menu Item. You actually have two options here. The first is to assign a generic username and password to the selected content. The second to assign a Group or Groups.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;img height="470" alt="RoleBasedProtection.jpg" src="http://www.cmswire.com/images/RoleBasedProtection.jpg" width="535" /&gt;&lt;br /&gt;&lt;em&gt;Umbraco — &lt;/em&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;em&gt;Role Based Access Control&lt;/em&gt; &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;h3 align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Content Versioning&lt;/span&gt;&lt;br /&gt;&lt;/h3&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Versioning of content entities is a core function of Umbraco. Every time you publish your content entity a new version is created and an audit trail is maintained. You can rollback to any version you want. There is no limit on the number of versions you have.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;img height="536" alt="Umbraco_Versions.jpg" src="http://www.cmswire.com/images/Umbraco_Versions.jpg" width="600" /&gt;&lt;br /&gt;&lt;em&gt;Umbraco — &lt;/em&gt;&lt;em&gt;Content Versions&lt;/em&gt; with Visual Differences&lt;br /&gt;&lt;br /&gt;When viewing a version of the content, you can view the difference between the current version and an older one. Content marked in red will not be shown if the version to rollback to is selected, content marked ingreen is new.&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Also using Umbraco's event model you can easily clean up old versionsautomatically, or you can use Umbraco's free tools.&lt;/span&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2762447899887212599-2383358794264379880?l=umbracocms.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://umbracocms.blogspot.com/2009/08/quick-take-review-umbraco-web-content_14.html</link><author>noreply@blogger.com (Jason)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2762447899887212599.post-6392789580728767538</guid><pubDate>Wed, 12 Aug 2009 08:13:00 +0000</pubDate><atom:updated>2009-08-27T11:13:47.499+07:00</atom:updated><title>Quick Take Review: Umbraco Web Content Management System I</title><description>&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Umbraco is one of only a few open source &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;web content management systems&lt;/span&gt;&lt;span style="font-family:verdana;"&gt; built on Microsoft's .NET technology stack. This CMS is no "out the box" solution. To the contrary, it's a content management system for .NET web developers. And while it's relatively straightforward to use, one must first deal with a steep learning curve.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;We took a close look at the latest version of Umbraco (v4.01) and here's what&lt;br /&gt;we found.&lt;/span&gt;&lt;/p&gt;&lt;h2 align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Introducing Umbraco&lt;/span&gt;&lt;/h2&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;When getting started with Umbraco there are some key themes to keep in&lt;br /&gt;mind:&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;A CMS for developers&lt;/strong&gt; — Empower web developers &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;Steep learning curve&lt;/strong&gt; — Straight forward to use once you get over that learning curve &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;Not an out of the box, modular solution&lt;/strong&gt; — Customized to meet your needs&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;A framework for .NET web developers&lt;/strong&gt; &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Umbraco was not designed to be a plug-and-play solution like &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;Drupal&lt;/span&gt;&lt;span style="font-family:verdana;"&gt; or &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;Joomla&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;. Niels Hartvig, the creator of Umbraco, tried to build a system that didn't limit him on what he could do and yet still pleased non-technical clients. That was seven years ago.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Today, Umbraco is one of the best known .NET open source &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;web content management systems&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;. Downloads of the CMS have grown 100% in the last six months, with over 7,500 downloads happening a week.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;The recent event of the &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;Microsoft Web Platform Installer&lt;/span&gt;&lt;span style="font-family:verdana;"&gt; (WPI) has proven a boon for Umbraco. It's currently listed as one of the most popular applications in the WPI gallery, with more than 36,000 downloads to date.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;With the MS WPI you can easily get the CMS up and running. But once you get&lt;br /&gt;there, you've got some thinking and planning to do.&lt;/span&gt;&lt;/p&gt;&lt;h2 align="justify"&gt;&lt;span style="font-family:verdana;"&gt;The Basic Story&lt;/span&gt;&lt;/h2&gt;&lt;table class="bordered" cellpadding="1"&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;span style="font-family:verdana;"&gt;Vendor&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-family:verdana;"&gt;Umbraco&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;span style="font-family:verdana;"&gt;Product&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-family:verdana;"&gt;Umbraco v4.01&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;span style="font-family:verdana;"&gt;Product Category&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-family:verdana;"&gt;Web content management, simple web cms, web publishing&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;span style="font-family:verdana;"&gt;Typical Scenario&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-family:verdana;"&gt;basic websites, micro publishing websites&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;span style="font-family:verdana;"&gt;Bad Fit Scenario&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-family:verdana;"&gt;Enterprises that want enhanced workflow without adding 3rd party provider, organizations without a development team with some intermediate to advanced .NET programming skills.&lt;/span&gt;&lt;strong&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p align="justify"&gt; &lt;/p&gt;&lt;h2 align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Company &amp;amp; Product History&lt;/span&gt;&lt;/h2&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;The first version of &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;Umbraco&lt;/span&gt;&lt;span style="font-family:verdana;"&gt; came out in 2001 and was built on ASP and COM. The first open source version arrived as a Beta 2 in October 2004 and was officially released in February 2005. That version was built on ASP.NET 1.1.&lt;/span&gt;&lt;/p&gt;&lt;h3 align="justify"&gt;&lt;span style="font-family:verdana;"&gt;The Road to Open Source&lt;/span&gt;&lt;/h3&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Umbraco is the brain-child of Danish born &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;em&gt;&lt;strong&gt;Niels Hartvig&lt;/strong&gt;&lt;/em&gt;. The original code wascreated to help him build web solutions for his clients — back when he had a freelance consulting business. Foreshadowing the future path for the project, Hartvig would often allow Umbraco to be used for free by other freelancers with whom he shared an office.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Hartvig found that by allowing others to use Umbraco, he was getting really good feedback and suggestions for improvements that he may not have gotten otherwise. The decision to go open source was not strategic, according to Hartvig, it just "felt right".&lt;/span&gt;&lt;/p&gt;&lt;h3 align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Not Meant to be Plug-and-Play&lt;/span&gt;&lt;br /&gt;&lt;/h3&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;As we have said, Umbraco is not an out of the box solution in the sense that you can install it and with some minimal configuration and customization away you go. No. There's a little more to using this web content management system than that. And that is the way Hartvig likes it. You see, he doesn't believe in plug and play solutions. To him, organizations tend to focus more on the tools and not as much on their needs.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Hartvig believes that modular OOTB solutions lead organizations to think they have a common language when they really don't.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;He offered an example of a company saying they wanted a forum. The consultant knew that software x had a forum, so they implemented it and gave the customer, so what the consultant gave them was a forum: &lt;a href="http://forum.umbraco.org/"&gt;http://forum.umbraco.org&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Unfortunately all the company really wanted was a simple way to communicate with their customers. Hartvig says that we spend too much time focusing on the technology of content management and not enough about understanding and defining the needs.&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Once the organization truly understands their needs, Umbraco is there to meet them.&lt;/span&gt;&lt;/p&gt;&lt;h3 align="justify"&gt;&lt;span style="font-family:verdana;"&gt;A Small but Evolving Company&lt;/span&gt;&lt;/h3&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Hartvig quit his consulting business in 2007 to do Umbraco full-time. There are 2.5 people in the company — active community member Per Ploug Hansen became a partner last year — building the software and training people to use it.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;The latest version — 4.0.1 — was released in March.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;There's a really great story behind how Umbraco went from being a little solution to help with the consulting business to being one of the most popular downloads on the Microsoft Web Platform Installer, but we really want to get to the meat of this review.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2 align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Market &amp;amp; Pricing&lt;/span&gt;&lt;br /&gt;&lt;/h2&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Umbraco is not actively marketed, it has evolved naturally. When asked what the target market was for Umbraco, Hartvig said that it was hard to place because it is free. He says it is attractive to smaller projects, but it isn't plug and play like Drupal or Joomla.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Used by skilled freelances for small projects, Umbraco also supports some fairly big sites like heinz.com, deanfoods.com, wired.co.uk and naias.com. &lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3 align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Pricing&lt;/span&gt;&lt;/h3&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Umbraco is open sourced licensed under the &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;MIT open source license&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;There are two versions of Umbraco, free and professional. Both versions have the same core product. Professional comes with additional options like support and tools. There are several flavors of the Professional version as described in the figure below.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;img height="344" alt="UmbracoVersions.jpg" src="http://www.cmswire.com/images/UmbracoVersions.jpg" width="600" /&gt; &lt;img height="292" alt="UmbracoVersions2.jpg" src="http://www.cmswire.com/images/UmbracoVersions2.jpg" width="600" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Hartvig says that they hope 1% of their market will become customers by 2010,&lt;br /&gt;either as PRO subscribers or &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;Umbraco.tv&lt;/span&gt;&lt;span style="font-family:verdana;"&gt; subscribers.&lt;/span&gt;&lt;/p&gt;&lt;h3 align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Umbraco Tools&lt;/span&gt;&lt;/h3&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Pro subscribers get a couple of tools that are good to have:&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;Umbraco Courier:&lt;/strong&gt; Courier enables you to easy move your website from a staging environment to production. You can do things like deploy an entire website, sync up content between environments or add new functionality to a staging server.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;Umbraco Concierge:&lt;/strong&gt; Concierge shows developers what's installed and what's in use in their Umbraco implementation. It also monitors action handlers and registered third party applications so you know what is interfacing with the Umbraco event model.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3 align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Umbraco.tv&lt;/span&gt;&lt;/h3&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;In addition to the Pro version, Umbraco also offers a subscription to Umbraco.tv, a website that contains over 6 hours of video tutorials that teach you the ins and outs of building Umbraco. There are videos for site builders, site developers, and soon, editors. New videos are added monthly and depending on the subscription you purchase, the videos are available for the iPod/iPhone.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Umbraco just came out with a new pricing model for Umbraco.tv: 19 EUR per month (~ US$ 25) for a single user personal license. This includes unlimited access to all the videos and source code to select videos. You can cancel the monthly subscription at any time. There's also a 12 month subscription for a single license and a business license. &lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2762447899887212599-6392789580728767538?l=umbracocms.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://umbracocms.blogspot.com/2009/08/quick-take-review-umbraco-web-content.html</link><author>noreply@blogger.com (Jason)</author><thr:total>6</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2762447899887212599.post-7379539603528355382</guid><pubDate>Tue, 11 Aug 2009 04:13:00 +0000</pubDate><atom:updated>2009-08-11T11:17:59.481+07:00</atom:updated><title>An Open Source Story - Evolution of the Umbraco CMS</title><description>&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Not all products are built with loads of venture capital in the coffers. Many are grown slowly and painstakingly over a number of years. A labor of love? Maybe. Some unseen driving force pushing them? Most likely.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;In this article brings you the history of the Umbraco Web CMS, from a .NET toolkit used as part of founder Niels Hartvig's consulting business to being one of the most popular .NET open source web content management systems in the market.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;Sowing Umbraco Seeds&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Niels Hartvig started building Umbraco in 2001 as a content management system that would help achieve his client’s needs.  Niels was working at a time when web content management systems weren’t nearly as prolific and mature as we have today.&lt;br /&gt;So he worked with clients to develop custom solutions and the roots of what became Umbraco are based on those original problems solved and code libraries developed. Umbraco was designed not to limit Niels on what he could do and at the same time deliver to clients the functionality they needed.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;Going Open Source&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The first open source version of Umbraco was released in February 2005. Niels says there was no strategic thinking behind the decision to take Umbraco open source. To Niels “it just felt right”.&lt;br /&gt;Working in a shared office space, Umbraco was often used by the other free agents for free. In return, Niels picked up some consulting hours. These consultants always came back with great feedback – whether they were developers or designers. At the same time, clients were coming with a list of improvements. It occurred to Niels that the more people who had access to Umbraco Web CMS, the better it would become.&lt;br /&gt;But he needed to make money too. So he came up with the idea to charge 3% of each project. Of course everyone thought it was a “brilliant and democratic idea” until the time came to pay. So Niels continued consulting even though what he really wanted to do was work on Umbraco.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Crossing the Bridge&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Over time the project was consuming more and more energy, and Niels found himself under-prioritizing client work. Client satisfaction was dipping, stress was rising and it became clear that he'd reached an all or nothing fork in the road.&lt;br /&gt;&lt;br /&gt;Niels reports that he didn’t have the confidence he needed to make the leap. Not seeing how it could possibly work, he went pseudo all-in during 2006.&lt;br /&gt;&lt;br /&gt;What he did was charge for support on a per ticket basis, to former clients who used Umbraco. In the end, it was basically doing the same thing as consulting and he realized the model was not working out.&lt;br /&gt;&lt;br /&gt;Becoming even more frustrated and still not making money, Niels sat in a meeting with the Danish IRS who threatened to close him down if he didn’t pay them the money he owed.&lt;br /&gt;&lt;br /&gt;It was his wife who made him realize what he needed to do.  She told him that “this is what you get from not really believe in what you do. From only doing it half.” She asked him if he could do it 100% and he said yes, knowing he was going to be living for nothing.&lt;br /&gt;&lt;br /&gt;Together they went to the bank and got the money to pay the IRS (Niels says it was magic). But he was still not going to have any money to finish the next version of Umbraco.&lt;br /&gt;&lt;br /&gt;So he went to the Umbraco community and said version 3.0 would not be completed. He was broke. It was the end of the road.&lt;br /&gt;&lt;br /&gt;And like any good community who believes in their solution, they blew his mind and together they raised $15,000 in donations to finish the version. This was the turning point for Umbraco.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Making it Profitable&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;In early 2007, Niels launched the Umbraco courses which were an instant success. In late 2007 he launched the professional version of Umbraco — another instant success. And recently they've kicked off Umbraco.tv, a subscription-based service for online training which starts off at about 19 EUR per month for a personal account.&lt;br /&gt;&lt;br /&gt;Last year Ploug Hansen, an active freelancer in the Umbraco community became a business partner. Three months later the project became profitable (and Niels paid off the tax office).&lt;br /&gt;&lt;br /&gt;What are the morals of the Hartvig/Umbraco story? It seems to us that, a) never do anything half way, b) respect, develop and rely on your community, and c) if you doubt the open source paradigm be sure to consult your wife.&lt;/span&gt;&lt;/p&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2762447899887212599-7379539603528355382?l=umbracocms.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://umbracocms.blogspot.com/2009/08/open-source-story-evolution-of-umbraco.html</link><author>noreply@blogger.com (Jason)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2762447899887212599.post-7806949638151779131</guid><pubDate>Sat, 08 Aug 2009 05:03:00 +0000</pubDate><atom:updated>2009-08-08T12:06:18.461+07:00</atom:updated><title>Umbraco - Setup a CMS in your Company for free</title><description>&lt;p&gt;&lt;span style="font-family:verdana;"&gt;If you have to setup a documentation system in your company Umbraco CMS is a very good solution.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;Umbraco is an open source CMS written in ASP.NET , it works with IIS (Internet Information Services) and with Sql server Express, of course if works in Windows XP/2003/Vista.&lt;br /&gt;In the market there a a lot of CMS open source, but Umbraco has some very good features:&lt;br /&gt;&lt;br /&gt;- The interface is very user friendly, it uses a lot of JavaScript and permits to do a lot of thing in an easy way.&lt;br /&gt;&lt;br /&gt;- You can create a master page of your website&lt;br /&gt;&lt;br /&gt;- You can create documents that uses that master page. In each document you can add the fields (meta-data) that the user has to input, for each field you define the type of control and if it is mandatory or not.&lt;br /&gt;&lt;br /&gt;- You can integrate your pages with xsl macros. The macro are quite easy to implement. In my case i have created a search that was looking inside some of my fields for the information.&lt;br /&gt;&lt;br /&gt;- The system permits to define the users roles, to have documents revisions, send document to translation and other interesting features.&lt;br /&gt;&lt;br /&gt;- The program shows in two different pages the documents and the images, you can create a different folder structure without problems.&lt;br /&gt;&lt;br /&gt;A feature that I like is the possibility to use Microsoft Live Writer or Microsoft Word 2007 to edit the documents directly from your computer. It permits to save images in a very easy way.&lt;br /&gt;&lt;br /&gt;The new version 4 also has a very good feature that permits to edit the website while you navigate.&lt;br /&gt;&lt;br /&gt;Also if you are a .net developer you can always add new personalized controls to your website. &lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2762447899887212599-7806949638151779131?l=umbracocms.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://umbracocms.blogspot.com/2009/08/umbraco-setup-cms-in-your-company-for.html</link><author>noreply@blogger.com (Jason)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2762447899887212599.post-7336340611819104343</guid><pubDate>Sat, 01 Aug 2009 05:00:00 +0000</pubDate><atom:updated>2009-08-01T12:04:09.287+07:00</atom:updated><title>Sitecore Content Management System Implementation Notes</title><description>&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Before getting into Sitecore, let’s look at CMS implementations in general.&lt;br /&gt;&lt;br /&gt;CMS Implementation – 4 questions&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For a few minutes, forget about the technology. Don’t even think about tthat until you can answer these questions:&lt;br /&gt;&lt;br /&gt;1.) Why do you want or need a CMS?&lt;br /&gt;&lt;br /&gt;This seems like a simple question…but if your answer is to ‘manage web content’, you haven’t completely thought through the strengths of a CMS. Content Management Systems provide much more than just content management; they provide a means to push content ownership out to the subject matter experts. This holds true for all CMS platforms, whether Sitecore, Ektron, Umbraco, Interwoven, Drupal, Wordpress (yes..it is a great CMS) or one of the many others.&lt;br /&gt;&lt;br /&gt;2.) How will you allow content owners to actually own the content?&lt;br /&gt;&lt;br /&gt;When you get your CMS in place, how will your organization push out ownership of the content? What processes can you put in place to allow you to open your CMS to the all content owners. And…yes…i used the word ‘process’. Don’t overdo it though!&lt;br /&gt;&lt;br /&gt;3.) Who “owns” the CMS?&lt;br /&gt;&lt;br /&gt;This is a loaded question. While the CMS is a content platform, is it owned by the IT group? Sure, the platform itself is an IT platform and needs IT services to keep it running, but should the IT group ‘own’ the platform? {My answer: No – the business unit(s) should}&lt;br /&gt;&lt;br /&gt;4.) Do you have a web &amp;amp; marketing strategy? Who “owns” this strategy?&lt;br /&gt;&lt;br /&gt;This is one of the questions that seem easy..but it isn’t. Does your marketing department own the web? IT? PR? Who sets your web strategy? Do you have a strategy? How does your CMS driven web fit into your marketing strategy?&lt;br /&gt;&lt;br /&gt;Answer these questions before you move into your CMS implementation program and you’ll save yourself a lot of trouble. I’m working on another article that addresses these questions (and others) that should be part of an organizaiton’s technology selection strategy plan…look for that article in the future.&lt;br /&gt;&lt;br /&gt;Sitecore CMS Implementation Thoughts&lt;br /&gt;&lt;br /&gt;Now, its time to look at the technology. For those that don’t know, Sitecore CMS is a .NET platform. If your organization is a Microsoft shop, Sitecore is a great fit for you. You do have other options (Sharepoint, OpenText, etc) but my experience has me recommending Sitecore over all others in the .NET world.&lt;br /&gt;&lt;br /&gt;Pre-implementation&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Prior to selecting Sitecore (or any CMS), you’ve got to take some time to think about your processes &amp;amp; workflows. Determine who will have the ‘final word’ on how content is published and where it lives. Set some web standards (if you don’t have them already) and determine your content architecture &amp;amp; strategy. Will you be reorganizing your content? How about a new design? Easy decisions right?&lt;br /&gt;&lt;br /&gt;You’ve answered the four questions above and figured out the high-level stuff…that was easy right? Not really…its harder than it seems but determining this stuff up front will help tremendously once you start implementing Sitecore CMS as it will driving your implementation strategy and plan.&lt;br /&gt;&lt;br /&gt;If you’ve got the budget, hire an outside consultant to help you with this step in the project. If you bring in the right consultant, they could also act as the overall CMS Program Manager (more on this later).&lt;br /&gt;&lt;br /&gt;Implementation&lt;br /&gt;&lt;br /&gt;Now that you’ve worked through the pre-implementation phase, what now? Time to get your Sitecore CMS platform implemented.&lt;br /&gt;&lt;br /&gt;What’s the first step? Grab your development staff and get some Sitecore Training to get certified. This certification is much more than just a piece of paper…it gets your team to a point where they can understand the Sitecore terminology and best practices. This often overlooked step in CMS implementations tends to come back around and haunt the organization at a later date. Spend the money up front and you’ll save money in the long run.&lt;br /&gt;&lt;br /&gt;Implementing the basic Sitecore CMS system is a fairly straightforward process. The hardware requirements are well documented and installation is straightforward. Sounds easy right? So far, it is.&lt;br /&gt;&lt;br /&gt;You’ve found the hardware, configured it and run the Sitecore CMS installation program. Now it’s time to look at splitting your CMS implementation efforts into three parts: Development, Content &amp;amp; Training&lt;br /&gt;&lt;br /&gt;Development – Developing for Sitecore CMS platform isn’t too different than any other .NET development effort. Using .NET best practices, development isn’t too difficult, but the architecture of the platform is extremely important. Take some time to think about your content and IT infrastructure at this point.&lt;br /&gt;Content – You’ve got a Content Management System (or at least one that is being implemented). Time to start implementing your content architecture plans and filling your sitecore tree with content. This initial Content work should be done by a single content team…do not leave this work to your content owners. Take this opportunity to reorganize your content as necessary.&lt;br /&gt;Training – In addition to developing out your website, applications and content, you’ve got to start introducing Sitecore CMS to your organizations’ users. This means lots of meetings, training and discussions of what the CMS is and how it can help them. One of the often overlooked pieces of a CMS implementation is end-user training. Not only do you need to train the organization in the use of the platform, but also in the organizations web &amp;amp; content strategy.&lt;br /&gt;As you can see, implementing a CMS platform like Sitecore is quite a large undertaking even for a smaller organization, but with proper planning and knowledge of Sitecore CMS, you’ll do fine.&lt;br /&gt;&lt;br /&gt;Managing the Implementation&lt;br /&gt;&lt;br /&gt;CMS implementations are much more than a ‘project’…you’ve got a Program here. From my experience, an implementation in a medium to large organization requires a Program Manager to lead the different projects with project managers heading up each of the main thrusts of the project (Hardware, Development, Content, Training).&lt;br /&gt;&lt;br /&gt;There are many different pieces to an implementation. You’ve got to worry about IT Infrastructure, Software development, web design, web content and other topics. Spend the money upfront to get a good Program Manager (use an external consultant if needed) and Project Managers (you could use internal PM’s for this). If you approach this right (and have the budget), you can bring in a consultant to help throughout the project (from technology selection through final implementation).&lt;br /&gt;&lt;br /&gt;While a CMS implementation is a large undertaking, it’s fairly straightforward if you have some knowledge in web strategy, technology, content, marketing and Sitecore CMS. While there are a lot of technical issues to work through, the most difficult part of a CMS implementation is really the content strategy, user education and user adoption aspects…this is where experience and thought leadership comes into play.&lt;br /&gt;&lt;br /&gt;If you’re looking to implement a CMS (Sitecore or otherwise), forget about the technical aspects of the CMS when you start out…look at the business first to make sure it is capable of sustaining your web &amp;amp; content strategy. Understand the business needs first then find your CMS and implement the proper workflow and content architecture to meet the current and future needs of the organization. This is a common sense stuff, but often overlooked when it comes to CMS projects.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2762447899887212599-7336340611819104343?l=umbracocms.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://umbracocms.blogspot.com/2009/08/sitecore-content-management-system.html</link><author>noreply@blogger.com (Jason)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2762447899887212599.post-6029894568576420443</guid><pubDate>Wed, 20 May 2009 03:55:00 +0000</pubDate><atom:updated>2009-05-20T11:33:58.320+07:00</atom:updated><title>Macro Parameters syntax</title><description>&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;What is Macro parameters?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;A macro parameter is in short a value you send to a Macro from Umbraco. This could be piece of text, a node ID or even a big chunk of xml. To do this you have a handfull of different form controls you can use: &lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;bool - A true/false value &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;contentPicker - the ID of the selected node as a single integer. &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;contentRandom - the xml from a random node. &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;contentTree - the xml of the selected node and it's child nodes &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;contentType - the alias of a selected content type as a string &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;contentTypeMultiple - a comma separated list of selected content type aliases &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;mediaCurrent - the xml of the selected media item &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;numer - an integer &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;propertyTypePicker - the alias of the selected property type &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;propertyTypePickerMultiple - a comma separated list of selected property type aliases &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;tabPicker - the caption of the selected tab &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;tabPickerMultiple - a comma separated list of selected tab captions &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;text - a text string &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;textMultiline - a text string.&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Let's continue and look at how you use macro parameters with an xslt macro and what they look like in your xslt.&lt;/span&gt; &lt;/p&gt;&lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="font-family:verdana;"&gt;Setting up a macro parameter&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;br /&gt;First let's create a simple xslt script which will have 2 simple parameters, a text string and a contentTree type - to recap: A text type is a simple string and a contentTree type is the xml of a selected node.&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Adding the parameters&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Create a xslt macro &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Look under the "parameters" tab on the macro settings screen. &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Create a new parameter the alias "text" name "Text property" and type "text" &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Create a second parameter called "contentTree" with the name "Select Node" and the type "contentTree&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;Writing some basic xslt&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Okey so now we have a macro with some parameters. Lets get these parameters into the xslt.&lt;br /&gt;&lt;br /&gt;Our Xslt code (without the stylesheet info):&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre class="code"&gt;&amp;lt;xsl:template match="/"&amp;gt;&lt;br /&gt;  &amp;lt;xsl:copy-of select="/macro/text"&amp;gt;&lt;br /&gt;  &amp;lt;xsl:copy-of select="/macro/contentTree"&amp;gt;&lt;br /&gt;&amp;lt;/xsl:template&amp;gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;Inserting the macro on a template&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;Write some text and pick a node in the content tree by clicking "choose item" - then save. Go take a look at the page in your browser (try viewing the source of the page to see what it actually returns)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Great, you're done with setting up parameters and getting the data into a xslt macro. Let's continue and look at what that data actually look like and how it actually works...&lt;/span&gt;&lt;br /&gt;&lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="font-family:verdana;"&gt;Working with parameters in xslt&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;br /&gt;Okey so sofar we've setup a simple xslt script, added 2 parameters and picked some simple data for the parameters when we inserted the macro in a template.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;So what does the 2 parameters return?&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;p&gt;The &amp;lt;xsl:copy-of select="/macro/text" /&amp;gt; returns:&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;&amp;lt;text&amp;gt;Hello World&amp;lt;/text&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;The &amp;lt;xsl:copy-of select="/macro/contentTree" /&amp;gt; returns:&lt;/p&gt;&lt;pre&gt;&amp;lt;contentTree nodeID="1053"&amp;gt;&lt;br /&gt;&amp;lt;node id="1053" version="a1e061ab-3109-4690-9374-bd0f05882e9b"&lt;br /&gt;parentID="1052" level="2" writerID="0" creatorID="0"&lt;br /&gt;nodeType="1044" template="1043" sortOrder="1"&lt;br /&gt;createDate="2005-12-30T14:01:21" updateDate="2007-06-21T14:06:32"&lt;br /&gt;nodeName="About" urlName="about" writerName="Administrator"&lt;br /&gt;creatorName="Administrator" nodeTypeAlias="wwTextpage"&lt;br /&gt;path="-1,1052,1053"&amp;gt;&lt;br /&gt;&amp;lt;data alias="bodyText"&amp;gt;Body text...&amp;lt;/data&amp;gt;&lt;br /&gt;&amp;lt;data alias="header"&amp;gt;My Header text...&amp;lt;/data&amp;gt;&lt;br /&gt;&amp;lt;/node&amp;gt;&lt;br /&gt;&amp;lt;/contentTree&amp;gt;&lt;/pre&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;So as you can see: the text parameter simple sends the text string we entered to the macro and the contentTree paramater sends a big chunk of xml describing the node we selected. If the node had any child nodes these would also be send to the xslt macro as xml.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Explaining how the parameters are send to the macro&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;When you setup a macro parameter for a xslt macro. You basicly tell umbraco to send some xml to the xslt script. This xml looks something like this:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;macro&amp;gt;&lt;br /&gt;&amp;lt;parameteralias1&amp;gt;Value&amp;lt;/parameteralias1&amp;gt;&lt;br /&gt;&amp;lt;parameteralias2&amp;gt;Value&amp;lt;/parameteralias2&amp;gt;&lt;br /&gt;&amp;lt;/macro&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;So with this infomation along with some basic xpath we can query the xml from the parameters. which is what are doing with "/macro/text" which will get the value from the "text" parameter and the "/macro/contentTree" which will get the value of the parameter with the alias "contentTree" we could then go on a do some basic xpath work on the contentTree macro to return the &lt;em&gt;selected nodes name&lt;/em&gt; like this:&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre class="code"&gt;&amp;lt;xsl:value-of select="/macro/contentTree/node/nodeName"/&amp;gt;&lt;/pre&gt;&lt;pre class="code"&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;or get it's &lt;em&gt;bodyText&lt;/em&gt; value with&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre class="code"&gt;&amp;lt;xsl:value-of select="/macro/contentTree/node/data [@alias = 'bodyText'"/&amp;gt;&lt;/pre&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;Okey so now we are able to define parameters, input some data, get the data to the xslt and work with it in the xslt file. Let's continue to take a look at all the different types of parameters and what they look like in xslt&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2762447899887212599-6029894568576420443?l=umbracocms.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://umbracocms.blogspot.com/2009/05/macro-parameters-syntax.html</link><author>noreply@blogger.com (Jason)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2762447899887212599.post-5156792419098497170</guid><pubDate>Tue, 19 May 2009 10:43:00 +0000</pubDate><atom:updated>2009-05-19T17:51:48.759+07:00</atom:updated><title>XSLT Logic, Variables and Parameters</title><description>&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;Some XSLT Logic&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;XSLT has some logic commands that useful to processing criteria based output. These commands are the "if" and "choose" commands.&lt;br /&gt;&lt;br /&gt;The "if" command is useful for deciding to show content or not based on a single criteria. There is no "else" in XSLT, so, the if is somewhat limited.&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;xsl:if test="@nodeName = 'example' "&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;!-- do this --&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;/xsl:if&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;span style="font-family:verdana;"&gt;The "choose" command is a bit more powerful in that it allows for multiple choices to be selected from.&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;xsl:choose&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;xsl:when test=""&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;!-- do this --&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;/xsl:when&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;xsl:otherwise&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;!-- do this --&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;/xsl:otherwise&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;/xsl:choose&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;span style="font-family:verdana;"&gt;In this example, you can have as many when statements as you like, but must have the otherwise statement.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;a name="1778"&gt;&lt;strong&gt;&lt;span style="font-family:verdana;"&gt;Using Variables and Parameters&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;span style="font-family:verdana;"&gt;Variables and parameters are temporary storage devices in XSLT for holding simple values to complete node sets of data.&lt;br /&gt;&lt;br /&gt;Variables are defined with a name, and can be filled two different ways. The first method is to select the data into the variable as follows:&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;xsl:variable name="myID" select="$currentPage/@id"/&amp;gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;span style="font-family:verdana;"&gt;The second method is to fill the variable by having the content rendered into the variable. &lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;xsl:variable name="myID"&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;     &amp;lt;xsl:value-of select="$currentPage/@id"/&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;/xsl:variable&amp;gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;span style="font-family:verdana;"&gt;The second method is useful when applying logic to filling the variable, in which case an if command or choose command would allow you to have the value selected logically.&lt;br /&gt;&lt;br /&gt;Parameters are handled the same way, except their command is "xsl:param".&lt;br /&gt;&lt;br /&gt;As for the difference, it is a matter of where they can be assigned.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2762447899887212599-5156792419098497170?l=umbracocms.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://umbracocms.blogspot.com/2009/05/xslt-logic-variables-and-parameters.html</link><author>noreply@blogger.com (Jason)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2762447899887212599.post-8055212266510111624</guid><pubDate>Tue, 19 May 2009 10:26:00 +0000</pubDate><atom:updated>2009-05-19T17:42:17.821+07:00</atom:updated><title>Using XPATH</title><description>&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Now that we know what is stored in the XML, and know where the XML is in our XSLT, we can now try to retrieve the data, and format it to our needs.&lt;br /&gt;As previous mentioned, XSLT uses an XML structure to define the processing rules. So we need to learn what a few of the processing elements for XSLT are.&lt;br /&gt;Displaying content from the XML document&lt;br /&gt;First, one of the most important elements is the "value-of" command. It is written as follows:&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;xsl:value-of select="...."/&amp;gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;This command is one of the most prevalent, and has a couple additional attributes to allow for the output to be controlled as needed. We will look into that later.&lt;br /&gt;&lt;br /&gt;In the template area of the XSLT file, we can write our first output now using the value-of command. We know our data is in the $currentPage parameter, and its context is focused on the requested page's node. Thus, if we want to get the name of the current page, we can use the "nodeName" attribute of the node to display the name. Attributes are referenced in XPATH using the "@" with the name of the attribute following, thus "@nodeName".&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;xsl:template match="/"&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;xsl:value-of select="$currentPage/@nodeName"/&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;/xsl:template&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;To explain, the "$currentPage" is looking at the node in the XML document for the current requested page. The "/" is telling us to look at all child elements and attributes. The "@nodeName" says we want the attribute named "nodeName".&lt;br /&gt;Placing the macro on a template would render the name of the current page when the template is displayed.&lt;br /&gt;Going a bit deeper, we may want to display user input content, such as a simple text field named "Website". This is set up in the document type as a text field with the alias "Website". Since this is not a default property, it is referenced using the data element, which there may be multiple of, depending on the number of custom properties on the document type. Thus, referencing this property, our template would look like this:&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;xsl:template match="/"&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;xsl:value-of select="$currentPage/data [@alias='Website']/text()"/&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;/xsl:template&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;To explain, we are again focused on the child elements of the current page, which we select the ones that have the element name of "data". We go one step further, and filter that selection with the usage of "[@alias = 'Website']", which is called a predicate.&lt;br /&gt;The predicate acts as a filter, only returning the results that match the test specified. In this case, only returning the data element that has an "alias" attribute with the value of "Website".&lt;br /&gt;The results are then passed along to the next item that selects the child items, and we return the text of this element. (The "/text()" is optional, but typically helps some understand the context of their statement.)&lt;br /&gt;Now that we can list out the data from our documents, it is time to go deeper.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;a name="1775"&gt;&lt;strong&gt;XPATH and XSLT Loops&lt;/strong&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Another useful command in XSLT is the "for-each" command. This command takes an XPATH statement and iterates the results for each match, executing the nested commands each time. The "for-each" command looks as follows:&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;xsl:for-each select="...."&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;     ...&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;/xsl:for-each&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;So using this command, we can select multiple items and list them out with a very simple call.&lt;br /&gt;&lt;br /&gt;Lets say that our current page has 5 sub-pages, named one, two, three, four, and five. We want to list those 5 pages names on the current page. Thus, we need to loop through the child nodes of the current page. &lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;xsl:for-each select="$currentPage/node"&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;     &amp;lt;xsl:value-of select="@nodeName"/&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;/xsl:for-each&amp;gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;span style="font-family:verdana;"&gt;To explain, we are selecting all child node elements from the current page, looping each node. The value-of is selecting only the attribute named @nodeName.&lt;br /&gt;&lt;br /&gt;Confused? Don't be. The value-of inherits the context of the for-each command, thus, it knows it is on the current node in the loop. If that confuses you too much, you can always write the statement as such: &lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;xsl:for-each select="$currentPage/node"&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;     &amp;lt;xsl:value-of select="current()/@nodeName"/&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;/xsl:for-each&amp;gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;span style="font-family:verdana;"&gt;or&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;xsl:for-each select="$currentPage/node"&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;     &amp;lt;xsl:value-of select="./@nodeName"/&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;/xsl:for-each&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;span style="font-family:verdana;"&gt;Using "current()/" allows you to easily see that you are working against the current item in the loop, and the "./" notation is actually saying select myself.&lt;br /&gt;The resultant output of this will be the five pages listed without any markup, which will be rather difficult to read. So, lets add some unordered list markup for usage in our website.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;ul&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;     &amp;lt;xsl:for-each select="$currentPage/node"&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;          &amp;lt;li&amp;gt;&amp;lt;xsl:value-of select="current()/@nodeName"/&amp;gt;&amp;lt;/li&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;     &amp;lt;/xsl:for-each&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;/ul&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;span style="font-family:verdana;"&gt;Now, we will get bulleted list of page names.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2762447899887212599-8055212266510111624?l=umbracocms.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://umbracocms.blogspot.com/2009/05/using-xpath.html</link><author>noreply@blogger.com (Jason)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2762447899887212599.post-2188674932411086085</guid><pubDate>Tue, 19 May 2009 10:18:00 +0000</pubDate><atom:updated>2009-05-19T17:26:44.163+07:00</atom:updated><title>Understanding "currentPage"</title><description>&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;As mentioned on the previous page, the currentPage parameter is important for us in Umbraco. It is the complete XML document of the published site, and is how we reference the data stored in each document. By default, the context of the XML document is set to the requested page.&lt;br /&gt;&lt;br /&gt;In XSLT, to reference the parameter, and other variable types, we use the "$" and the name of the variable or parameter, thus $currentPage. However, before we use this parameter, we need to know what is in the XML document, and how to reference the content.&lt;br /&gt;&lt;br /&gt;XML is referenced in XSLT through the use of XPATH, a query syntax that resembles that of DOS file commands. Since XML has the ability to contain various levels of information, XPATH has means to traverse these levels, and retrieve data based upon the current context. But again, before we can use XPATH, we must know what is in the XML document.&lt;br /&gt;&lt;br /&gt;The XML document, as mentioned before, contains all the content of the published documents. This data is stored in the XML document structured in the same manner as your tree is laid out in Umbraco. So, documents are nested to create the hierarchy that we can easily use.&lt;br /&gt;&lt;br /&gt;Each document in Umbraco consists of several common pieces of data, and they are: &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;id&lt;/li&gt;&lt;br /&gt;&lt;li&gt;version&lt;/li&gt;&lt;br /&gt;&lt;li&gt;parentID&lt;/li&gt;&lt;br /&gt;&lt;li&gt;level&lt;/li&gt;&lt;br /&gt;&lt;li&gt;writerID&lt;/li&gt;&lt;br /&gt;&lt;li&gt;creatorID&lt;/li&gt;&lt;br /&gt;&lt;li&gt;nodeType&lt;/li&gt;&lt;br /&gt;&lt;li&gt;template&lt;/li&gt;&lt;br /&gt;&lt;li&gt;sortOrder&lt;/li&gt;&lt;br /&gt;&lt;li&gt;createDate&lt;/li&gt;&lt;br /&gt;&lt;li&gt;updateDate&lt;/li&gt;&lt;br /&gt;&lt;li&gt;nodeName&lt;/li&gt;&lt;br /&gt;&lt;li&gt;urlName&lt;/li&gt;&lt;br /&gt;&lt;li&gt;writerName&lt;/li&gt;&lt;br /&gt;&lt;li&gt;creatorName&lt;/li&gt;&lt;br /&gt;&lt;li&gt;nodeTypeAlias&lt;/li&gt;&lt;br /&gt;&lt;li&gt;path&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;These are store as attributes of the document, which is called "node". The properties that are added to the document in Umbraco, and what the user edits are referenced as "data". Data consists of a couple common pieces of data, which are attributes on the data elements. These are:&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;alias&lt;/li&gt;&lt;br /&gt;&lt;li&gt;versionID&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;This is structured similar to the following in the XML document.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&amp;lt;!DOCTYPE umbraco [&lt;br /&gt;&lt;br /&gt;  &amp;lt;!ELEMENT nodes ANY&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;!ELEMENT node ANY&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;!ATTLIST node id ID #REQUIRED&amp;gt;&lt;br /&gt;&lt;br /&gt;]&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;root id="-1"&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;node&lt;br /&gt;&lt;br /&gt;    id="numeric-value"&lt;br /&gt;&lt;br /&gt;    version="guid-value"&lt;br /&gt;&lt;br /&gt;    parentID="numeric-value"&lt;br /&gt;&lt;br /&gt;    level="numeric-value"&lt;br /&gt;&lt;br /&gt;    writerID="numeric-value"&lt;br /&gt;&lt;br /&gt;    creatorID="numeric-value"&lt;br /&gt;&lt;br /&gt;    nodeType="numeric-value"&lt;br /&gt;&lt;br /&gt;    template="numeric-value"&lt;br /&gt;&lt;br /&gt;    sortOrder="numeric-value"&lt;br /&gt;&lt;br /&gt;    createDate="datetime-value"&lt;br /&gt;&lt;br /&gt;    updateDate="datetime-value"&lt;br /&gt;&lt;br /&gt;    nodeName="text-value"&lt;br /&gt;&lt;br /&gt;    urlName="text-value"&lt;br /&gt;&lt;br /&gt;    writerName="text-value"&lt;br /&gt;&lt;br /&gt;    creatorName="text-value"&lt;br /&gt;&lt;br /&gt;    nodeTypeAlias="text-value"&lt;br /&gt;&lt;br /&gt;    path="csv-numeric-value"&lt;br /&gt;&lt;br /&gt;  &amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;data&lt;br /&gt;&lt;br /&gt;      versionID="guid-value"&lt;br /&gt;&lt;br /&gt;      alias="text-value"&lt;br /&gt;&lt;br /&gt;    &amp;gt;&lt;br /&gt;&lt;br /&gt;      field-value or  &amp;lt;![CDATA[field-value]]&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;/data&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;data ...&amp;gt;...&amp;lt;/data&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;node ...&amp;gt;...&amp;lt;/node&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;/node&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;node ...&amp;gt;...&amp;lt;/node&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/root&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2762447899887212599-2188674932411086085?l=umbracocms.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://umbracocms.blogspot.com/2009/05/understanding-currentpage.html</link><author>noreply@blogger.com (Jason)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2762447899887212599.post-3287889822370497323</guid><pubDate>Tue, 19 May 2009 07:51:00 +0000</pubDate><atom:updated>2009-05-19T15:20:23.112+07:00</atom:updated><title>XSLT Basics</title><description>&lt;p align="justify"&gt;&lt;a name="1762"&gt;&lt;strong&gt;&lt;span style="font-family:verdana;"&gt;What is XSLT&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;br /&gt;XSLT, or eXtensible Stylesheet Language Transformations, is a document that is applied programmatically to an XML Document to manipulate the data. The structure of XSLT resembles that of XML, and contains specialized tags to perform specific actions to the data.&lt;br /&gt;In umbraco, XSLT is utilized through the use of macros, which are the dynamic building block of front-end content. These templates can be used for various tasks, including the building of navigation structures, display of content nodes in a customizable format.&lt;br /&gt;umbraco also exposes a series of functions to XSLT documents for the manipulation of the data beyond the standard capabilities of XSLT functions. These XSLT Extensions are easily referenced within the mark-up of the XSLT, allowing for easy manipulation of the data for even the most novice developers.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;a name="1771"&gt;&lt;strong&gt;&lt;span style="font-family:verdana;"&gt;How umbraco uses XSLT.&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;br /&gt;Umbraco utilizes XSLT to dynamically render content such as navigational structures, lists, and nearly anything you can dream of. This is accomplished through the use of Macros.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;&lt;em&gt;Creating Your First XSLT Macro&lt;br /&gt;&lt;/em&gt;&lt;/strong&gt;Creating an XSLT macro is very easy.&lt;br /&gt;1. Go to the developers section in the administration area. &lt;/span&gt;&lt;a href="http://v3.umbraco.org/media/3800/WindowsLiveWriter_HowumbracousesXSLT_C572_image_9.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;2. Right click on the XSLT folder, and select create.&lt;/span&gt;&lt;a href="http://v3.umbraco.org/media/3810/WindowsLiveWriter_HowumbracousesXSLT_C572_image_8.png"&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;3. You will receive a dialog where you can specify the name, select an XSLT template, and specify if you want to automatically create the Macro for this template.&lt;/span&gt;&lt;a href="http://v3.umbraco.org/media/3820/WindowsLiveWriter_HowumbracousesXSLT_C572_image_7.png"&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;4. Specify the name of the new XSLT file, check Create Macro, and select a template if you desire. Click Create.&lt;/span&gt;&lt;a href="http://v3.umbraco.org/media/3830/WindowsLiveWriter_HowumbracousesXSLT_C572_image_10.png"&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;5. You have now created the XSLT file and the Macro for rendering the content.&lt;br /&gt;&lt;br /&gt;Now that we have the XSLT created, we need to customize it to output our content the way we like.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;a name="1772"&gt;&lt;strong&gt;&lt;span style="font-family:verdana;"&gt;XSLT - The Basics&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;br /&gt;The standard XSLT file consists of a few different parts. Understanding these parts will allow you to do much more with XSLT than you probably realize.&lt;br /&gt;First, we have the declaration of the XML file, since XSLT is structured off of XML. This consists of the various entries at the top of the file. Unless you are adding customized functions to your XSLT, this will typically not be edited.&lt;br /&gt;&lt;/span&gt;&lt;/P&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;!DOCTYPE xsl:Stylesheet [ &amp;lt;!ENTITY nbsp "&amp;amp;#x00A0;"&amp;gt; ]&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;xsl:stylesheet&lt;br /&gt;&lt;br /&gt;version="1.0"&lt;br /&gt;&lt;br /&gt;xmlns:xsl="&lt;a href="http://www.w3.org/1999/XSL/Transform%22"&gt;http://www.w3.org/1999/XSL/Transform%22&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;xmlns:msxml="urn:schemas-microsoft-com:xslt"&lt;br /&gt;&lt;br /&gt;xmlns:umbraco.library="urn:umbraco.library"&lt;br /&gt;&lt;br /&gt;exclude-result-prefixes="msxml umbraco.library"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;xsl:output method="xml" omit-xml-declaration="yes"/&amp;gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p align="justify"&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Next, we have a parameter declaration that is very important to us as it is the default link to the content published in the site. This parameter contains all the data in the site, but is focused on the current page that is loaded. Thus it is named "currentPage". &lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&amp;lt;xsl:param name="currentPage"/&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Below this, we have our template. This is the portion that is responsible for the output. &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-family:verdana;"&gt;&amp;lt;xsl:template match="/"&amp;gt;&lt;br /&gt;&amp;lt;/xsl:template&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p align="justify"&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;And finally, we close out the template, since this is XML, everything must be properly structured.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;blockquote&gt;&lt;/span&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&amp;lt;/xsl:stylesheet&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt; &lt;/p&gt;&lt;/blockquote&gt;&lt;p align="justify"&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Now that we know what the basic things are here, we can look into what can be done.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2762447899887212599-3287889822370497323?l=umbracocms.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://umbracocms.blogspot.com/2009/05/xslt-basics.html</link><author>noreply@blogger.com (Jason)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2762447899887212599.post-4704266135351106776</guid><pubDate>Tue, 19 May 2009 07:45:00 +0000</pubDate><atom:updated>2009-05-19T14:46:51.598+07:00</atom:updated><title>Templates part III - Using Master Templates</title><description>&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;Thursday, December 13, 2007 by Niels Hartvig&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Master Templates&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;A master template is the exact same thing as ordinary Templates and they're created in the same way as we created our "Home Page" template in the previous tutorials. The only difference is that a Master Template includes a bit of information about where Child Templates should be inserted. This is a very simple, but efficient way to ensure that you don't repeat yourself and only need to make modifications in one place. You can even nest multiple master templates for maximum flexibility.&lt;br /&gt;&lt;br /&gt;For a start we'll create a Master template based on the markup in our "Home Page" template. Then we'll update our "Home Page" template to use our new master template and at last we'll do the same for our "Text Page" templates. So head over to the "Settings" section of umbraco and let's get started.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Creating a Master Template&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;To create a Master Template, simply right click "Templates" and choose create:&lt;br /&gt;&lt;br /&gt;In the Dialog, call the new Master Template "Master" and click "Create:&lt;br /&gt;&lt;br /&gt;As you can see in the tree view, a new template has been created, so let's copy the markup from our "Home Page" template to the master.&lt;br /&gt;&lt;br /&gt;Click the "Home Page" template in the tree view and copy the markup (by either using the mouse or keyboard short-cuts: CTRL+A and CTRL+C):&lt;br /&gt;&lt;br /&gt;Now, click the "Master" template in the tree view and paste the contents into the text area.&lt;br /&gt;&lt;br /&gt;The next step is to make a little modification to our markup which will turn this template into a Master Template. We'll replace the &lt;?UMBRACO_GETITEM field="bodyText"/&gt;with an instruction to insert a child template instead. That instruction is called "&lt;?UMBRACO_TEMPLATE_LOAD_CHILD/&gt;" and remember that you can always get a list of template elements by clicking the little blue help icon in the toolbar. Remember to click the "Save" icon and then your final markup should look like this:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Using the Master Template&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;The next step is to modify our "Home Page" template so it uses our Master Template. It's very simple, all you need to do is to choose the Master Template from the "Master Template" dropdown. Once that's done, we can remove all the markup from the "Home Page" template which now is stored in our Master Template. So edit the "Home Page" template, choose "Master" as the Master Template and modify the template markup so it looks like this (and remember to save):&lt;br /&gt;&lt;br /&gt;As you can see our Home Page template is much cleaner and because we can repeat this technique on all the other templates we'll use on our site, future changes in the central markup will be very easy to maintain, as it's stored in one single template instead of being spread across all. &lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2762447899887212599-4704266135351106776?l=umbracocms.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://umbracocms.blogspot.com/2009/05/templates-part-iii-using-master.html</link><author>noreply@blogger.com (Jason)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2762447899887212599.post-8312534341775591614</guid><pubDate>Tue, 19 May 2009 07:15:00 +0000</pubDate><atom:updated>2009-05-19T14:44:34.595+07:00</atom:updated><title>Templates part II - Adding page information to templates</title><description>&lt;p align="justify"&gt;&lt;span style="font-family:verdana;font-size:78%;"&gt;Wednesday, December 12, 2007 by Niels Hartvig&lt;/span&gt;&lt;/p&gt;&lt;span style="font-family:verdana;"&gt;&lt;p align="justify"&gt;&lt;br /&gt;Before we start, it might be a good idea to recap what we've done so far:&lt;/p&gt;&lt;p align="justify"&gt;- We've created two Document Types and templates - "Home Page" and "Text Page"&lt;br /&gt;- We've added some properties to the Document Types, so an author could edit some content in a WYSIWYG editor as well as add some Meta data information. These properties had:&lt;br /&gt;A "Name" which the author will see An "Alias" which is used in code and templates to access the property&lt;br /&gt;A "Tab" so we can divide properties into different section for better overview&lt;br /&gt;A "Type" which very simplified determines how the property looks like when editing it - is it an upload field, a WYSIWYG editor and a date chooser&lt;br /&gt;- We've added a few pages to the content tree&lt;br /&gt;- We've edited the "Home Page" template and hard coded Hello World &lt;/p&gt;&lt;p align="justify"&gt;&lt;br /&gt;&lt;strong&gt;Adding html to our template&lt;/strong&gt;&lt;/p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;p align="justify"&gt;&lt;br /&gt;Now it's time to create a little more advanced template where we'll use the values stored on our pages. Have no fear, it's very easy and we'll take it slow.&lt;br /&gt;Start by going to "Settings", fold out the "Templates" tree and click the "Home Page" template:&lt;br /&gt;&lt;/span&gt;&lt;a href="http://umbraco.org/media/66389/WindowsLiveWriter_Dec8Addingpageinformationtotemplates_11252_dec8-helloworld_2.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;We'll replace the "Hello World" with some proper markup, so remove the "Hello World" and paste the following html:&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 10pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 10pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;!&lt;/span&gt;&lt;span style="color: #800000"&gt;DOCTYPE&lt;/span&gt; &lt;span style="color: #ff0000"&gt;html&lt;/span&gt; &lt;span style="color: #ff0000"&gt;PUBLIC&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;quot;-//W3C//DTD XHTML 1.0 Strict//EN&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 10pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;html&lt;/span&gt; &lt;span style="color: #ff0000"&gt;xmlns&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 10pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;head&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 10pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;meta&lt;/span&gt; &lt;span style="color: #ff0000"&gt;http-equiv&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Content-Type&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;content&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;text/html; charset=utf-8&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 10pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;title&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;[A title should be placed here]&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;title&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;   &lt;br /&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 10pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;head&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 10pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;body&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 10pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt; &lt;span style="color: #ff0000"&gt;id&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;container&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 10pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt; &lt;span style="color: #ff0000"&gt;id&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;navigation&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 10pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;br /&gt;                [Add navigation here]&lt;br /&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 10pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 10pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt; &lt;span style="color: #ff0000"&gt;id&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;content&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 10pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;br /&gt;                [Add page content here]&lt;br /&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 10pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 10pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 10pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;body&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 10pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;html&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-family:verdana;"&gt;&lt;div align="justify"&gt;&lt;br /&gt;Click the Save icon in the toolbar and your screen should look like this:&lt;br /&gt;&lt;/span&gt;&lt;a href="http://umbraco.org/media/66399/WindowsLiveWriter_Dec8Addingpageinformationtotemplates_11252_dec8-stubs_2.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;As you can see, this is some very bare bone html complete with placeholders which will replace with some umbraco template elements in a moment. For now, go look at the website and do a view source:&lt;br /&gt;&lt;/span&gt;&lt;a href="http://umbraco.org/media/66409/WindowsLiveWriter_Dec8Addingpageinformationtotemplates_11252_dec8-viewsource_2.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Notice how the markup outputted by umbraco is completely identical to the markup you added in the template, including whitespace (tabbing). It shouldn't come as a surprise, remember I promised that umbraco wouldn't mess with your markup, but now you got evidence. With umbraco, you finally have a ASP.NET CMS that respects your markup. Now it's time to add some dynamics to the placeholders!&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Accessing page properties in the templates &lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;Let's head back to our "Home Page" template and replace the placeholders (the text in the square brackets) with some dynamic content - it's time to play with some umbraco template elements. So far we've just been adding good old html to the template, but if you want other than hard coded content in your templates (and that would be nice wouldn't it?) then you'll need to learn a little more.&lt;br /&gt;&lt;br /&gt;In the previous tutorial I showed you the five different umbraco elements, but I also promised that you didn't really needed to write them yourself because the template editor offers build in UI.&lt;br /&gt;&lt;br /&gt;We'll start by adding the title of our umbraco page to the html title header, so remove the text "[A title should be placed here]" and place your cursor inside the "TItle" elements and click the "Insert umbraco page field" button in the toolbar:&lt;br /&gt;&lt;/span&gt;&lt;a href="http://umbraco.org/media/66419/WindowsLiveWriter_Dec8Addingpageinformationtotemplates_11252_dec8-pagefield_2.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;A new dialog will appear giving you some handy options for inserting page properties to your template. For now we'll focus on the simplest way to insert a property and then we'll get back to the various options in a later tutorial. If you open the dropdown from the "Choose field" you can see a list of all the page properties that's currently created in your umbraco installation. The ones in the bottom of the list, prefixed with a "@" is build-in properties that exists on all pages created. The ones in the top is the custom ones you've created. &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;For now choose "@pageName" from the "Choose field" drop down and click the "Insert" button in the bottom of the window:&lt;br /&gt;&lt;/span&gt;&lt;a href="http://umbraco.org/media/66429/WindowsLiveWriter_Dec8Addingpageinformationtotemplates_11252_dec8-choose-pagename_2.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;umbraco will insert the template markup needed for the title of the page into your template:&lt;br /&gt;&lt;/span&gt;&lt;a href="http://umbraco.org/media/66439/WindowsLiveWriter_Dec8Addingpageinformationtotemplates_11252_dec8-pagefield-result_2.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Now do the same for the [Add page content here]:&lt;br /&gt;Remove the placeholder text&lt;br /&gt;Click the "Insert umbraco page field" button in the toolbar&lt;br /&gt;Choose "bodyText" in the dropdown (that's the alias of our WYSIWYG property we created in a previous tutorial, remember?) and click "Insert"&lt;br /&gt;Click "Save" in the toolbar&lt;br /&gt;The final result should look like this (we'll work on the navigation in a later tutorial):&lt;br /&gt;&lt;/span&gt;&lt;a href="http://umbraco.org/media/66449/WindowsLiveWriter_Dec8Addingpageinformationtotemplates_11252_dec8-final-template_2.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Now, go see your "Home Page" of your website. Notice how umbraco automatically insert the content into the template. You can try modifying the contents of the WYSIWYG editor or the title of your page. Just remember to Publish the page and then view it afterwards:&lt;br /&gt;&lt;/span&gt;&lt;a href="http://umbraco.org/media/66459/WindowsLiveWriter_Dec8Addingpageinformationtotemplates_11252_dec8-result_2.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;And again - view source will reveal the cleanest markup ever seen from a .NET powered CMS:&lt;br /&gt;&lt;/span&gt;&lt;a href="http://umbraco.org/media/66469/WindowsLiveWriter_Dec8Addingpageinformationtotemplates_11252_dec8-finalsource_2.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2762447899887212599-8312534341775591614?l=umbracocms.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://umbracocms.blogspot.com/2009/05/templates-part-ii-adding-page.html</link><author>noreply@blogger.com (Jason)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2762447899887212599.post-2988816783122423564</guid><pubDate>Tue, 19 May 2009 07:12:00 +0000</pubDate><atom:updated>2009-05-19T14:28:58.723+07:00</atom:updated><title>Templates part I - The introduction</title><description>&lt;div align="justify"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Friday, December 07, 2007 by Niels Hartvig&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family:verdana;"&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Introducing templates&lt;/strong&gt;&lt;/div&gt;&lt;strong&gt;&lt;/strong&gt;&lt;div align="justify"&gt;&lt;br /&gt;One of the things that people really likes about umbraco is that it gives you complete - as in total, non-destructive and non interfering - control over the output. This assures that you can create valid, semantic and accessible markup in anyway you want. And so far we haven't told umbraco anything, so it proves it's worth; I won't do anything, because that's what I'm told. If only I could raise my kids like I raised umbraco ;-)&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;The solution to our blank page is adding markup to our templates, but before we do that I'd like to take a moment to explain what a template in umbraco actually is - which is very simple. An umbraco template is basically text - usually (X)Html - combined with umbraco tags (elements). This means that you can simply take your own markup and replace the chunk of "&lt;/span&gt;&lt;a href="http://lipsum.com/"&gt;&lt;span style="font-family:verdana;"&gt;Lorem Ipsum&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;" (or whatever you call your placeholders) with umbraco tags. That's it! umbraco will respect your attention to detail when it comes to markup and output exactly the same as you created, including whitespace, tabs and linebreaks and it gets even better - you don't need to learn a new proprietary and obscure template language.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Template Tags&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;/strong&gt;Instead of having it's own template language and re-inventing the wheel by having yet-another-way-to-handle-presentation-logic, umbraco is based on standards for dynamic content, which we'll get back to in a moment. For know, let's focus on the simplicity of the template elements which consists of five element (yes, just 5!):&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;1. &lt;?UMBRACO_GETITEM /&gt;: This is for inserting a property from the current page that's rendered. So if we wanted to output the name of the page we would simply write: &lt;?UMBRACO_GETITEM field="pageName"/&gt;(in fact we wouldn't as there's a complete UI - you don't even have to learn the element syntax!)&lt;br /&gt;2. &lt;?UMBRACO_MACRO /&gt;: This is for inserting dynamic content like lists or forms. We'll explore macros in depth in a later tutorial, but basically a macro is a wrapper for either a .NET control or an XSL Template, which is a standard made by W3C, the same group who developed Html.&lt;br /&gt;3. &lt;?UMBRACO_TEMPLATE_LOAD_CHILD/&gt;: With umbraco you can have the central layout stored in Master Templates and this element will determine where to insert child templates that uses the master.&lt;br /&gt;4. &lt;?ASPNET_FORM /&gt;. As umbraco is based on Microsoft ASP.NET, but don't output any markup unless told (you get the picture now, right!) you'll need to tell umbraco where to put a serverside form if you use .NET Controls.&lt;br /&gt;5. &lt;?ASPNET_HEAD /&gt;. If you wish to use an ASP.NET server side Head element, you'll use this element&lt;br /&gt;Help on the elements is always near by - simply click the "Help" button in the toolbar when editing a template and you'll get the list:&lt;br /&gt;&lt;/span&gt;&lt;a href="http://umbraco.org/media/63865/WindowsLiveWriter_Dec7TemplatespartI_ED21_dec7-help_2.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;strong&gt;Updating our template&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;/strong&gt;Enough with the theory - let's try to make a simple templates. Go to the Settings section and foldout the templates. If you've followed the previous tutorials, you can see we have two templates which was automatically created when we added the corresponding Document Types (because we checked the "Create matching template" box when creating the Document Type):&lt;br /&gt;&lt;/span&gt;&lt;a href="http://umbraco.org/media/63875/WindowsLiveWriter_Dec7TemplatespartI_ED21_dec7-templates_2.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Click the "Home Page" template and you'll see this view:&lt;br /&gt;&lt;/span&gt;&lt;a href="http://umbraco.org/media/63885/WindowsLiveWriter_Dec7TemplatespartI_ED21_dec7-edittemplate_2.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;For now we'll concentrate on the "Template" textbox, so try to add " &lt;p&gt;Hello World&lt;/p&gt;" into the big textarea and click the Save button in the toolbar. Now try go previewing your Home Page:&lt;br /&gt;&lt;/span&gt;&lt;a href="http://umbraco.org/media/63895/WindowsLiveWriter_Dec7TemplatespartI_ED21_dec7-helloworld_2.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Stunning!&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Adding page information to the template&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;Now you always need a Hello World Sample, but wouldn't it be great to improve just a little? Well, come back tomorrow and we'll start using the elements (I would have liked this tutorial to been a little longer, but I ran out of time!)&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2762447899887212599-2988816783122423564?l=umbracocms.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://umbracocms.blogspot.com/2009/05/templates-part-i-introduction.html</link><author>noreply@blogger.com (Jason)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2762447899887212599.post-8535670544544686948</guid><pubDate>Tue, 19 May 2009 07:03:00 +0000</pubDate><atom:updated>2009-05-19T14:07:54.968+07:00</atom:updated><title>Document Type Part II</title><description>&lt;div align="justify"&gt;&lt;a name="22300"&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;Document Type Creation Walk Through&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;&lt;em&gt;Step 1&lt;/em&gt;&lt;/strong&gt; - Open the umbraco administration application. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Step 2&lt;/em&gt;&lt;/strong&gt; - Click on the Settings section icon in the lower left corner of the screen.&lt;br /&gt;&lt;/span&gt;&lt;a href="http://umbraco.org/media/121182/WindowsLiveWriter_DocumentTypeCreationWalkThrough_12F01_settings_2.jpg"&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Step 3&lt;/em&gt;&lt;/strong&gt; - Right-Click on the Document Types node in the Settings tree.&lt;br /&gt;&lt;/span&gt;&lt;a href="http://umbraco.org/media/121192/WindowsLiveWriter_DocumentTypeCreationWalkThrough_12F01_doctypenode_2.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;&lt;em&gt;Step 4&lt;/em&gt;&lt;/strong&gt; - Click the Create menu option.&lt;br /&gt;&lt;/span&gt;&lt;a href="http://umbraco.org/media/121202/WindowsLiveWriter_DocumentTypeCreationWalkThrough_12F01_createmenuitem_2.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;&lt;em&gt;Step 5&lt;/em&gt;&lt;/strong&gt; - Type the name of the Document Type you are creating and check the "Create matching template" checkbox. &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Note: The majority of the time you will want a template associated with the Document Type. Future versions of umbraco may have the checkbox checked by default, but as for now make sure it is checked. In this walk through we will create a Text Page which is a simple type that just has a single property "Content". This type will allow the content editors to create basic pages.&lt;br /&gt;&lt;/span&gt;&lt;a href="http://umbraco.org/media/121212/WindowsLiveWriter_DocumentTypeCreationWalkThrough_12F01_createdoctype_2.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;&lt;em&gt;Step 6&lt;/em&gt;&lt;/strong&gt; - Create a Tab be first selecting the Text Page document type in the settings tree and selecting the "Tab" tab. Type "Content" into the New Tab text box and then click the New Tab button. This will add the tab to the tabs list displayed below the text box.&lt;br /&gt;&lt;/span&gt;&lt;a href="http://umbraco.org/media/121222/WindowsLiveWriter_DocumentTypeCreationWalkThrough_12F01_tabstab_2.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;&lt;em&gt;Step 7&lt;/em&gt;&lt;/strong&gt; - Click the save icon. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Note: VERY IMPORTANT! The administration application is a web page, this means you will not be warned if you change pages by selecting a different section and you HAVE NOT SAVED your current work. You should get in the habit of clicking the save icon every time you make changes. This applies to every part of the administration application.&lt;br /&gt;&lt;/span&gt;&lt;a href="http://umbraco.org/media/121232/WindowsLiveWriter_DocumentTypeCreationWalkThrough_12F01_saveicon_2.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;&lt;em&gt;Step 8&lt;/em&gt;&lt;/strong&gt; - Click on the "Generic properties" tab and click the "Click here to add a new property" bar under the "Add New Property Heading.&lt;br /&gt;&lt;/span&gt;&lt;a href="http://umbraco.org/media/121242/WindowsLiveWriter_DocumentTypeCreationWalkThrough_12F01_newproperty_2.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;&lt;em&gt;Step 9&lt;/em&gt;&lt;/strong&gt; - In the Edit "Creation new property" fields enter the following information: In Name enter "Content", in Alias enter "bodyText", in Type select "Richtext editor", and in Tab select "Content". &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;You may be wondering why bodyText is used. There is no requirement that says you must use this alias however, bodyText is generally used in umbraco and by using it we save ourselves work in other areas because we don't have to keep changing the value to whatever we used instead.&lt;br /&gt;&lt;/span&gt;&lt;a href="http://umbraco.org/media/121252/WindowsLiveWriter_DocumentTypeCreationWalkThrough_12F01_propertyfields_2.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;&lt;em&gt;Step 10&lt;/em&gt;&lt;/strong&gt; - Click the save icon.&lt;br /&gt;&lt;/span&gt;&lt;a href="http://umbraco.org/media/121232/WindowsLiveWriter_DocumentTypeCreationWalkThrough_12F01_saveicon_2.jpg"&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;Step 11&lt;/strong&gt;&lt;/em&gt; - Click on the "Structure" tab and put a check in the Text Page check box.&lt;br /&gt;&lt;/span&gt;&lt;a href="http://umbraco.org/media/121262/WindowsLiveWriter_DocumentTypeCreationWalkThrough_12F01_structure_2.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;em&gt;&lt;strong&gt;Step 12&lt;/strong&gt;&lt;/em&gt; - Click the save icon.&lt;br /&gt;&lt;/span&gt;&lt;a href="http://umbraco.org/media/121232/WindowsLiveWriter_DocumentTypeCreationWalkThrough_12F01_saveicon_2.jpg"&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Step 13&lt;/em&gt;&lt;/strong&gt; - Click on the "Info" tab and select the doc.gif item from the icon list, select the doc.png item from the thumbnail list, add a description and ensure that "Text Page" is checked in the Allowed Templates and that it is also selected in the Default Template list.&lt;br /&gt;&lt;/span&gt;&lt;a href="http://umbraco.org/media/121272/WindowsLiveWriter_DocumentTypeCreationWalkThrough_12F01_info_2.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;&lt;em&gt;Step 14&lt;/em&gt;&lt;/strong&gt; - Click the save icon.&lt;br /&gt;&lt;/span&gt;&lt;a href="http://umbraco.org/media/121232/WindowsLiveWriter_DocumentTypeCreationWalkThrough_12F01_saveicon_2.jpg"&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Summary&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;If you have followed the steps above, you have successfully created a Document Type. You are now only 1/2 way done. You can now create pages in the content section however when you view them you will see nothing. The reason is you have only created the data structures, you have not created any view. In order to create views for your site You will need to create Templates. Templates are a topic for another book. However, this walk through is not very useful if you can't see your data so we will do one minor extra step to enable at least a basic view of your content.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Bonus Step&lt;/em&gt;&lt;/strong&gt; - Select the Text Page template under the Templates node in the Settings tree. The metadata for the template will show up in the right pane of the screen. In the Template field type in the following value and click the save icon:&lt;br /&gt;&lt;?UMBRACO_GETITEM field="bodyText" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a href="http://umbraco.org/media/121282/WindowsLiveWriter_DocumentTypeCreationWalkThrough_12F01_edittemplate_2.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;You can now go to the content section and create new pages for your site by right clicking on the Content node and selecting "Create". If you were able to follow this walk through you should have no problems creating content as it works in the same manor.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;Don't be afraid to experiment and have fun!&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2762447899887212599-8535670544544686948?l=umbracocms.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://umbracocms.blogspot.com/2009/05/document-type-part-ii.html</link><author>noreply@blogger.com (Jason)</author><thr:total>0</thr:total></item></channel></rss>

