Sök

Här kan du söka fram ditt innehåll

 

  • Intellisense på kontroller i umbraco.uicontrols
    När man utvecklar egna sections till Umbracos backoffice så är det lämpligt att återanvända standardkontrollerna i Umbraco. Dessa finns i umbraco.uicontrols och används genom att lägga till följande rad i början av din aspx-fil.   <%@ Register TagPrefix="umb" Namespace="umbraco.uicontrols" Assembly="controls" %> När jag gjorde detta i ett nytt projekt för att tag sedan märkte jag att Visual Studio vägrade att ge mig Intellisense på kontrollerna vilket var sjukt irriterande. Efter lite googlade så hittade jag denna tråd som presenterade den enkla lösningen:   Lägg till en referens till ClientDependency.Core.dll i ditt projekt och saken är biff.          
  • Bygga ut Umbraco Backoffice - del 1
    Jag tänkte gå igenom grunderna i hur man bygger ut Umbracos Backoffice/backend. Eftersom det redan finns ett bra gäng bloggposter om hur man lägger till sin egen "section" så tänkte jag fokusera på lite andra delar just nu.   Skapa egen section / application i Umbraco Det krävs lite småfix i databasen för att skapa sin egen section, det är inte särskilt avancerat och du kan läsa utförligt hur man gör i dessa poster:   http://www.robertgray.net.au/2011/5/10/creating-a-custom-content-tree-in-umbraco.aspx   http://www.sewen.se/blogg/2010/2/26/skapa-en-custom-section-i-umbraco-(steg-1).aspx   Göra egna Webforms till Umbraco backoffice När du ska skapa dina egna .aspx-filer för redigeringsytan så är det en bra idé att använda Umbracos egna kontroller för backoffice. De finns i umbraco.uicontrol...
  • Arbeta med Umbraco i Visual Studio 2008
    Ett tips för dig som utvecklar umbraco-lösningar är såklart att använda Visual Studio. Umbraco har ju möjligheta att redigera XSLT, CSS, JavaScript och även HTML-mallar i sitt admingränsnitt. Däremot missar man ju debugging och mycket annat som kommer tillsammans med Visual Studio. Om du vill utveckla och debugga med Visual Studio 2008, gör såhär:   1. Skapa en ny Umbraco-installation Ställ in databas-koppling, rättigheter osv. Filerna kan tex hamna i c:\inetpub\wwwroot\umbraco   2. Skapa ett nytt "Website Application Project" Detta projekt ska skapas i en annan mapp än din umbraco installation. Lägg till de mappar för de filer du vill kunna arbeta med. Jag har följande:     * /css     * /scripts     * /xslt     * /masterpages     * /usercontrols   3. Lägg till ett "Post Build Event" De...
  • Ny node överst i nodlistan
    Jag har byggt ett system till en kund som arbetar med ljud och ljus. Kunden uppdaterar själv sidan med Umbraco 4.0.2. Sidan är uppbyggd med moduler med text, bild, bildspel, video osv. Dessa sorteras sedan och visas i den ordning som listan är sorterad.   En frustrerade sak som jag upptäckte var att Umbraco automatiskt lägger till en ny nod längst ned i nodlistan. Ofta vill man ju att nya inlägg/noder ska hamna högst upp. Att sortera i omvänd ordning blir ologiskt - noderna bör ju visas på samma sätt i nodlistan som på själva sidan. Problemet med att Umbraco lägger nya noder längst ned gör att man efter varje nytt inlägg måste sorta för att få de nya inlägget/noden högst upp.   För att komma runt detta och få mina nya noder att hamna högst upp skapade jag en metod som prenumererar på hände...
  • Fel vid uppgradering till .NET 3.5
    Har precis hjälpt en kund som fick problem när deras webbhotell valde att uppgradera sina gamla windows 2003-servrar med ASP.NET 2.0 till Windows 2008 och ASP.NET 3.5. Det var flera fel som uppstod...   Inget ASP.NET Ajax Installerat Det första felmeddelandet som visades var följande: Assembly Load Trace: The following information can be helpful to determine why the assembly 'System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' could not be loaded. Detta fel uppstår när Umbraco försöker att komma åt ASP.NET Ajax. Webbhotellet hade glömt, eller stuntat i att återinstallera detta på servern vilket gjorde att dessa assemblies behövde adderas till bin-katalogen. Att kopiera in följande filer löste problemet:   System.Web.Extensions.Design.dll System.Web.Extensions...
  • Umbraco och umbracoDebugMode
    Har tidigare skrivit ett blogginlägg om saker att tänka på när man sätter ut sin Umbraco-sajt i produktionsmiljö. Tyvärr är det för få som läst den bloggposten =D Jag ser flera riktigt stora implementationer av Umbraco som ligger ute på nätet med stora säkerhetshål, vidöppna för hackers att frossa i.   Det här inlägget tänkte jag ägna åt att berätta om debugging. När man utvecklar sin hemsida i Umbraco så kan man använda sig av olika typ av debugfunktionalitet, dessa features är endast avseda att användas vid utveckling, i produktion (dvs. när hemsidan ligger live på internet) så ska debugfunktionerna inaktiveras av två skäl:   Säkerhet Att ha debugfunktionerna aktiverade gör att en hacker kan använda "umbDebugShowTrace=true" för att visa sidans trace information (se bild nedan), den bjude...
  • Vad är nytt i Umbraco 4.7.2?
    Det korta svaret är att det inte är några nyheter i Umbraco 4.7.2, störst fokus har enligt teamet legat på att stabilisera existerande funktioner och optimera prestandan, några av de saker som förbättrats är: Medlemshanteringen har ändrats så att den lutar sig mer åt .NETs egen MembershipProvider, detta är endast interna ändringar som inte påverkar själva APIn. Ökad prestanda och stabilitet i motorn för förhandsvisning. Ny inställning för att hålla användare inloggade i backoffice finns i umbracoSettings.config, /settings/security/keepUserLoggedIn. Denna är satt till true, om man vill ha automatisk utloggning, sätt den till false. Förbättringar och optimeringar av Razor implementationen. Upp till 80% bättre prestanda för den som använder SQLCE. Så uppgraderar du För att göra en uppgrader...
  • Umbracos media picker
    Jag har precis börjat arbeta med en kund som har väldigt mycket bilder i sin media section, det är ganska få mappar med väldigt många filer i varje mapp. Bilderna används på olika artiklar i content trädet och väljs med umbracos inbyggda media picker.     Problemet med denna picker är att man endast kan välja bild, vilket gjorde att min kund tidigare var tvungen att först gå in i media-sektionen och ladda upp bilder för att sedan gå till artikeln och välja den nya bilden (och leta som en galning ibland alla filer).   Jag tittade på olika lösningar på problemet en av dem skulle vara att installera DAMP-paketet som är en riktigt bra media picker, men efter ett tips från @Brannmark insåg jag att lösningen kan vara betydligt enklare än så. Det går nämligen att sätta umbracos inbyggda media pi...
  • Newsletters in Umbraco
    Some years ago I worked on a project and needed an easy way to send newsletters from Umbraco. I looked though all the packages at our.umbraco.org and my conclusion was simple: there are no good packages.   I had two options: Integrate with an external email service or build something. I saw this as an opportunity to actually contribute something and improve the experience for the end users of Umbraco. Because at the end of the day it's always the end users, our customers, that are supposed to use the system.   To make their life easier I wanted to create a newsletter section in the Umbraco backoffice where the user can create, send and track  newsletters. That's want I did.   Newsletter Studio for Umbraco   After a lot of hard work I managed to release Newsletter Studio for Umbraco...
  • Great tip for url replacing with Umbraco
    As long as I can remember Umbraco has shipped with a set of presets for the url replacing feature. This is the feature that takes the node name and turns it into a valid url. These presets lives in the /config/umbracoSettings.config-file and used to look something like this.   <urlReplacing removeDoubleDashes="true"> <char org=" ">-</char> <char org="""></char> <char org="."></char> <char org=";"></char> <char org="/"></char> <char org=":"></char> <char org="+">plus</char> <char org="*">star</char> <char org="&"></char> <char org="?"></char> <char org="æ">ae</char> <char org="ø">oe</char&gt...
  • CurrentUmbracoPage or RedirectToCurrentUmbracoPage?
    I had that question in mind when I was working with a new MVC-site using Umbraco 7 and wanted to share my conclusions. Well after some googling I found this great blogpost from the Umbraco core-developer Shannon Deminick. It’s related to Umbraco 5 (RIP) but the concept still applies to the MVC-implementation in Umbraco 7 (and 6), in one of the comments he explains the difference.   So. This is the thing. Use return CurrentUmbracoPage() When you just want to return the current page. Here you can use the ViewData and ViewBag object to pass data from the controller to the view and that will work just fine. Generally you want to return to the current page if you want to keep the POST-data that was sent to the controller. Use return RedirectToCurrentUmbracoPage() When you really want to r...
  • Umbraco i produktionsmiljö
    När utvecklingen av en Umbraco-sajt är klar och hemsidan skall göras publik finns det en del saker att tänka på. Det är många moment och småsaker som kan vara lätt ass missa. Därför tänkte jag dela med mig av min nuvarande checklista.   ConnectionString - Glöm inte att ändra kopplingen till den databas som skall användas i produktionsmiljön. Stäng av UmbracoDebug genom att sätta "umbracoDebugMode" to false i web.config. Slipp "Uppgraderingsmeddelanden" i backend genom att sätta umbracoDisableVersionCheck till false eller umbracoVersionCheckPeriod till 0 även detta i web.config. Sätt "CustomErrors" till RemoteOnly för att inte exponera eventuella fel till användare/hackers. Sätt debug till false i kompileringssektionen. Dubbelkolla att mapprättigheterna är korrekta i produktionsmil...
  • Hosting
    Många av våra kunder vill slippa oroa sig över driften av hemsidan. De vill ha en hemsida utan driftstopp och en e-post som alltid fungerar. Därför tillhandahåller vi på Enkel Media hosting i toppklass.     Hostingpartner - Ipeer Vi har valt att anlita ett av Sveriges bästa och säkraste hostingföretag, Ipeer, som partner. Våra servrar står säkert i deras bergrum i Karlstad, har gigabit-uppkoppling emot svenska stamnätet och självklart batteribackup som säkerställer driften.   Vi kan hjälpa dig att hosta det mesta.... ASP.NET hosting Classic ASP hosting Umbraco CMS hosting PHP / My SQL hosting   Tveka inte att kontakta oss så berättar vi mer!
  • Umbraco 5 släpps i Januari
    Idag togs ett nytt steg i arbetet med nya den versionen av Umbraco, Umbraco V5. Man släppte en första så kallad RC (Release Candidate) vilket innebär att man är väldigt nära det slutgiltiga resultatet. Samtidigt skrev man också att man hoppas på att den nya versionen kommer att bli klar för släpp i slutet av januari 2012!       I denna Umbraco V5 RC1 har man bland annat implementerat members-delen, man har jobbat med DictionaryItems för att få till språkstödet, gjort förbättringar på DocumentTypes och även arbetat med DynamicModel för att göra det ännu enklare att skriva grymma macros. Jag tänker labba lagom mycket med detta under julen, eftersom jag drar hem till Motala och käkar mammas julmat så får jag nog återkomma i mellandagarna med en eventuell kommentar ;)   Du som är nyfiken kan r...
  • Umbraco User Group i Sverige
      Jag vill tipsa om den svenska användargruppen för Umbraco, UUGS (Umbraco User Group Sweden). Den startades för några månader sedan och kommer att hålla möten och seminarium med Umbraco som tema.   För att gå med, besök hemsidan uugs.se och glöm inte att joina facebook-gruppen!    Vi ses och hörs! :D
  • Dax att lägga XSLT på hyllan
    Böcker som gjort sitt...   För några dagar sedan skrev Niels Hartvig, grundaren av Umbraco, ett blogginlägg där han berättade att man nu kommer att släppa stödet för så kallade XSLT-makron i Umbraco.   XSLT är en teknik som används för att formatera och och omformatera XML-dokument. Eftersom hela Umbraco-sajten, i dagsläget, sparas som ett XML dokument i webbserverns cache så har XSLT varit en extremt snabb teknik för att lista och filtrera innehåll.   I Umbraco 5, som bygger på ASP.NET MVC och är en komplett ombyggnad av grunden till Umbraco, kommer man att släppa stödet för XSLT och istället satsa enbart på Razor-makron. Jag tycker att det är bra! Som nybörjare på Umbraco minns jag att det största "hindret" för mig var just XSLT. XSLT är extremt snabbt men på samma sätt som det är snabb...
  • Tömma Umbracos papperskorg
    Jag läste precis några av mina favoritbloggar om Umbraco och såg att några tipsade om hur man enkelt tömmer papperskorgen.   http://www.blogfodder.co.uk/2011/5/26/mass-delete-over-1k-nodes-from-recycle-bin-in-47   http://anthonydotnet.blogspot.com/2011/07/umbraco-empty-recycle-bin-hangs.html   Jag rekommenderar paketet "F.A.L.M Housekeeping" som dels kan radera papperskorgen men även loggar, rollbacks och mycket annat. http://our.umbraco.org/projects/backoffice-extensions/falm-housekeeping  
  • Classer i TinyMCE editorns dropdown
    Umbracos inbyggda texteditor "Richtext editor" som baseras på TinyMCE 3 har en dropdown som heter "Choose style".   Standardinställningen i TinyMCE är att alla klasser i de stillmallar som är bundna till editorn ska visas i dropdownen. Eftersom det oftast finns massa klasser i dessa stilmallar som man inte vill ska synas i listan har Umbraco en annan lösning. Så här fixar du en ny klass i listan "Choose style" Klicka dig till "Settings" och expandera "Stylesheets". Välj en av de stillmallar som visas i Umbracos Richtext editor. Högerklicka och välj "Create" för att skapa en ny under-klass. Döp den nya stilen till önskat namn, i rutan "styles" kan du sedan skriva CSS-markup. Denna markup syns inte automatiskt i editor, du måste också lägga till denna markup i din stillmall. I detta fell...
  • Stilmallar/CSS i Umbracos editor
    När man lägger till en ny stillmall (CSS) i Umbraco viasas den inte automatiskt när du redigerar innehåll i WYSIWYG-editorn TinyMCE. För att stillmallen ska "slå igenom" och synas i editorn måste man kryssa för stillmallen i developer-delen.   Gå till Developer Öppna upp "Data Types" och klicka på "Richtext editor". Kryssa i de stilmallar du vill ska synas i editorn under "Related stylesheets". Spara och nu är det bara att köra. TIPS: Skapa en speciallstillmall om du tex vill ha en annan bakgrund i editorn än på själva sidan. Denna stilmall använder endast i editorn, inte i själva HTML-koden.    
  • Strippa HTML-taggar via XSLT och C-Sharp
    När innehåll från en html-editor skall visas i listor eller i andra flöden kan det vara smidigt att "stippta" eller radera/filtrera bort HTML-taggar.   Alltså detta: <h1>Hello World</h1> <p>I´m here</p> Blir till: Hello World I´m here Hur gör man då? Faktum är att lösningen är väldigt enkel. Jag skapade en egen c-sharp funktion som kör ett regex och sedan beräknar längden på inlägget för att veta om det skall kortas ned eller inte: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp " "> ]> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxml="urn:schemas-microsoft-com:xslt" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:umbraco.library="urn:umbraco.library" xmlns...
  • Begränsa listade poster XSLT
    Ibland vill man tex att Umbraco ska visa de 10 senaste posterna i en nod eller kanske de 10 senaste av en speciell document type. Så här kan man använda XSLT för att begränsa antalet poster som lämnas från en for-each-loop. <xsl:for-each select="$currentPage/node"> <xsl:sort select="@sortOrder" order="descending"/> <!-- xsl-if kollar att positionen är under 11 dvs, högst 10. Om så inte är fallet skrivs inget ut. --> <xsl:if test="position() < 11"> <xsl:value-of select="@nodeName"/><br/> </xsl:if> </xsl:for-each>   Såhär fungerar det: <xsl:sort> Används för att sortera resultatet. Select-parametern anger efter vilket värde det skall sorteras och order-parametern anger om det skall vara fallande eller stig...
  • Tomma divar försvinner
    Upptäckte ett intressant problem med att använda divar i XSLT. Följande kod används ofta för att "cleara" divar när man kör dem flytande.   <div class="clear"></div>   I försökte använda den i ett macro, den låg "wrappad" i en annan div - såhär:   <div> <div class="clear"></div> </div>   När denna proccessades av XSLT transormatorn i Umbraco så blev det renderades inte den sista stängningen av div-taggen. Jag löste det genom att köra följande kod:   <div> <div class="clear">&nsbp;</div> </div>  
  • Parametrar i Macron
    Både XSLT macron och UserControls kan ha parametrar. Dessa kan skrivas i direkt i ko   <umbraco:macro alias="RenderProperties" paramvalue="Parameter direkt i kod" runat="server"/>   Eller så kan värdet hämtas ifrån andra delar av systemet. Tex ifrån den aktuella noden:   <umbraco:macro alias="RenderProperties" paramvalue ="[$pageTitle]" runat="server"/>   Det finns fyra andra källor för parameter-värden i Umbraco: Page value: [#propertyAlias] Page properties value: [$propertyAlias] Cookie value: [%cookieValueKey] Request collection  (tex QueryString): [@requestValueKey]   Flera värden, ibland kan man vilja ha flera värden och ta den första som faktiskt inte är noll då funkar detta:   <umbraco:macro paramvalue ="[#propertyAlias],[#propertyAlias2],my static string" />  
  • @SortOrder beter sig konstigt
    Jag har vid ett antal tillfällen förbryllats över hur XSLT rendering från Umbraco, trots att sen nod-lista är korrekt sorterad i backend, inte visar noderna i den ordning som den "borde". Jag har hela tiden använt mig av denna kod för att sortera mina noder i en XSLT-loop: <xsl:sort select="@sortOrder" order="ascending" /> Detta fram tills att jag läst en bloggpost som sa att man borde skicka med datatypen. <xsl:sort select="@sortOrder" order="ascending" data-type="number" /> Utan egenskapen för "data-type" så hanteras numren som strängar (läs: sorteras enligt dessa principer) men när man sätter datatypen till "number" så kommer sorteringen att bli korrekt.
  • XML-sitemap från Umbraco CMS
    Jag tänkte göra en liten serie med tips på bra paket till Umbraco! Idag sätter vi igång med paket för att generera en XML-sitemap. Denna sitemap är till största delen till för sökmotorerna och hjälper dem att hitta till innehåll på din hemsida.     För att visa sökmotorerna att du har en sitemap bör du lägga till följande rad i din robots.txt:   Sitemap: /seositemap.aspx   Självklart måste du ändra domän och sökväg till den som innehåll just din sitemap. Ett annat sätt att lägga till sin sitemap är att använda Googles verktyg för webbansvariga. Där kan du också kontrollera så att din XML-sitemap är korrekt och inte innehåller några fel. En sitemap är ett textdokument i XML-format, man kan enkelt skapa dem själv men ännu enklare är att göra det automatiskt. När det kommer till Umbraco så ...
  • Session på CodeGarden 2012
    Jag är väldigt stolt (och nästan lite nervös) över det faktum att jag ska hålla i en kort session på årets stora Umbracoevent, Code Garden 2012, som hålls 13-15 juni i Köpenhamn.     Jag kommer att demonstrera Enkel Medias paket Newsletter Studio som en del i en "Lighting session" som hålls dag två. För dig som aldrig hört om Newsletter Studio så är detta en "plugin" till Umbraco som gör det möjligt för redaktörer att skicka nyhetsbrev direkt via samma gränssnitt som man utför övriga uppgifter som är relaterade till hemsidan.   Du som ska till Köpenhamn på Code Garden borde ta kontakt med medlemmarna i UUGS som kommer att träffas under konferensen.
  • Direkt från CodeGarden 2012
      Idag är det dag två av den årliga Umbraco -konferansen CodeGarden här i Köpenhamn. Jag kom hit igår eftermiddag och missade den omtalade keynoten då Niels Hartvig berättade att core-teamet och framstående medlemmar i Umbracos "community" kommit fram till att man ska avbryta arbetet med Umbraco 5. Det innebär i korthet att man kommer släppa version 5.2 för att sedan avbryta utvecklingen och istället fokusera på att förbättra version 4.   Det råder blandade känslor om detta beslut, det var relativt oväntat men antagligen ett klokt beslut. Många utvecklare upplevde Umbraco 5 som väldigt komplext och svårarbetat, det var få som tog steget fullt ut och satsade på plattformen. Man säger att det "är enklare förbättra Umbraco 4 än att förenkla Umbraco 5".   Personligen har jag inte investerat o...
  • Summering av CodeGarden 2012
    Det var en intressant konferens som började väldigt oväntat med att vi fick veta att man kommer sluta arbeta med Umbraco version 5, istället är det fullt fokus på version 4. Den ska göras bättre, byggas smartare och göras ännu mer flexibel.     En applikation är byggd i flera lager, själva "kärnan" i Umbraco 5 var helt enkelt för komplicerad, medan kärnan i Umbraco 4 är betydligt lättare att arbeta med. Presentationslagret (dvs det som användaren ser) renderas i V4 med webforms, i V5 var det MVC som gällde. Många tror att MVC-satsningen dör i och med detta beslut, det tror inte jag. Det finns redan nu sätt att köra Umbraco 4 med MVC som presentationslager.   Om man ska sammanfatta konferensen så är jag extremt nöjd med att ha varit där. Trots det smått chockartade beskedet dag ett så var ...
  • Lansering för PNP Rederi
    Det var i mitten av april som jag fick kontakt med Patrik och Peter på PNP Rederi i Linköping. De behövde hjälp att skapa ett bokningssystem och en fräch hemsida för deras nystartade rederi. Bokningssystemet behövde lanseras redan i början/mitten av maj då deras resor på Göta Kanal skulle dra igång.Nu har vi också lanserat deras nya publika webbsida, resultatet blev följande sida som är byggd i Umbraco CMS.Layout: Daniel BerglundProjektledning/utveckling: Markus Johansson   Startsidan med puffar och aktuella kryssningar   Bokningssidan med responsivt gränssnitt som direkt summerar priser osv. Byggt med KnockoutJS   Karta till Berg med båtens färdväg utmarkerad
  • Razor i Umbraco, Tips och tricks
    Som jag bloggat om tidigare så kommer Umbraco att släpp stödet för XSLT i version 5, det blir istället fullt fokus på Razor!   På sistone har jag bland annat roat mig med att kolla in Doug Robars presentation från CodeGarden 2011 där han pratar om tips och tricks för Umbraco. Jag har också kollat igenom Razor-avsnitten på Umbraco TV – mest för att se om man kunde upptäcka något nytt. Jag antecknande lite smått och gott som jag tänkte bjuda på i detta (och kanske fler) inlägg.   Snabbvägen till Documents Types När du arbetar med ett razor macro och vill komma åt en eller flera child-elements som är av en viss Document Type så kan man använda följande syntax: @foreach(var node in Model.DocTypeNames) { } Det sades i någon presentation att man skulle lägga till ett “s” i slutet på n...
  • Umbraco och Client Dependency Framework
    Hej! I fortsättningen kommer jag skriva en och annan bloggpost på engelska för att göra informationen tillgänglig för dem som inte haft förmånen att lära sig vårt fina språk =D So this will be my first blog post in English, and I'm going to try to explain how to use the Client Dependency Framework with Umbraco CMS.   Client what? First of all, the Client Dependency framework helps you to include, combine and compress javascript and CSS-files used on the website. It is not Umbraco-specific but this post will focus on how to use it in Umbraco.   Why? There are a couple of good reason to use this framework.   Compressing and combining resource files reduces load time. UserControls och Razor macros can insert dependent files in the head-tag without any fancy pluming.   This pi...
  • Changes to MetaWeblog API - first contribution to the Umbraco core?
    Today I was playing with my our public website, enkelmedia.se, where I host this blog. It’s built with Umbraco, some custom document types and some event handlers that takes care of the sorting and stuff.       One of the features that I’ve been playing with is the MetaWeblog API which makes it possible to post content to Umbraco using almost any device. You can use Windows Live Writer (like I’m doing right now), an iPhone app or any other software that supports the MetaWeblog API.   Some stuff did not work What I found was that the implementation in Umbraco sometimes lacks in it’s handling of exceptions. I.e. clicking yes in this dialog made my blog root node disappear and I hade to consult this post by Alan Donnelly to solve it. I removed the last entries in cmsContentVersion and ...
  • It's official, my pull request was approved
      Today I was celebrating with champagne at my office (not really but it sounds good), I have finally contributed my first lines of code to the Umbraco Core! =D   I fixed a small issue with the MetaWeblog API which makes it possible to create content from programs like Windows live writer, Word, Blogger and so on. Issue: http://issues.umbraco.org/issue/U4-840Changeset: http://umbraco.codeplex.com/SourceControl/network/forks/enkelmedia/umbracoMetaApiUrl/changeset/9f87c0f1fb30 How did i do it? I was surprised by that fact that it was quite easy to contribute and I would like to describe how I did.1. I read though the articles about how to contribute found at our.umbraco.org/contribute 2. Created an account on codeplex.com 3. Installed TortoiseHg as my Mercurial client to work the U...
  • Great reading about Umbraco
    Last week i discovered a great resource for information about Umbraco. It's a christmas calendar that contains 24 blog posts about Umbraco and how to use it. I would like to present some of my favorite posts here.   Focus on the editors The editors are the people who will use the system the most. Thats why I love these posts about how to make Umbraco easier to use for our editors:   http://24days.in/umbraco/2012/remember-the-editors/ http://24days.in/umbraco/2012/superhero/   Developers goodies Another great topic is speed. I see far to many pages that are slow because the developers don´t implemented a good cache-strategy - I love the quote "not running code is the fastes way to improve you applications speed".   http://24days.in/umbraco/2012/optimise-for-speed/   Matt Brails...
  • First day with Umbraco Training in Copenhagen
    Today I started the first day at the level 1 course for Umbraco CMS. Most off the stuff that we talked about was very basic but I did find out some new tips and tricks that I would like to share with you.     Creating custom templates for scripting files When you create a new macro script you will get a list of pre defined templates that you can start from.   If you want to extend this list with your own custom templates it’s very easy. Just drop your template as a “.cshtml”-file inside of the folder “\umbraco\scripting\templates\cshtml\” and your set.Same thing goes for XSLT-templates but they are stored in “\umbraco\xslt\templates\”. If you macro template uses the new schema put it in “\umbraco\xslt\templates\Schema2\”   Highlight the current menu item When looping out menu ...
  • Yeaaaahhh I’m a Umbraco Certified Developer!!
    After spending a week learning about Umbraco in great Copenhagen I’m finally at the goal.     Thanks Per @perploughanse and Sebastiaan @cultiv for a great course!   And by the way if you are planning to attend a course, don’t go to “Billy Booze”-bar the night before. Bad idea.
  • Umbraco Packages – Install actions and user control
    When you create a package for Umbraco you can specify a user control that will be loaded during the installation. This user control will be shown to the users who installs your package into his/hers Umbraco installation.     You can also add something called “Package Actions”, these are basically small actions that are configured with XML. The package actions can do stuff like adding a new section, adding a tree, adding a dashboard, add xslt/rest extensions and much more. There is actually a community project that extends this even more with a lot of features – have a look at Package Action Contrib.     If you want to take it even further you can also create your own Package Actions that you can call from your package action XML. The implementation of a Package Action is quite si...
  • Presentation at Umbraco DK Festival
      Today I’m in Aarhus, Denmark for the yearly Umbraco Festival. A great day that Kraftvaerk had put together. I had the chance to show Newsletter Studio and also to tell the world about the new site newsletterstudio.org where we'll be collecting documentation, support and also selling licenses.   No its beer time =D
  • Why Linq2Umbraco can be a trap
    Some time ago I took over a Umbraco e-commerce website built with a custom web shop implementation. No fancy stuff, just categories, products, a basket and a checkout. The site owner complained that Umbraco was slow and that the loading times (sometime 5-10 seconds for one page) where unacceptable. Since I have been working with Umbraco for years I know that the system is superfast if used in the right way – so I defended Umbraco. Why was the website slow? When I was looking for the source of the “slowness” I learned something about Linq2Umbraco that I have never thought of as a problem.   Linq2Umbraco what? If you have never heard of Linq2Umbraco it’s a very handy piece of technology included in the Umbraco core. Aaron Powell wrote this and I think it was first included in Umbraco v4...
  • The new data layer in Umbraco 6
    I actually started working on this blog post when i was i Thailand over Christmas. I sat down at the beach cafe by our hotel and my view looked something like this:   Perfect condition for reading the new Umbraco 6 source code! =D New data layer using PetaPoco The new data layer in Umbraco 6 is using the superfast Mirco ORM PetaPoco which is aaaaalmost as fast as hand coding the SQL queries with the ADO.NET classes – any case it’s a lot faster then ie. EF or nHibernate.   I used PetePoco in one of my projects about a year ago and I’m very happy with how it works. The implementation in Umbraco is even better than the “standard” PetaPoco as it comes with some extra classes and helper that helps you make the SQL-queries even more database agnostic. Demo 1.0 Just to show you how simp...
  • Umbraco på svenska
    English readers: Sorry - This is between me and the " swedes"=D Det var ett tag sedan som jag skev ett inlägg på svenska men jag kände att det var dax. I början av förra veckan blev det officiellt att jag, från och med denna höst, kommer att leda de svenska Umbraco-utbildningarna. Det känns riktigt stort och väldigt roligt!   När jag hörde om Umbraco första gången i slutet av 2007 så tyckte jag först att det var ett krångligt och "svårgreppat" system. Kanske för att man var tvungen att ha koll på XSLT vilket jag inte hade då. Jag tror att det som lockade mig med detta CMS var att det lät mig ha full kontroll över den genererade HTML-koden. Det här var i en tid då jag precis hade fått lära mig att vi utvecklare inte skulle skriva HTML, CSS och JavaScript - allt skulle göras med ASP.NE...
  • Back from the Dutch Umbraco Festival 2013
    I’m back in Sweden after a great weekend in the Netherlands. Last Friday was all about Umbraco as the local user group DUUG (Dutch Umbraco User Group) was throwing an Umbraco Festival.   There were a lot of great sessions to watch, for example Niels Hartvig showed the latest about the Umbraco Concord (or Umbraco as a service) project which looks really really good! Also Jeavon Leopold (@crumpled_jeavon) and Jeroen Breuer (@j_breuer) hosted a nice framework session on there Umbraco Framework project: https://github.com/jbreuer/Hybrid-Framework-Best-Practices   Me and some other package vendors spent a lot of time in the vendors booths showing our packages for the visitors.   Here I am with the uCommerce-guy Søren Spelling Lund (@publicvoid_dk)   Just before the keynote that was ...
  • My first Umbraco-training is over
    Last week I hosted the first Umbraco Training Courses in Sweden. We now have more than 20 new certified Umbraco developers and some new companies have become Certified Partners.   Since it was my first course I can admit that I was a little bit nervous i the beginning of the week – I always get that feeling when stepping out of my “comfort zone” and doing something that I have never done before. So far I have only got good feedback from the attendees, some even called me “excellent” – thank you very much for that. =D   I’ve been asked if we are going to have a new round of training in Sweden. Of course! But we have not decided the exact dates yet. If you want to be noticed – sign up for our newsletter.     I also would like to share to share some photos from the course =D   ...
  • Umbraco 7 is finally out!
    After weeks of hard work from the guys in the core team Umbraco 7 was released today! The biggest news is the new look and feel of the backoffice.     If you have used Umbraco before you’ll probably find your way around as the over all concepts are the same. If you know how to build websites with previous versions of Umbraco you’ll feel comfortable with V7 as well. The new backoffice has been built with the editors in mind and I must say that we’re seeing a lot of improvements! I really love the why that the people behind the design is thinking.   I’ve looked at the beta and RC-versions of V7 and provided some feedback (ie. the drag and drop into the media dialog) and I really recommend you to download the latest version and play with it! Start building your new sites with it! But i...
  • New dates for Umbraco training in Sweden
      It’s been a little more than a month since Umbraco 7 was released and it feels like a great timing that we announced new dates for Umbraco training in Stockholm, Sweden. Just like last time the course will be in Swedish but the course material (slides and workbook) is in English.   Please read more about the training here: /vi-erbjuder/utbildning-umbraco.aspx (in Swedish)
  • Speaking at Swetugg
        February 2-3 next year the Swedish .NET User Group (SWENUG) will host a two day .NET-conference in Stockholm, Sweden.   Topics varies around the .NET-space and  I’ve got the honor to speak about Umbraco CMS. I’m planning to do a very short basic intro about Umbraco and then dive into how to extend the editor environment using AngularJS. My experience from showing Umbraco to new users is that the Angular-based property editors really impresses people. My hope is that this session will help to further grow the Umbraco community here in Sweden.   If you would like to join, tickets only costs 500 SEK, read more at swetugg.se  
  • Json syntax highlighting for Umbraco manifest files
    Since Visual Studio 2013 update 2 VS includes a nice Json editor that makes is easier to edit files containing json data. By default this editor is only used for .json-files and since the json-formated package.manifest-file used to create new plugins for Umbraco has the manifest-extention Visual Studio won’t add any syntax highlighting.   This is easy to fix.   1. Go to Tools / Options 2. I the left menu click on Text Editor and then File Extention. 3. Write “manifest” in the upper left text box, choose JSON Editor in the dropdown and click on Add. 4. Hi OK, open your manifest file and – ta da!     PS. If you like the screen recorded GIF (I do) check out this awesome project: https://screentogif.codeplex.com/
  • uHangout about "The Dashboard"
      I finished of last week by participating in Warren Buckley's lovely uHangout. This time I showed my latest package “The Dashboard” which also won this years package competition on CodeGarden 15. The package is a really simple dashboard that can be used to give both editors and developers a better first experience when the log on to their Umbraco backoffice. This is how it looks:     Please Download The Dashboard and give it a spin! If you would like to contribute (or just leverage the source code) the project is hosted on GitHub: https://github.com/enkelmedia/TheDashboard   Our conversation also evolved into an overall discussion about the editor experience in Umbraco CMS and how you as a developer can improve it.   If you want to watch the show it on http://uhangout.co.uk/ o...
  • 24 days in Umbraco
    Today my blog post for 24 days in Umbraco was released. The topic is “The code that changes my life”.     This is a great Christmas tradition where the community posts one article per day up until Christmas! Head over to the site and read about some really interesting topics for example:   Effective Umbraco Development in 2016 Strongly typed vs. Dynamic Content Access Recreating the listview in a custom section Umbraco REST API Using a CDN with Umbraco 1-1 Multilingual websites with Vorto and Nested Content    You’ll find all the articles here: http://24days.in/umbraco/2015/    
  • Debugging with Umbraco
    Today I wanted to take a moment and share some experience when it comes to debugging an Umbraco app. There is basicly three things I use the most   1. Process debugging with Visual Studio   2. The Umbraco Log   3. The magic query strings     1. Process debugging with Visual Studio I usually have all my macros and custom user controls inside a Visual Studio project and use IIS as the web server. To debug, just go to the Tools menu and click "Attach to process". In the list choose "w3wp.exe" and Visual Studio will debug the app. You can set breakpoints, step over code and so on. If there is an exception in the code this will be shown in Visual Studio as well.     2. The Umbraco Log The log table in the database is a goldmine when it comes to debugging! Almost all exceptions...
  • Samtrans valde Umbraco CMS
    Vår senaste kund Samtrans gav oss förtroendet att implementera Umbraco CMS i den design som levererats av Vektorgrafik Stockholm.     Företaget sysslar med persontransporter för personer med speciella behov och hemsidan är en uppfräschning av deras tidigare hemsida. Läs gärna med om projketet bland våra referenser.
  • Umbraco 7 Image Cropper
    Since version 7.1 of Umbraco was released the core now contains a great image cropper. Not only that. It also contains a great image processing library called ImageProcessor written by James South (@james_m_south).   The image cropper in Umbraco 7 is really a piece of art based on the CropUp-package from Umbraco-genius Niels Kühnel (@nielskuhnel). The big “news” with the cropper is something called a “focal point” that the editor can set. When this point is in place Umbraco is smart enough to figure out any crop based on this point. This means that you don’t have to force the editor to make 20 different crops, they can just set the focus point and the different crops will be generated. We’re going to explore this more in this post and I'll show you how to quickly set up the image cropper...
  • Umbraco 7: Use the rich text editor (TinyMCE) in a custom section
    One requirement of Enkel Medias Umbraco-package Newsletter Studio is to render and use the built in rich text editor from Umbraco (TinyMCE) in the custom Newsletter Studio-section.     TinyMCE in a custom Umbraco 7-section     Since the backoffice of Umbraco 7 is rebuilt using AngularJS all property editors are built using JavaScript and they also rely on the current AngularJS-scope to contain some information on how to render the control. So in order to render our rich text editor (rte) we need to provide this information.   There are some different ways to render the control, some are more “hacky” than others and I’m going to walk you through some options. Just to be clear –this is not a best practice guide for JavaScript so I’ve added the JavaScript controllers in script-ele...
  • Creating custom sections in Umbraco 7 - Part 1
    Yesterday we finally got the the first release of Umbraco 7 which introduce a new look and feel for the backoffice. Not only that – the technicall differences from V6 is huge.   Since I'm writing the popular newsletter-package Newsletter Studio for Umbraco I had look really deep into the source of Umbraco 7 to get things right.   I now want to show you how to add a custom section with a custom tree to the Umbraco backoffice – some of the things is similar to how it used to work (in V4-6) and some things are new.   Creating the application Every section in Umbraco is called an application, so sections and applications is basically the same thing.The first thing we’ll need to do is to create the application. In this examples I will not fiddle with the xml-files or the database – I’l...
  • Custom sections in Umbraco 7 – Part 2 the views
    In the last post we talked about how to add a new custom application (or section) and a new custom tree to your Umbraco 7 backoffice. Now I’ll show you how to add views so that your sections can do something meaningful.   You could use legacy views as well but since I was rewriting Newsletter Studio to work use AngularJS and work really nice with Umbraco 7 I took this approach.       The routing Since we added the PluginController(“CustomSection“)-attribute to our tree-class, Umbraco will route the cliend side requests to a folder in the app_plugins-folder. The logic is something like: /app_plugins/{applicationName}/{treeAlias}/{action}/itemId so in our case we’re looking at the url /#/CustomSection/CustomSectionTree/edit/dashboard and Umbraco will look for /app_plugins/customsect...
  • Utbildning - Umbraco
    Vi lär dig det som krävs för att du ska lyckas med Umbraco CMS, oavsett om du är nybörjare eller mer erfaren användare så har vi ny kunskap till dig och ditt företag.         1. Bli en Umbraco Certified Professional Lär dig grunderna och ser till att du är rustad för att jobba professionellt Umbraco CMS.   Umbraco Fundamentals En tvådagars bootkamp där vi täcker grunden för utvecklare och designers som vill jobba med Umbraco CMS på rätt sätt. Denna kurs gör dig till Certified Professional och ger 100 poäng certifieringspoäng. Läs mer om kursinnehållet på umbraco.com.       2. Ta steget till Umbraco Certified Expert Syftet med specialiseringskurserna är att gå på djupet i de viktigaste och vanligaste delarna av Umbraco. För att bli en Umbraco Cert...
  • Why Umbraco training matters
    I’m not sure if everyone who reads my blog knows that I’m the trainer for the official Swedish Umbraco courses. It was after CodeGarden 2013 that I was asked to help out with the education of developers and designers here in Sweden and I’ve had a lot of fun and made a lot of new friends during these events!   Over the years I’ve had a lot of really smart people attending my courses – but I’ve never had any student regretting that they attended. It does not matter which skill-level you have before you come – there is always something new to learn and to try. A lot of people think of different courses as a way to get certified  and yes – that’s really good and very important. At the same time I really want to point out the greatest value about the courses, that’s all the knowledge  that...