New courses in December

Monday, October 22, 2007 by Niels Hartvig

Last courses were a huge success and they sold out with people on the waiting list. So here we go again - Level 1 and 2 courses on December 6-7th in Copenhagen, Denmark.

As mentioned last round of courses sold out, so you might want to register quickly this time. As a special bonus we'll give you a 15% discount if you register before November 1st. To get the bonus, simply add "JingleBells" in the Coupon Code field.

The instructors will be Per "objects.dk" Ploug Hansen on the Level 1 course and me (Niels Hartvig) on the Level 2. Here's a little topic appetizer for what we'll cover:

Level 1 - implementing websites using umbraco:

  • Understanding the umbraco basics - Document Types, Templates and Macros
  • Creating a simple website from scratch
  • Understanding XSLT - creating a news "module"
  • Creating multi-language websites including coverage of Dictionary Items and Languages
  • Advanced properties: Re-use of properties and recursive usage of properties
  • Two-way feedback using AutoForms and Notifications
  • Great Packages: Implementing full-text searching and mail forms

Level 2 - umbraco for .NET Developers, extending and integrating solutions

  • Usage of .NET User Controls with umbraco
  • Debugging .NET Controls with umbraco
  • In-depth explanation of the umbraco object model and usage of the umbraco presentation APIs
  • Creating, importing and modifying content from .NET using the API
  • Extending XSLT with custom .NET classes
  • Usage of AJAX and umbraco
  • Custom event handling in umbraco using ActionHandlers
  • Walkthrough of Members and their APIs

Full details on training as well on how to order at the training section.

Douglas Robar new umbraco MVP 2007/2008

Monday, October 22, 2007 by Niels Hartvig

At CodeGarden '07 five MVP's were appointed, but since then the umbraco community has grown even stronger and especially one person has been a stunning resource; Douglas Robar of Percipient Studios. Through tons of swift replies in the forum, three books on installing umbraco and two great umbraco packages - XSLTsearch and ImageGen - he has helped newcomers as well as veterans.

The above is enough to justify the MVP announcement, but Doug's efforts don't stop there. He's also part of the package repository team and he was also the host of the first USA umbraco retreat back in April. Thank you Doug for all your hard work!

Percipient Studios, Doug's website and user interface design firm, is located in Louisville, KY. In addition to website and UI design, Percipient Studios also provides consulting and umbraco level 1 training to individuals and companies throughout the United States.

Umbraco dinner in Manchester, UK

Wednesday, October 10, 2007 by Niels Hartvig

I'll be joining Ryan, Ismail and others for an umbraco geek dinner in Manchester, UK on Tuesday at 19.00. Ismail (or he's wife) found this restaurant where we'll be enjoying a curry and chats on umbraco. Leave a message in the comments if you want to join!

Chat Tomorrow about the Package Repo

Monday, October 08, 2007 by Niels Hartvig

Tomorrow's chat (Tuesday) will be about the Package Repository and some great progress and exciting news.

The Package Repo Group have been doing some great work the past three weeks with ideas on package documentation, polishing of existing packages and release of some new packages.

Hear about their progress and give them loads of feedback tomorrow (Tuesday) at 19.30 CET - they deserve it. As always, the url for the chat is: http://forum.umbraco.org/chat

Courses: Level One Sold Out - just two seats left on level two

Tuesday, October 02, 2007 by Niels Hartvig

The level one course next week just sold out - let us know if you want to come on waiting list. There's just two seats left on Level two so don't wait to long as it might sell out as well and Level Two is sold out as well..

Info on time schedule and location is in the FAQ. Huge thanks to all who signed up - Per and I are looking much forward to meet you!

UPDATE: Level Two is also sold out. New dates for next courses will come soon, but please let us know if you're interested and we might make it sooner (current estimate is beginning of December). 

Code Sample: Importing members from outlook

Monday, October 01, 2007 by Niels Hartvig

I needed to import some address groups from Outlook into an umbraco installation for a friend last week. It was very simple and I though I'd share the code. Hope you like it - feel free to ask questions in the comments.

Before you begin

  1. This code assumes that you have a MemberType called "newsletter" and a MemberGroup named "newsletter" as well.
  2. Create a web application project and add references to businesslogic.dll and cms.dll
  3. Override the web.config in the new project with the original one from your umbraco installation and then remove all "ConfigSource" references in the web.config. Also remove the reference to the UrlReWriter in the httpModules section. If you're running umbraco v3.0.3 (latest) this new Web Application project will be able to work fully with the API as if it was running inside your umbraco installation. If you're working with an umbraco version lower than 3.0.3 you'll need to create an "umbraco" directory and copy the "version.xml" file.

The code - default.asp.cs

The code is quite simple. Our contact list from Outlook was exported to a textfile and consists of a names and emails separated by a tab. Remember to add a decent server timeout if you're importing thousands of contacts as the umbraco API can be a little slow as it's not optimized for bulk operations like this.

using System; using System.IO; using System.Web.UI; using umbraco.BusinessLogic; using umbraco.cms.businesslogic.member; namespace WebApplication1 { public partial class _Default : Page { protected void Page_Load(object sender, EventArgs e) { // Get default user User u = new User(0); // Get member type MemberType mt = MemberType.GetByAlias("newsletter"); // Get the newsletter group int newsletterGroupId = MemberGroup.GetByName("newsletter").Id; // Open files StreamReader re = File.OpenText(Server.MapPath("import1")); string input = ""; while ((input = re.ReadLine()) != null) { string importStatus = ""; string name = ""; string email = ""; try { // split the name and email by tab string[] nameAndEmail = input.Split("\t".ToCharArray()); // Some names exported by Outlook contains the email in brackets, we'll exclude that from the name. name = nameAndEmail[0]; if (name.IndexOf("(") > -1) name = name.Substring(0, name.IndexOf("(")); email = nameAndEmail[1]; // Create member Member m = Member.MakeNew(name, email, mt, u); // Add new member to newsletter group m.AddGroup(newsletterGroupId); // Print import status importStatus = string.Format("<li>{0}, {1} imported succesfully</li>", name, email); } catch (Exception ee) { // Print import status on failure importStatus = string.Format("<li style=\"color: red;\">{0}, {1} failed with reason: {2}</li>", name, email, ee.ToString()); } Response.Write(importStatus); } re.Close(); } } }

Courses almost sold out

Monday, October 01, 2007 by Niels Hartvig

The courses in two weeks are almost sold out, so don't wait too long if you're thinking about joining two wonderful days with Per Ploug Hansen, yours truly, 12-16 wonderful attendees and loads of umbraco hacking.

More info on the training pages.