最近在看sitecore 最佳實踐項目 sitecore Habitat礁叔。爭取每周都能分享一些學(xué)習(xí)心得彤断。
分享的原因是看了一篇blog A Tale of Two Seas | Prakash Iyer。最近但凡看到跟以色列相關(guān)的都很吸引我局服,也很容易打動我。
Habitat首頁的輪播圖大概長下面這個樣子。
輪播圖內(nèi)容實例:/sitecore/content/Habitat/Global/Media/Carousel
輪播圖Carousel實例是由媒體圖片Image實例或媒體視頻Video實例組成的
在project級別創(chuàng)建/sitecore/templates/Project/Common/Content Types/Media/Carousel 模板:
創(chuàng)建輪播圖模板:
這個輪播圖模板繼承 _HasMediaSelector
在Feature中定義的_HasMediaSelector模板
_HasMediaSelector 中定義了一個Multilist
multilist的datasource(ds) query:/sitecore/content//Global/Media//[@@templateid='{F0369E1A-9030-4A05-A09C-EF09B664ED27}' or @@templateid='{F1C095E2-B3E0-46D0-B838-02A9E8B880D9}']
templateid符合查詢條件的所有資源
Image /sitecore/templates/Project/Common/Content Types/Media/Image
Video /sitecore/templates/Project/Common/Content Types/Media/Video
創(chuàng)建輪播圖模板:
輪播圖模板繼承了 _HasMediaImage 模板
_HasMediaImage 繼承了 _HasMedia 模板
/sitecore/templates/Project/Common/Content Types/Media/Image
Media 中封裝的圖片和一些基本的描述信息
Title for the media:
Description for the media:
High-resolution image:
Thumbnail image:
創(chuàng)建輪播視頻模板:
繼承了 _HasMediaVidow
_HasMediaVidow 繼承了 _HasMedia 模板
/sitecore/templates/Project/Common/Content Types/Media/Video
同理video中也封裝了video的描述屬性
Link to video:
Title for the media:
Description for the media:
Thumbnail image:
1暴氏,把基本信息中需要的圖片上傳到 Media庫中
/Habitat/Images/Wide/Habitat-004-wide
/Habitat/Images/Wide/Habitat-007-wide ...
2,創(chuàng)建Media/目錄下的Image文件绣张,關(guān)聯(lián)上傳的圖片
3答渔,創(chuàng)建Media/目錄下的Carousel對象 ,關(guān)聯(lián)創(chuàng)建的Image對象
內(nèi)容準(zhǔn)備好侥涵,接下來準(zhǔn)備presentation
添加component關(guān)聯(lián)datasource
組件名稱“Page Header Media Carousel”路徑 Renderings/Feature/Media/Page Header Media Carousel
View Rendering cs文件路徑:/Views/MediaFeature/PageHeaderCarousel.cshtml
收工沼撕。
怎么樣,是不是感覺復(fù)雜到不能呼吸芜飘,難怪當(dāng)初sitecore培訓(xùn)的老師說务豺,安裝最佳實踐項目就沒法做了。但我們能從中學(xué)習(xí)到很多好模板內(nèi)容組織的好方式和方法嗦明。
思考題:
組件需要的js css放哪了笼沥?最近在學(xué)sitecore的最佳實踐項目 Habitat,隨手把學(xué)到的分享出來娶牌。原因是說來話長奔浅,晚上寫個外傳。
預(yù)告:
接下來會分析下sitecore頁面拆分學(xué)到的一些知識诗良,比如 @Html.Sitecore().DynamicPlaceholder("section", Model.Rendering.GetUseStaticPlaceholderNames())
使用動態(tài)Placeholder汹桦。