Mallar
När nya sidor skapas, antingen av en redaktör eller från ett program, skapas de baserat på Dynamix-mallar. En mall representeras av klassen Dynamix.Template. Ofta benämns även den presentationsfil som visar mallens innehåll, exempelvis en aspx-fil, som en mall.
De grundläggande uppgifterna för en mall är:
Ange hur informationen ska presenteras
Hantera vilka komponenter som ska finnas på sidor baserade på mallen
Hantera tillgång till nya innehåll och standardinnehåll på sidor
Definition och klasser
För att skapa en egen mall definieras en klass som ärvs från Dynamix.Template eller någon av dess subklasser enligt:
- C#
using System;
using System.Runtime.Serialization;
namespace MySite.Templates
{
[Serializable]
[Dynamix.Definitions.Template]
public class WideTemplate : Dynamix.ContentTemplate
{
// Serialization and Database constructors required by Dynamix
protected WideTemplate( SerializationInfo info, StreamingContext context ) :
base( info, context ) {}
protected WideTemplate( Dynamix.ObjectID id ) : base( id ) {}
public WideTemplate() : base()
{
// Add components...
}
public override string Url
{
get { return "/Templates/Wide.aspx"; }
}
public override string Name
{
get { return "Bred sida"; }
}
// Instance method for easy access from code
public static WideTemplate Instance
{
get { return (WideTemplate)Dynamix.Object.GetInstance( typeof( WideTemplate ) ); }
}
}
}
Attributet [Dynamix.Definitions.Template] definierar mallen för Dynamix. Den kan därmed installeras från Dynamix administrationsgränssnitt. Läs mer om definitionsattribut här.
Deklarera innehåll
I konstruktorn kan en eller flera komponenter läggas till. Dessa översätts sedan till sidkomponenter och kopieras ut till de sidor som bygger på mallen. Den överlägset vanligaste komponenten är FlowLayoutTemplateComponent som definierar en sektion med dynamiskt innehåll (text och innehållsobjekt).
Exempel:
- C#
...
FlowLayoutTemplateComponent main =
new FlowLayoutTemplateComponent( "Main", MySite.TextStyles.Normal );
Components.Add( main );
...
Det är också möjligt att styra vilka innehållstyper som redaktörerna får använda i de dynamiska sektionerna. Detta görs genom att lägga till objekt i sektionens egenskap AllowedContentTypes.
Exempel:
- C#
...
FlowLayoutTemplateComponent main =
new FlowLayoutTemplateComponent( "Main", MySite.TextStyles.Normal );
main.AllowedContentTypes.Add(
Dynamix.Content.ImageElements.ImageContentType.ContentType
);
Components.Add( main );
...
Det går också att skapa komponenter som bara innehåller ett enda innehållsobjekt, exempelvis en bild eller en nyhetslista.
Exempel:
- C#
...
ContentTemplateComponent image =
new ContentTemplateComponent(
"Image",
Dynamix.Content.ImageElements.ImageContentType.ContentType
);
...
Skapa nya mallar - steg för steg
Skapa ett nytt Web-formulär från Visual Studio
Ändra arvet i code-behind-filen från System.Web.UI.Page till Dynamix.UI.ContentPage
Definiera mallen enligt ovan. Implementera Url till att returnera sökvägen till formuläret.
Kompilera om och använd mallverktyget för att installera mallen.
Presentation av information
Den aspx-sida som presenterar mallen ska ärva från Dynamix.UI.ContentPage. Dynamiskt innehåll kan placeras på sidan genom deklararera (dra från toolboxen eller direkt i kod) en eller flera sektioner (Dynamix.Content.Controls.Section). Sektionernas namn anges till motsvarande de FlowLayoutTemplateComponents som deklarerats i mallen.
Läs mer