Har precis jobbat mycket med en Umbraco-lösning där
jag också använder delar av AjaxControlToolkit (ACT).
Detta kit skeppades för första gången av Microsoft
omkring fyra-fem år sedan i sin första version, version
1.0.
Det är denna version som finns inkluderad i Umbraco 4.0.5 som
jag använder i denna lösning.
Helt plötsligt, mitt under arbetet med mina UserControls och
XSLT-macron upptäckte jag att backendsystemet slutat fungera.
Trädvyerna expanderades inte på någon av
"tabbarna", inte under content, inte media, ja ingenstans.
Jag rullade tillbaka en backup som var några månader
gammal och upptäckte efter lite letande att jag refererat till
en nyare version av ATC i ett av mina projekt - dessa projekt har
post-build events som skriver över BIN-filerna i
Umbraco-lösningen.
Dvs - Den nyare versionen (4.0) av ACT hamnade i bin-mappen
på min skarpa lösning. Detta ställer alltså
till problem med Umbracos backend. Jag rullade tillbaka ACT till
version 1.0 vilket löste problemet.
Skrivet av Markus Johansson, 2010-08-03 0:40
Både XSLT macron och UserControls kan ha parametrar. Dessa
kan skrivas i direkt i kod
<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" />
Skrivet av Markus Johansson, 2010-06-24 14:32
Hittade en grym film som man kan visa för de personer som
kommer att jobba med innehållet på den sajt man skapar
med Umbraco.
http://umbraco.org/blog/2010/5/11/the-umbraco-tour-for-webmasters
Skrivet av Markus Johansson, 2010-05-26 8:28
Något som stört mig ett tag är att Firefox
tenderar att vara sjukt långsamt när man debuggar Visual
Studio-projekt via den inbygga webservern i VS.
En snabb googling gav mig denna tråd på grymma Stack
Overflow: http://stackoverflow.com/questions/24959/debugging-asp-net-with-firefox-and-visual-studio-net-very-slow-compared-to-ie
Slutsatsen är helt enkelt att man måste inaktivera
ipv6 i Firefox, enklaste sättet att göra det är
följande:
- Skriv about:config i Firefox adressbar, klicka ja
på säkerhetsmeddelandet.
- Skriv disableIPv6 i filterboxen högst upp och
tryck enter. Inställningen "network.dns.disableIPv6"
visas.
- Dubbelklicka på "false" så att värdet
ändras till true.
När dessa enkla steg är fixade går det tokfort
att debugga med Firefox, vilket är supernice eftersom man
då kan använda sig av bland annat Firebug.
Skrivet av Markus Johansson, 2010-02-25 11:33
En intressant och användbar del av Umbraco är "Base",
där används REST för att på ett enkelt
sätt göra det möjligt att kommunicera med Umbraco,
dels från Umbracosajten, men även från externa
sytstem.
Mer info om Rest (Representational State Transfer) finns bland
annat här:
http://sv.wikipedia.org/wiki/Representational_State_Transfer
Det är sjukt enkelt att få REST att fungera i
Umbraco.
- Skapa en klass med statiska methoder som skall exponeras.
- Lägg assemblyt i Umbracos bin-katalog
- Konfigurera Umbraco-Base i filen "restExtensions.config"
- Ös på
Exempel och mer info finns här:
http://umbraco.org/documentation/books/introduction-to-base/simple-base-samples
Skrivet av Markus Johansson, 2010-02-23 7:27
Ikväll är det dax! Umbracoträff i
Stockholm!
Följande personer kommer att tala:
- Peter Nyquist - Milagro
- Stephan Kvart, Big Finger
- Ted Nyberg - Ted & Gustaf
- Umbracos grundare Niels Hartvig
Vet i fan om man fortfarnade kan kan anmäla sig, men
gör ett försök!
http://our.umbraco.org/events/umbraco-5th-birthday-meetup-in-stockholm
Skrivet av Markus Johansson, 2010-02-16 9:59
Jobbar på en lösning som ska dela användare
mellan en vanlig ASP.NET WebApplication och en Umbraco-Instans.
Till detta skall även användarinfo kunna uppdateras med
Batchar som hämtar XML-data och uppdaterar bla adressuppgifter
och betalstatus.
Jag tittade närmare på två lämpliga
lösningar och jag tänkte gå igenom dem
här:
1. Användare i Umbraco
Spara användarna i Umbraco och jobba med dem via Umbracos
API. Det visade sig att det var krångligt att få
igång APIt utanför Umbraco-instansen och att allt arbete
med användare och dess egenskaper i Umbraco är
databasintensivt.
Ett möjligt alternativ vore att skriva direkt till
Umbraco-databasen via webbappen, men alternativet känns inte
aktuellt då Umbracos datastruktur är komlex och bör
behandlas via dess API.
2. Användare i ASP.NET-applikationen
Skapa en skräddarsydd databas där användare
sparas och sedan låta båda lösningarna hämta
sina användare/roller från denna plats. Det innebär
att jag måste skriva en ny MembershipProvider och
RoleProvider till Umbraco, även att användarhanteringen i
Umbracos backend inte fungerar fullt ut.
Lösningen
Trots arbetet med nya providers och det faktum att backend inte
fungerar till 100% så valde jag lösning 2. Att ha full
kontroll över användarens data och slippa avancerade
databasstrukturer vid batchjobben var mer värdefullt än
de få funktioner som inte fungerar i backend pga Custom
Providers.
Skrivet av Markus Johansson, 2010-02-16 10:07
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>
Skrivet av Markus Johansson, 2010-01-20 20:31
Den 16 februari 2010 firar Umbraco sitt 5-års jubileum.
Detta firas med meetups runt om i världen. Oslo, London,
Sydney, Köpenhamn och Seattle är några av
städerna där det hålls träffar.

Även Stockholm kommer hålla en träffa på
byrån Milagro. Extremt roligt är att grundaren Niels
Hartvig kommer att finnas på plats för att hålla i
en pratstund.
Du som är jobbar med, eller är intresserad av Umbraco -
Missa inte detta tillfälle!
Träffen hålls här:
Milagro - http://www.milagro.se
Ringvägen 100 hus D 7tr
Lär mer och anmäl dig här:
http://our.umbraco.org/events/umbraco-5th-birthday-meetup-in-stockholm
Skrivet av Markus Johansson, 2010-01-16 19:02
Jag blev lite frustrerad över att visa saker kräver
att man måste ta tag i musen. Därför satte jag mig
ned och surfade runt för att hitta några användbara
snabbkommanon eller genvägar i Visual Studio 2008.
Här är några av mina nya favoriter:
- Ctrl + K + S >>>> Visa "Code
Snippets" rutan.
- Ctrl + K + F >>>> Formaterar koden
på den markerade raden.
- Ctrl + K + D >>>> Formaterar koden i hela det
aktuella dokumentet.
- F12 >>>> "Go To Definition" - Hoppar direkt
till den kod som definerar en class, variabel eller liknande.
- Ctrl + E >>>> Visar "Exceptions fönstret" -
där man kan navigera bland undantag som kan kastas.
- F9 >>> Lägger till en "Breakpoint" i koden
på den rad du står för tillfället.
Fler finns att läsa här: http://www.dev102.com/2008/04/17/10-visual-studio-shortcuts-you-must-know/
Skrivet av Markus Johansson, 2009-11-13 15:04
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ändelsen "umbraco.BusinessLogic.Actions.ActionNew()" som
aktiveras när en ny nod har skapats. Läs mer om
händelser i på umbraco.org.
Följande kod gör att en ny nod automatiskt hamnar
högst upp i nodlistan istället för tvärtom:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO;
using umbraco;
using umbraco.interfaces;
using umbraco.BusinessLogic.Actions;
using umbraco.BusinessLogic.console;
using umbraco.cms.businesslogic.web;
namespace em.umb.sortnewnode
{
public class DefaultValueHandler :
umbraco.BusinessLogic.Actions.IActionHandler
{
string
umbraco.BusinessLogic.Actions.IActionHandler.HandlerName()
{
return "em.umb.sortnewnode";
}
umbraco.interfaces.IAction[]
umbraco.BusinessLogic.Actions.IActionHandler.ReturnActions()
{
return new umbraco.interfaces.IAction[] { new
umbraco.BusinessLogic.Actions.ActionNew() };
}
Boolean
umbraco.BusinessLogic.Actions.IActionHandler.Execute(umbraco.cms.businesslogic.web.Document
documentObject, umbraco.interfaces.IAction action)
{
// Getting the fist node.
Document.GetChildrenForTree(documentObject.Id);
// Creating
a generic list of Documents
List<Document> docs = new List<Document>();
foreach(IconI d in documentObject.Parent.Children) {
docs.Add(new Document(d.UniqueId));
}
//
Sorting the list by sortOrder using Linq.
var res = (from d in docs
orderby d.sortOrder ascending
select d);
//
Picking the first node
Document firstDoc = res.First();
//
Setting sortOrder on the new node, by taking the first nod minus
5.
documentObject.sortOrder = firstDoc.sortOrder - 5;
return true;
}
}
}
För dig som inte orkar dra igång Visual Studio och
skriva allt själv har jag gjort en härlig liten DLL som
du kan ladda ner
här. Packa bara upp dll-en och lägg den i
bin-katalogen.
Självklart är jag medveten om att man kanske vill kunna
ställa in detta på katalognivå eller kanske confa
det i web-config - har dock inte behövt denna funktionalitet.
Lovar att återkomma med eventuella uppdateringar.
Skrivet av Markus Johansson, 2009-06-30 10:19
I början av veckan tog jag mig tid att testa Umbraco
tillsammans med LINQ. För dig som inte vet vad LINQ är
så kan man enkelt säga att det är ett sätt att
i .NET ställa frågor till vilken typ av datasamlingar
som helst. Dvs - du använder samma syntax oavsett om du letar
data i en array, ett eget objekt eller i en databas.
Det känns också som att Umbracos API lämpas sig
bra för att jobba med LINQ.
Tänkte ösa upp några exempel inom kort, tills
dess läs gärna mer om LINQ!
Skrivet av Markus Johansson, 2009-06-24 8:02
Den 22-23 juni är det CodeGarden09 i Köpenhamn, ett
sjukt bra tillfälle för dig som är intresserada av
Umbraco-utveckling att skaffa ny kunskap. Listan med
föreläsare växer och växer:
Här är ett utdrag ifrån idag:
Umbraco-profiler
Niels Hartvig
Per Ploug Hansen
Andra utvecklare
Warren Buckley
Tim Geyssens
Thomas Höhler
Paul Sterling
Kasper Bumbech
Søren Spelling
Søren Sprogø
Mads Kristensen
Mark Wubben
Alex Norcliffe
Hela lista och mer info: http://codegarden09.com/
Skrivet av Markus Johansson, 2009-06-09 8:53
Efter att ha flyttat några av mina
Umbraco-installationer till en annan server fungerade allt fin
fint!
Detta tills jag försökte uppdatera innehållet.
Då hände inget, och följande felmeddelande kastades
i LogViewern:
A process serving application pool 'DefaultAppPool' suffered a
fatal communication error with the World Wide Web Publishing
Service. The process id was 'xxxxxx'. The data field contains the
error number.
Eftersom Umbraco-siten inte kastade något fel
så tog det några minuters funderande
innan jag kom fram till felet. Självklart var det något
så enkelt som läs/skrivrättigheterna. Efter
att ha ändrat dessa fungerade allt klockrent. Det är
lätt att missa detta när man flyttar sajter mellan
maskinerna.
I följande kataloger måste Umbraco kunna skriva:
- bin
- config
- css
- data
- media
- masters
- umbraco
- usercontrols
- xslt
Skrivet av Markus Johansson, 2010-02-04 11:09
För en tid sedan släpptes en ny minor-version av
Umbraco. Inga kritiska ändringar, med ändå
några coola småsaker som gör livet enklare
för dig som utvecklar i Umbraco.
Några av nyheterna:
- Automatiska referenser till XSLT Extenstions
namnområden (namespaces).
- XSLT Visualizer för att förhandsgranska dina
XSLT-mallar.
Kolla in mer av ändringarna och ladda ner releasen
här:
http://umbraco.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=18661
Skrivet av Markus Johansson, 2009-05-27 8:40
I Umbraco är det nästan olagligt enkelt att skapa
tumnaglar (thumbnails) på uppladdade bilder.
Gör såhär:
Gå till Developer och högerklicka
på Data Types, välj Create för att skapa en ny
datatyp.
- Välj valfritt namn, tex ImageUpload.
- I dropdownen Render Control, välj Upload Field
- Klicka på Spara för att uppdatera
inställningarna till Upload Field
- I texboxen för thumnail size, skriv önskade
storlekar. Använd ; för att skapa flera olika.
- Applicera din datatyp till en document type och börja
ladda upp.
För att visa bilderna visa tumnaglarna, lägg bara till
"_XXX.jpg" i slutet av filnamnet. Alltså, test.jpg blir till
test_480.jpg.
OBS! Om du ändrar tumnaglarna efter att material
redan laddats upp måste du ladda upp det igen för att de
nya bilderna ska skapas.
Skrivet av Markus Johansson, 2009-03-16 11:51
När utvecklingen, testning och felsökning av en site
är klar och sidan skall lanseras kan det vara ganska
skönt att stänga av möjligheten till att debugga
sidorna.
Debugging kan ju, som bekant göras på två
sätt:
StackTrace - Genom att lägga till
"?umbDebugShowTrace=true" efter urlen.
http://www.minsida/sida-om-en-grej.aspx?umbDebugShowTrace=true
Macron och fält - Genom att lägga
till "?umbDebug=true" efter urlen.
http://www.minsida/sida-om-en-grej.aspx?umbDebug=true
EDIT:
Från och med version 4.01 finns det en inställning i
web.config som stänger av och på denna funktionalitet.
Skriv bara följande:
<add key="umbracoDebugMode" value="false" />
TIDIGARE VERSIONER:
Även om sidan ligger skarpt på nätet så
fungerar dessa debug-funktioner, vilket kanske inte allid är
önskat. Lösningen finns på följande sida:
http://umbraco.org/documentation/books/hide-debugging-features-for-production-systems
Kort och gott lägger man till en node i urlrewrites.config
i /config-mappen:
<add name="nodebug"
virtualUrl="(.*).aspx.*umbDebug.*"
rewriteUrlParameter="IncludeQueryStringForRewrite"
redirect="Application"
destinationUrl="~$1.aspx"
ignoreCase="true" />
Skrivet av Markus Johansson, 2010-02-24 17:29
Om din site ska ha stöd för flera språk
finns olika sätt att bygga stukturen. En variant är
att ha olika domäner för varje språk.
- http://en.minsida.se
- http://sv.minsida.se
- http://dk.minsida.se
Ovanstående variant har tidigare varit sämre ur
sökmotorsynpunkt, men nu enligt många experter är
skillnaden mellan subdomän och katalogbaserat flerspråk
idag obefintlig. (Ser mer i denna artikel på
searchnewz.com). Katalogbaserat flerspråk:
- http://www.minsida.se/en/
- http://www.minsida.se/sv/
- http://www.minsida.se/dk/
Oavsett hur du sätter upp strukturen måste dina
användarkontroller (usercontrols) också ha
stöd för flerspråk. Då kommer Umbraco
Dictionary Items tillanvändning. Det används
för att spara ned korta fraser och ord som används ofta
tex: Spara/Save, Sök/Search, Avbryt/Cancel osv. (Finns
på Settings Section i Umbraco-backend).
Om man tex skapat en kontroll som innehåller 20 olika fraser
kan det vara ganska jobbigt att manuellt lägga till dem ibland
sina Dictionary Items. Därför har Tim Geyssens som som
driver Umbraco-bloggen http://www.nibble.be gjort ett enormt bra
script som automatiserar denna procedur.
Skrivet av Markus Johansson, 2009-03-04 11:36
Det är relativt enkelt att uppgradera Umbraco 4 Beta till
den stabila versionen som släpptes i början av januari
2009.

De nya ikonerna i Umbraco 4.
1. Ta backup
Säkerhetskopiera alla filer i lösningen samt ta en
backup på din databas innan du börjar.
2. Ladda ner filerna till Umbraco 4
Alla de senaste filerna finns på Umbracos sida på CodePlex. Ladda
ner Umbraco 4 Stable.
3. Ersätt filer
Radera dessa kataloger och kopiera in de nya ifrån
zip-filen du precis laddat ner från CodePlex.
- bin
- umbraco
- umbraco_client
OBS! Glöm inte att spara dina egna
dll-er och kopiera in dem i nya lösningen.
4. Uppdatera databasen
Mellan versionerna har några små
förändringar gjorts i databasen. Öppna
därför din databas och kör följande
kommando:
/* TRANSLATION RELATED SQL */
INSERT INTO umbracoApp (appAlias, sortOrder, appIcon, appName,
appInitWithTreeAlias) VALUES (N'translation', 5,
N'.traytranslation', N'Translation', NULL);
INSERT INTO umbracoAppTree (treeSilent, treeInitialize,
treeSortOrder, appAlias, treeAlias, treeTitle, treeIconClosed,
treeIconOpen, treeHandlerAssembly, treeHandlerType)
VALUES (0, 1, 1, 'translation','openTasks', 'Tasks assigned to
you', '.sprTreeFolder', '.sprTreeFolder_o', 'umbraco',
'loadOpenTasks');
INSERT INTO umbracoAppTree (treeSilent, treeInitialize,
treeSortOrder, appAlias, treeAlias, treeTitle, treeIconClosed,
treeIconOpen, treeHandlerAssembly, treeHandlerType)
VALUES (0, 1, 2, 'translation','yourTasks', 'Tasks created by you',
'.sprTreeFolder', '.sprTreeFolder_o', 'umbraco',
'loadYourTasks');
5. Byt versionen i web.config
I lösningens root-katalog finns en web.config-fil.
Öppna den och leta fram nyckeln som heter
"umbracoConfigurationStatus". Ersätt värdet från
tex v4.0.0.RC2 till v4.0.0.
Klart.
Skrivet av Markus Johansson, 2009-05-07 8:25
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 i mallen screen.

Skrivet av Markus Johansson, 2009-02-06 11:51
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.

Här kan du läsa om hur man kan lägga till en
stilmallsklass i din editors "Choose
List"-dropdown.
Skrivet av Markus Johansson, 2009-02-23 12:00
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 stigande
ordning (ascending, descending).
XSLT-funktionen Position() returnerar nummet
på den post som just nu bearbetars i loopen. Med
hjälp av <xsl:if> anger vi att endast de fem första
posterna ska visas, dvs poster som har ett värde under
10.
Tecknen < och > betyder samma sak som < och >,
dessa tecken är skyddade i XSLT och måste
därför ersättas med > och <&, dvs
greater than och lower than.
Skrivet av Markus Johansson, 2009-02-06 8:08
På startsidan för denna sida om Umbraco listas de senaste
blogginläggen, samt en kort "inledning".
Den här inledningen är egentligen den samma som
själva HTML-innehållet i bloggposten. För att det
ska se snyggt ut på startsidan har jag gjort så att
alla HTML-taggar tas bort.
Alltså detta:
<h1>Hello World</h1>
<p>I´m here</p>
Blir till:
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:em="urn:em"
exclude-result-prefixes="msxml umbraco.library">
<xsl:output method="xml" omit-xml-declaration="yes" />
<xsl:param name="currentPage"/>
<!-- ******* SCRIPTS STARTS HERE *********** -->
<msxsl:script language="CSharp"
implements-prefix="em">
<![CDATA[
// Removes all HTML-taggs from parameter-string
public string generatePreview(string strHTML) {
// Setting default string-length
int intDefaultLength = 200;
// Removing HTML-tags using regex
strHTML= Regex.Replace(strHTML, "<[^>]*>",
String.Empty);
if(strHTML.Length > intDefaultLength) {
return strHTML.Substring(0,intDefaultLength) +
"...";
}
else {
return strHTML;
}
}
]]>
</msxsl:script>
<!-- ******* SCRIPTS ENDSHERE *********** -->
<xsl:template match="/">
<!-- The fun starts here -->
<p><xsl:value-of
select="em:generatePreview($currentPage/data [@alias =
'HTMLContent'])" disable-output-escaping="yes"/></p>
</xsl:template>
</xsl:stylesheet>
Självklart kan man, om man vill skapa och kompilera
sin egen extension till XSLT, då kan man ha med denna
funktionalitet i sin extention. Detta är att föredra om
man ska använda funktionen på många olika
XSLT-mallar.
Skrivet av Markus Johansson, 2009-03-06 19:22
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"
Detta körs efter att projektet har kompilerats. Syftet
är att vi ska kopiera filerna från vår Web
Application till vår Umbraco installation.
Klicka på "Soulution>Properties>Build Events" och
lägg till följande kod under "Post Build Events" -
alltså det som sker när projektet är
kompilerat.
XCOPY "$(ProjectDir)bin\$(ProjectName)*.*"
"C:\Inetpub\soundforce - umbraco4\bin\" /y /S
XCOPY "$(ProjectDir)usercontrols\*.ascx" "C:\Inetpub\soundforce -
umbraco4\usercontrols\" /y /S
XCOPY "$(ProjectDir)xslt\*.xslt" "C:\Inetpub\umbraco4\xslt\" /y
/S
XCOPY "$(ProjectDir)css\*.css" "C:\Inetpub\umbraco4\css\" /y
/S
XCOPY "$(ProjectDir)scripts\*.js" "C:\Inetpub\umbraco4\scripts\" /y
/S
XCOPY "$(ProjectDir)\*.pbd" "C:\Inetpub\umbraco4\" /y /S
Parametern /y gör att filer skrivs över, och /S att
även underkataloger inkluderas.
4. För att debuga
- Öppna siten i din webbläsrae
- I Visual Studio väljer du Debug > Attach to Process och
väljer w3wp.exe från listan. (På IIS on XP/2000
heter proccesen asp_net.exe).
- Var noga med att *.pbd-filerna kopieras till
umbraco-installationen.
- Debugga för fulla muggar!
Skrivet av Markus Johansson, 2009-02-04 8:57
Vänner!
Idag är en stor dag, inte nog med att detta är mitt
första blogginlägg på den har nya bloggen om
utveckling i Umbraco, det är också
första arbetsdagen sedan nya versionen av Umbraco
släpptes.
Jag har följt utveckling och kört några av Umbraco
4 Betorna, nya versionen har lite annorlunda UI (User Interface) i
admin och TinyMCE 3 är också helt integrerat.
Här kan du läsa hur man uppgraderar
Umbraco 4 Beta till Umbraco 4 stable
Läs mer och ladda ner källkod eller kompilerade filer
på umbraco.org.
Skrivet av Markus Johansson, 2009-02-08 20:03