
çŸåšã©ã¹ãã¬ã¹ã§éå¬ãããŠããMIX11äŒè°ã§ãOrchard CMSã®æ°ããããŒãžã§ã³ãå°å ¥ãããŸãããMicrosoftã®ãªãŒãã³ãœãŒã¹CMSã«ã¯ãæå 端ãšããããMSFTãã¯ãããžãŒã®äžã§æãçŸå³ãããŠå¥åº·çãªãã®ããã¹ãŠå«ãŸããŠããŸãã äžèŠããåŸ-ç§ã¯CMSãããªã奜ãã§ïŒäž»ã«Umbracoãšæ¯èŒããŠããŸãïŒ-ãªãŒãã£ãŒãã®éçºãå®éã«ã©ã®ããã«é²ãã§ããããç¥ããããšããèŠæããããŸããã ããã§ããªãã®é¡ããç§ã®ãã®ãšäžèŽããå Žå-èªãã§ãã ããã
æºåãã
ãããã£ãŠãå¿«é©ã§äŸ¿å©ã§é¢çœããã®ããçŽ æŽãããã«ã¯ãã«ãæºåããŸã-ãããŠãInternet Explorer 9ã®ãµã€ãã«ã°ããºãè¿œå ã§ããããã«ããOrchard CMSã®ã¢ãžã¥ãŒã«ãäœæããŸã-ããªãã¡ãã¿ã¹ã¯ããŒã§ãµã€ããåºå®ïŒãã³ïŒããããã«ãžã£ã³ããªã¹ããè¿œå ããŸãïŒãžã£ã³ããªã¹ãïŒ
è·å Žã®æºåããå§ããŸãããã å¿ èŠãªããŒã«ïŒ
1ïŒOrchard CMS-orchard.codeplex.com
2ïŒInternet Explorer 9-www.beautyoftheweb.com
3ïŒWindows 7
4ïŒVisual Studio 2010
ãªãŒãã£ãŒãã¯ãã³ã³ãã€ã«ãããããã±ãŒãžã®åœ¢åŒãšãœãŒã¹ã³ãŒãã®åœ¢åŒã®äž¡æ¹ã§ååŸã§ããŸãã åŸè ããå§ãããŸã ããã¥ã¡ã³ãã¯éåžžã«æ§ããã§ãããå€ãã®å Žåãã³ãŒããèªãå¿ èŠããããŸãã Orchardã«ãã°ããåå ããã«ã¯ã XaocCPS [1]ããèšäºãèªãã ãã§ãããŒãã¹ãšããŠãå ¬åŒãµã€ã[2]ããéçºèšäºãèªãããšãã§ããŸãã ã€ã³ã¿ãŒããããšã¯ã¹ãããŒã©ãŒ9ã®ãã³çããµã€ãã®è©³çŽ°ã確èªããã«ã¯ãMSDN [3]ãŸãã¯åªããèšäº[4]ãåç §ããŠãã ããã
ã¢ãžã¥ãŒã«äœæ
ãã®ãããæåã«ã¢ãžã¥ãŒã«ãã©ã³ã¯ãäœæããŸãã Web Platform Installer [5]ãŸãã¯ãœãŒã¹ã³ãŒãããã®ã¢ã»ã³ããªãä»ããCMSã®è¿ éãã€äŸ¿å©ãªã€ã³ã¹ããŒã«åŸãcmd.exeãéãã<orchard_folder> \ binã«ç§»åããŠorchard.exeãå®è¡ããŸãã æ°ç§ã®åæåã®åŸãã·ã¹ãã ã¯èŠªåã«ç§ãã¡ãè¡åã«èªããŸãïŒããªãŒãã£ãŒããïŒã ã³ãã³ãã©ã€ã³ã®æ©èœã¯éåžžã«å¹ åºããã¢ãžã¥ãŒã«ãšæ©èœã®ç®¡çãã³ã³ãã³ã管çãã³ãŒãçæãšç§»è¡ãããã±ãŒãžç®¡çãªã©ãå«ãŸããŸãã å¯èœæ§ãè©äŸ¡ããã«ã¯ãæåŸ ç¶ã§ãã«ãã³ãã³ããå ¥åããorchard.exeã®ãã¯ãŒã«é©åããããšãã§ããŸãã ããããåã³ã®è°äºé²ã¯ãã§ã«é ããŠããŸãã骚ã®æããä»äºãå§ããæã§ãã ã¢ãžã¥ãŒã«ã®éçºãéå§ããã«ã¯ããã®æ§é ãäœæããŸãããããã£ãŠãããã³ããè¡ã«æ¬¡ã®ããã«å ¥åããŸãã
orchard> codegen module Orchard.IE9Pins /IncludeInSolution:true.
ããã«å¿ããŠãCMSã¯æ°ããã¢ãžã¥ãŒã«çšã«ç©ºã®ãããžã§ã¯ããäœæããCMSå šäœã®äžè¬çãªãœãªã¥ãŒã·ã§ã³ã§ããModulesãã©ã«ããŒïŒãã¡ããããœãŒã¹ã®ããŒãžã§ã³ã䜿çšããå ŽåïŒã«ãããå«ããŸãïŒãŸãã¯å«ããŸããïŒã äžè¬çã«ã空ã®Orcââhardã¢ãžã¥ãŒã«ã®ãããžã§ã¯ãã¯ãASP.NET MVCãããžã§ã¯ãïŒå®éã¯ïŒãæãããé£æ³ãããŸãã æçµçã«Visual Studioã«MVCã§äœæ¥ããŠããããšãçŽåŸãããããã«ãOrchard.IE9pins.csprojãã¡ã€ã«ã§ããã眮ãæããããšãã§ããŸã
{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
ã«ïŒ
{E53F8FEA-EAE0-44A6-8774-FFD645390401};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}.
ããã«ãããMVCã®æäœã«ã¹ã¿ãžãªã®å¿«é©ãªæ©èœã䜿çšã§ããããã«ãªããŸã-ãã¥ãŒã®è¿œå ããã¥ãŒãžç§»åãã³ã³ãããŒã©ãŒã®è¿œå ãªã©ã®ã³ãã³ã [6]ã
ã³ã³ãã³ãã¿ã€ã
ãããžã§ã¯ããäœæãããæºåå®äºã§ãããã³çããµã€ãã¢ãžã¥ãŒã«ã®ãšã³ãã£ãã£æ§é ãéçºããŸãã æ¢ã«ïŒã§ããã°ïŒXaocCPSã®èšäºããåŠãã ããã«ãOrchardã®äž»ãªæŠå¿µã¯ã³ã³ãã³ãã¿ã€ããšã³ã³ãã³ãã¢ã€ãã ã§ãã åã¢ã€ãã ã«ã¯è€æ°ã®ããŒããå«ãŸããå ŽåããããŸãã éšåã«é¢ããããŒã¿ãä¿åããã«ã¯ãã¬ã³ãŒãã䜿çšãããããããã¹ãŠãç°¡åã§ãã ãžã£ã³ããªã¹ãã®ããŒã¿æ§é ã決ããŸãããã ãã®ã¯ã€ãã¯ãžã£ã³ããªã¹ããšã¯äœã§ããïŒ å®éã«ã¯ãããã¯åå-ãªã³ã¯-ã¢ã€ã³ã³ãšãã圢åŒã®ãšã³ããªã®ã»ããã§ãã ãããã£ãŠãå¿ èŠãªã®ã¯ãæ å ±ãä¿åããããã®3ã€ã®ãã£ãŒã«ããã³ã³ãã³ãããŒããã³ã³ãã³ãã¿ã€ããå«ãDBã®ã¬ã³ãŒãã§ãã ã¬ã³ãŒãã¯ContenPartRecordããç¶æ¿ãããã¯ã©ã¹ã§ããã宣èšããããã¹ãŠã®ããããã£ã¯ä»®æ³ã§ãªããã°ãªããŸããã ãã®ããããããžã§ã¯ãã®Modelsãã©ã«ããŒã«JumpListItemRecord.csãã¡ã€ã«ãäœæããããã«æžã蟌ã¿çšã®ã¯ã©ã¹ãé 眮ããŸãã
public class JumpListItemRecord : ContentPartRecord
{
public virtual string Name { get ; set ; }
public virtual string Url { get ; set ; }
public virtual string IconUrl { get ; set ; }
}
* This source code was highlighted with Source Code Highlighter .
ã¬ã³ãŒãã«åºã¥ããŠãéšåã決å®ã§ããŸãã
public class JumpListItemPart : ContentPart<JumpListItemRecord>
{
[Required]
public string Name
{
get { return Record.Name; }
set { Record.Name = value ; }
}
[Required]
public string Url
{
get { return Record.Url; }
set { Record.Url = value ; }
}
public string IconUrl
{
get { return Record.IconUrl; }
set { Record.IconUrl = value ; }
}
}
* This source code was highlighted with Source Code Highlighter .
ããŒããèšèšããããã«ãããŒã¿æ€èšŒïŒå¿ é ãStringLengthãªã©ïŒãèšè¿°ããããã«å±æ§ã䜿çšã§ããŸãããã§ã«ãæ°ä»ãã®ããã«ãããŒãã®å€ã¯åã«åºç€ãšãªãã¬ã³ãŒãã®ããŒã¿ã§ãã ãããžã§ã¯ããåéããã¢ãžã¥ãŒã«ããšã©ãŒãªãã§ã³ã³ãã€ã«ãããããšã確èªããŸãã ãããŠãCMSã®å©ç¹ã«ç§»ããŸãããã
移è¡
orchard.exeã«æ»ããã³ãã³ããå®è¡ããŸãã
orchard> codegen datamigration Orchard.IE9pins
ã¯ãããã§ã«éšã ããåã³ãšåã³ãè¡šçŸããããšãã§ããŸã-移è¡ã®æŠå¿µãå°å ¥ããããªãŒãã£ãŒãã§å®è£ ãããŠããŸãã ãŸãããRoRã«ã¯é·ãé䜿çšãããŠããããšèšã£ãŠã¯ãããŸãããRoRã«ã¯äžè¬çã«å€ãã®ãã·ã¥ãã£ã¢ããããŸããã話é¡ãå£ããªãã§ãã ããã ãã®ãããã³ãã³ãã¯æ¬¡ã®å 容ã®Migration.csãã¡ã€ã«ãçæããŸãã
public class Migrations : DataMigrationImpl {
public int Create() {
// Creating table JumpListItemRecord
SchemaBuilder.CreateTable( "JumpListItemRecord" , table => table
.ContentPartRecord()
.Column( "Name" , DbType. String )
.Column( "Url" , DbType. String )
.Column( "IconUrl" , DbType. String )
);
return 1;
}
}
* This source code was highlighted with Source Code Highlighter .
ã芧ã®ãšããããã¹ãŠãéåžžã«ç°¡åã§ã-äžèšã§å®çŸ©ããã¬ã³ãŒãã®å ŽåãããŒã¿ããŒã¹ã«ããŒãã«ãäœæãããŸã-ããã§ç§»è¡ãå®äºããŸãã æã泚ææ·±ãã®ã¯ãé¢æ°ã1ãè¿ãããšã§ãããããã¯ãšã©ãŒã³ãŒãã§ã¯ãããŸããã ããã¯ããŒãžã§ã³çªå·ã§ãã 倢ã®ãããªå€¢ãå®çŸããŸã-Orchardã¯ã€ã³ã¹ããŒã«ãããŠããããŒãžã§ã³ãèªåçã«å€æããã¢ãžã¥ãŒã«ã®æŽæ°ã確èªããŠãæŽæ°ããããšãã§ããŸãã ãããã©ã®ããã«æ©èœããã-ããå°ã詳ããèŠãŠãããŸãããä»åºŠã¯ãžã£ã³ããªã¹ãã®ããŒã¿æ§é ã®æåŸã®éšåã§ããã³ã³ãã³ãã¿ã€ãã«ã€ããŠèããŸãã 移è¡ã®æ®µéïŒã¢ãžã¥ãŒã«ã®äœæãŸãã¯æŽæ°ïŒã§æéïŒããã³å ŽæïŒã決å®ããŸãã 1ãè¿ãåã«æ¬¡ã®è¡ãè¿œå ããŠãã¿ã€ããäœæããŠãã ããã
ContentDefinitionManager.AlterTypeDefinition( "JumpListItem" ,
cfg => cfg
.WithPart( "JumpListItemPart" )
);
* This source code was highlighted with Source Code Highlighter .
ãã¹ãŠãéåžžã«ç°¡åã«èªã¿åãããŸã-ããã¯ãJumpListItemPartããŒãã®ã¿ã§JumpListItemã³ã³ãã³ãã¿ã€ããäœæããã·ã¹ãã ãžã®ã³ãã³ãã§ãã
ãã³ãã©ãŒãšãã©ã€ããŒ
éšåã管çããããã®ã€ã³ã¿ãŒãã§ã€ã¹ã«é²ãåã«ã2ã€ã®å¿ èŠãªã¹ãã¢éšåãããã³ãããã®äžãã«è¿œå ããå¿ èŠããããŸã-ãã³ãã©ãŒãšãã©ã€ããŒã ããŒããçºè¡ãåé€ãããŒãžã§ã³ç®¡çãªã©ã®ã³ã³ãã³ãã€ãã³ãã«å¿çããå¿ èŠã«å¿ããŠäœããã®ã¢ã¯ã·ã§ã³ãå®è¡ã§ããããã«ããã³ãã©ãŒãå¿ èŠã§ãã ãã³ãã©ãŒã¯ïŒã€ããªãã®ãŒçã«ïŒã¢ãã«ãæäœãã圹å²ãæããããã¬ãŒã³ããŒã·ã§ã³ã«ã¯é¢ä¿ããŸããã ãããŸã§ã®éãã¢ãã«ãæäœããããšã§ãããŒããšã¬ã³ãŒãããªã³ã¯ããããšãå¿ èŠã«ãªããŸãã ãããè¡ãã«ã¯ããã³ãã©ãŒã®ã³ã³ã¹ãã©ã¯ã¿ãŒã§ãIRepository JumpListItemRecordãã¹ãã¬ãŒãžãšããŠäœ¿çšãããããšãã·ã¹ãã ã«äŒããŸãïŒããã«ãããã·ã¹ãã ã¯IoCã³ã³ãããŒã«ããããŒã¿ããŒã¹ã«ãã€ã³ããããŸãããããã«ã¯ä»å ¥ã¯äžèŠã§ãïŒã
public class JumpListPartHandler : ContentHandler
{
public JumpListPartHandler(IRepository<JumpListItemRecord> repo)
{
Filters.Add(StorageFilter.For(repo));
}
}
* This source code was highlighted with Source Code Highlighter .
ãã³ãã©ãŒãšã¯å¯Ÿç §çã«ããã©ã€ããŒã¯ã¢ãã«ã§ã¯ãªãããã¥ãŒãã€ãŸã ããŒãã®ã¬ã³ããªã³ã°ãå¶åŸ¡ããŸãã ContentPartDriverããç¶æ¿ããã¯ã©ã¹ã§ã¯ãããã€ãã®é¢æ°ãåå®çŸ©ã§ããŸãããã®ãã¡ã®2ã€ã«èå³ããããŸã-Editoré¢æ°ã®ãªãŒããŒããŒãïŒ1ã€ã¯GETãªã¯ãšã¹ãã®åŠçãã€ãŸãåºåãPOSTãå ¥åã®åŠçïŒ ïŒ å®éãååããæãããªããã«ãã¡ãœããã¯ããŒããç·šéã¢ãŒãã§ã¬ã³ããªã³ã°ããã³åŠçããããã®ã«ãŒã«ã決å®ããŸãã
public class JumpListItemPartDriver : ContentPartDriver<Models.JumpListItemPart>
{
protected override DriverResult Editor(Models.JumpListItemPart part, dynamic shapeHelper)
{
return ContentShape( "Parts_JumpListItem_Edit" ,
() => shapeHelper.EditorTemplate(
TemplateName: "Parts/JumpListItem" ,
Model: part,
Prefix: Prefix));
}
protected override DriverResult Editor(Models.JumpListItemPart part, ContentManagement.IUpdateModel updater, dynamic shapeHelper)
{
updater.TryUpdateModel(part, Prefix, null , null );
return Editor(part, shapeHelper);
}
}
* This source code was highlighted with Source Code Highlighter .
ããªãã®æåã®åå¿-ãOMGãããã¯äœã§ããïŒã å®éããã¹ãŠãããã»ã©æãããã§ã¯ãããŸããã ããã§éèŠãªæŠå¿µã¯ContentShapeã§ãã
圢
ContentShapeã¯ãããŒãã®ããŒã¿ãšããŠãŒã¶ãŒãžã®ãã¬ãŒã³ããŒã·ã§ã³ïŒè¡šç€ºãžã®äž»èŠãªäžéæ段ïŒãšã®éã®ãªã³ã¯ã§ãã 詳现ãæ確ã«ããããã«ã XaocCPSã®èšäºãåç §ããããšããå§ãããŸãã ãããã£ãŠãå®éã«ã¯ãããŒãã¯ShapeãæäŸãããã¬ãŒã³ããŒã·ã§ã³å±€ãšäº€æãããŸãã ãã®å ŽåãPartsãã©ã«ããŒã®JumpListItem.cshtmlããã³ãã¬ãŒããšããŠäœ¿çšããŠãšãã£ã¿ãŒã®åœ¢ç¶ãäœæãïŒTemplateNameïŒâ Parts / JumpListItemâïŒãã¢ãã«ãšããŠJumpListItemPartããŒãã転éããŸãã æŽæ°ã«ãããããã«ç°¡åã«ãªããŸããããã©ã¡ãŒã¿ãŒãšããŠæž¡ãããIUpdateModelãªããžã§ã¯ãã®ã¿ã䜿çšããããŒãã®æŽæ°æ¹æ³ãåŠçããŸãã ããã§ãã·ã¹ãã ã¯ãããŒããç·šéãããšãã«è¡šç€ºãããã³ãã¬ãŒããšããã®ïŒããŒãïŒã³ã³ãã³ããæŽæ°ããæ¹æ³ãèªèããŸãã JumpListItem.cshtmlãã³ãã¬ãŒãèªäœã¯ãViews / EditorTemplates / Parts /ãã©ã«ããŒã«é 眮ããå¿ èŠããããŸãã ãã³ãã¬ãŒãã®å 容ã¯éåžžã«ç°¡åã§ãã
@model Orchard.IE9pins.Models.JumpListItemPart
< fieldset >
@Html.LabelFor(m = > m.Name)
@Html.TextBoxFor(m = > m.Name, T("Description"))
@Html.LabelFor(m = > m.Url)
@Html.TextBoxFor(m = > m.Url, T("Url"))
@Html.LabelFor(m = > m.IconUrl)
@Html.TextBoxFor(m = > m.IconUrl, T("IconUrl"))
</ fieldset >
* This source code was highlighted with Source Code Highlighter .
ã芧ã®ãšãããããã¯JumpListItemPartåä»ãã¢ãã«ã䜿çšããéåžžã®RazorããŒã¯ã¢ãããã¡ã€ã«ã§ãã ãŸããããã¯ãã¹ãŠããŸããäœãèµ·ãã£ãã®ããèŠãããšæãã§ãããïŒ ã»ãã®å°ãã®å¿è-ãã©ãŒã ããšã«ã衚瀺ããæ¹æ³ãšå Žæã決å®ããå¿ èŠããããŸãã ããã«ã¯ããããžã§ã¯ãã®ã«ãŒãã«ããPlacement.infoãã¡ã€ã«ã䜿çšãããŸãã ç§ãã¡ã«ãšã£ãŠãããã¯éåžžã«ç°¡åã§ãïŒ
< Placement >
< Place Parts_JumpListItem_Edit ="Content:1" />
</ Placement >
* This source code was highlighted with Source Code Highlighter .
ããŒãã®ãã©ã€ããŒã¡ãœããã§å®çŸ©ããããã©ãŒã ïŒO_oïŒã«ã€ããŠã¯ãã³ã³ãã³ãã»ã¯ã·ã§ã³ã®äœçœ®1ã«é 眮ãããããšã決å®ããŸãïŒã¡ãªã¿ã«ãããã®ã·ãªã¢ã«çªå·ã¯æŽæ°ã§ã¯ãªããããæ¢åã®ããŒãã®éã«ããŒããã¢ã¿ããã§ããŸãïŒã ãã®å Žåãã³ã³ãã³ãã¿ã€ãã«ãŸã 1ã€ã®ããŒãããå«ãŸããŠããªãå Žåãã©ãã«ã§ãåºåã§ããŸãã
ã¡ã€ã³ã¡ãã¥ãŒ
ãã¹ãŠãããŒããäœæãããã³ã³ãã³ãã®ã¿ã€ããäœæãããŸã-ãã§ã«ãæ声ãã®ããã§ããïŒ ãŸã ãæåŸã®åŽåºã ããã¯éçŸå®çã«é·ãè€éãªããã»ã¹ã®ããã«æããŸããããããŸã§ã®ãšããã»ãšãã©ã®æäœã¯Studioã®ãããžã§ã¯ããã³ãã¬ãŒããšããŠãå®è¡ã§ããŸããããã¯åºæ¬çã«ãã¹ãŠæ¥åžžçãªãã®ã§ãããå®å šã«èªååãããŠããŸã- ãã¹ãŠãå±ãŸãã¯çµãããŸãããã¹ã¿ãžãªã«æ»ããæåŸã®æè»ããããŸãã ãã¡ããã管çããã«ã®ã¡ã€ã³ã¡ãã¥ãŒã«ã¢ãžã¥ãŒã«ãç¬ç«ããé ç®ãšããŠè¡šç€ºããCMSå ã®éåžžã®ã³ã³ãã³ãã®ããã«ç·šéããããã«ããŸãã ã¡ã€ã³ã¡ãã¥ãŒããäœãç¶æ¿ããããã·ã¹ãã ã«äŒããã«ã¯ãINavigationProviderã€ã³ã¿ãŒãã§ã€ã¹ã®å®è£ ãè¿œå ããã ãã§ãã æãéèŠãªã¡ãœããã¯GetNavigationã§ããå®éã«ã¯ãã¡ãã¥ãŒå ã®ã¢ã€ãã ã®äœæã«ã€ããŠèª¬æããŸãã ãã©ã¡ãŒã¿ãŒã®1ã€ã¯é¢æ°ïŒgod blessé¢æ°åããã°ã©ãã³ã°ïŒïŒã§ããã¡ãã¥ãŒé ç®ã®ãµãã¡ãã¥ãŒãæ§ç¯ããBuildMenu-åºç¯å²ã«ãããèšç»-ãã³çããµã€ãã®å€èŠ³ããããŠå®éã«ã¯ãžã£ã³ããªã¹ãèŠçŽ ã ãµãã¡ãã¥ãŒã®ãã³ã-item.Actionã®ãã©ãŒãäœæãããšãã«ã埮åŠãªç¹ã«ãã§ã«æ°ã¥ãããšæããŸããMVCã®Actionã¡ãœããã«äŒŒãŠããŸã-ç¹å®ã®ã³ã³ãããŒã©ãŒã®ã¢ã¯ã·ã§ã³ãžã®ãªã³ã¯ãçæããŸãã ã§ããããå®éã«ã¯ããã§ã-URLãããã°ãã«ãŒãã£ã³ã°ã«ãŒããšã³ã³ãããŒã©ãŒãã·ã¹ãã ã«æäŸããããšãæå³ããŸãã
ã«ãŒã
ã«ãŒãã¯ãIrouteProviderã¯ã©ã¹ãå®è£ ããããšã§è¿œå ãããŸã-Route.csã§ç¢ºèªã§ããŸãã ã«ãŒãã¯æ¬¡ã®ããã«èª¬æãããŸãã
Route = new Route(
"Admin/IE9JumpList/Create" ,
new RouteValueDictionary {
{ "area" , "Orchard.IE9pins" },
{ "controller" , "JumpLists" },
{ "action" , "Create" }
},
new RouteValueDictionary(),
new RouteValueDictionary {
{ "area" , "Orchard.IE9pins" }
},
new MvcRouteHandler())
}
* This source code was highlighted with Source Code Highlighter .
説æãªãã§ãã¹ãŠãèªãã®ã¯ããªãç°¡åã§ããã¢ãžã¥ãŒã«ã®ãã¹ãŠã®URLã®äžçš®ã®åå空éã§ãããã©ã¡ãŒã¿ãŒarea = Orchard.IE9pinsãã©ãã§ã䜿çšããŠããããšã«æ³šæããŠãã ããã JumpListsã¯ã³ã³ãããŒã©ãŒãšããŠèšå®ãããŠããŸã-ãããå®è£ ããæãæ¥ãŸããã
ã³ã³ãããŒã©ãŒ
MVCã«æ¯ã¹ãŠæ°ãããã®ã¯ãããŸãããéåžžã®ã³ã³ãããŒã©ãŒãšãActionResultãè¿ãã¢ã¯ã·ã§ã³ã¡ãœããã®ã»ããã§ãã ç¹çãã¹ãç¹ã¯ãCMSã³ã³ããŒãã³ããšã®éä¿¡ãDependecy Injectionæ¹åŒã§ã³ã³ãããŒã©ãŒã«è»¢éãããæ¹æ³ã®ã¿ã§ããå¿ èŠãªã€ã³ã¿ãŒãã§ã€ã¹ããã¶ã€ããŒãã©ã¡ãŒã¿ãŒãšããŠæå®ãããšãã³ã³ãããŒã©ãŒãã€ã³ã¹ã¿ã³ã¹åããããšãç»é²ãããCMSã³ã³ããŒãã³ãããã©ã¡ãŒã¿ãŒã«å°çããŸãã ã·ã³ãã«ã§çŸããã ãã¬ãŒã³ããŒã·ã§ã³ã¬ã€ã€ãŒã§æå®ããã転éæ¹æ³ã«æ»ãã次ã®è¡ã«ã泚æãæããŸãã
dynamic model = ContentManager.BuildEditor(item);
* This source code was highlighted with Source Code Highlighter .
ããã¯ããã¥ãŒã«æž¡ãããã¢ãã«ã説æããŸããBuildEditorã¡ãœããã¯ãShapeã³ã³ãã³ãã®åéšåã«å¯ŸããŠãã©ã€ããŒã®Editorã¡ãœããã䜿çšããŠåœ¢æãããŸãããããã¢ãã«ã«ãªããŸãã ãã¥ãŒã«åœ¢ç¶ã衚瀺ããã«ã¯ãDisplayã¡ãœããã§ååã§ãã
@{ Layout.Title = T("Create jump list item").ToString(); }
@using (Html.BeginFormAntiForgeryPost()) {
@Html.ValidationSummary()
@Display(Model)
}
* This source code was highlighted with Source Code Highlighter .
å®éã®ã³ã³ãã³ããäœæãããšãã次ã®ãããªãããŸããªè¡ã芳å¯ã§ããŸãã
var item = Services.ContentManager.New<Models.JumpListItemPart>( "JumpListItem" );
* This source code was highlighted with Source Code Highlighter .
å®éãããã¯ãJumpListItemã³ã³ãã³ãã¿ã€ãã®æ°ããã¢ã€ãã ãäœæããJumpListItemPartã¿ã€ãã®ããŒããèŠã€ããŠãçµæãšããŠè¿ãããšèªãå¿ èŠããããŸãã ãããã£ãŠãäœæãããã³ã³ãã³ãã§ã¯ãäœæããéšåã®ã¿ãç·šéã§ããŸãïŒæ£çŽãªãšãããä»ã«ã¯ãããŸããïŒã
æåŸã®ãã«ããæåãã管çããã«ã«ç§»åããŸãã ããã§ã¯ãã¢ãžã¥ãŒã«/æ©èœãæ¢ããŠãããæ¯ãåãããŠIE9Pinsã«äŒŒããã®ãæ¢ããŠããŸãã ãããã»ãïŒ
æ©èœãæå¹åïŒæå¹åïŒãã...ãããã¯ã-ã¡ã€ã³ã¡ãã¥ãŒã«Internet Explorer 9ãã³ãã衚瀺ãããŸãïŒ
ãŸããJumpListã®ãªã¹ããç·šéããããã®éåžžã«çŽ æŽãããã€ã³ã¿ãŒãã§ãŒã¹ããããŸãã ããŠãä»ç§ãã¡ã¯ããããµã€ãã«æã£ãŠããå¿ èŠããããŸã...ããããããã¯ãã§ã«æ¬¡ã®ã·ãªãŒãºã«ãããŸãã ãã®ãããããã¹ããå€ãããããšãå€æããŸããïŒãã¹ãŠãæ確ã«ããããšãããšãçè«çã«ã¯2åã®1ã«æžããããšãã§ããŸãïŒã
ãŸãšã
èŠçŽãããšïŒ
1ïŒç®¡çããã«ã«æ°ããã¢ã€ãã ãè¿œå ãããã¯ã€ãã¯ãžã£ã³ããªã¹ãã«å¿ èŠãªã¢ã€ãã ã®ãªã¹ãã管çãããŸãã
2ïŒå¿ èŠãªãã¹ãŠã®ããŒã¿æ§é ãšã³ã³ãã³ãã¿ã€ããèªåçã«çæãããŸãã
å°ãæéãããããŸããããã³ãŒããèŠãã ãã§ãªããCMSå ã§ã©ã®ããã«æ©èœããããç解ããããã«ããã¹ãŠãã§ããã ã詳现ã«èª¬æããããšããŸããã 次ã®éšåïŒããå°ãããªããŸãïŒã§ã¯ãã¬ã€ã¢ãŠãããŠã£ãžã§ããã®åäœããµã€ãããŒãžã§ã®ã³ã³ãã³ãã®è¡šç€ºæ¹æ³ã移è¡ã®å®éã®åäœã«ã€ããŠèª¬æããŸãã
å®å šãªãœãŒã¹ã³ãŒãïŒãã¡ãã2çªç®ã®èšäºã®ã³ãŒããå«ãïŒã¯ã BitBucketã«ãããŸãã ããã¯ããŸããããã§ã¯ãããŸãããããã¯ç§ã®æããšæ€çŽ¢ã®å€ããåæ ããŠããŸãããããŠç§ã¯ãŸã ãªãã¡ã¯ã¿ãªã³ã°ã«æ°ãåãããŠããŸãã-ãªããªã å匷ããããã«ãã¹ãŠãããŸããã
PSãããã¯ãªããŠè€éãªã®ãïŒããšçµè«ä»ããå¿ èŠã¯ãããŸããããããžã§ã¯ãæ§é ã®äœæã¯åçŽã«ååã«èªååãããŠããŸããããå°æ¥ã¯ããããã¹ãŠãè¿ éãã€ç°¡åã«è¡ããããšãé¡ã£ãŠããŸãããå éšãç¥ãããšã¯äŸç¶ãšããŠæçšã§ã
åç §è³æ
[1] Articles Architecture Orchard CMSã ã»ãã¥ãªãã£ãšéçºã®æŠå¿µ ã Orchard CMSã¢ãŒããã¯ãã£ã ã¬ã€ã¢ãŠãã®æŠå¿µ ã ãªãŒãã£ãŒãCMSã¢ãŒããã¯ãã£ã åºæ¬çãªæŠå¿µ
[2] å ¬åŒãŠã§ããµã€ãã®ææš¹åã»ã¯ã·ã§ã³ã®æ¡åŒµ
[3] MSDNã®ãã³çããµã€ã
[4] kichikã® èšäºã® ãã³çããµã€ã
[5] Orchard CMSã䜿çšããŠãŒããããµã€ããäœæããæ¹æ³ã ããŒã1.ãªãŒãã£ãŒãCMSã®æŠèŠ
[6] MVC 3ãè¿œå | 衚瀺...âãªãŒãã£ãŒãã³ãŒãçæã¢ãžã¥ãŒã«ãããžã§ã¯ããž