天天看點

淺談SharePoint 2013 站點模闆開發

  一直以來所接觸的SharePoint開發,都是Designer配合Visual Studio,前者設計頁面,後者開發功能,互相合作,完成SharePoint網站開發。直到SharePoint 2013接觸站點模闆,才發現站點也可以直接通過VS來進行開發,建立母版頁、頁面、WebPart、清單、清單項、網站欄等等,完成一個站點的開發。

  或許是自己認識過于淺薄,但是在浏覽衆多部落格當中,暫時還未曾發現類似的部落格,是以,寫一篇部落格分享給大家。也因為是一個開發示例,是以功能比較簡單,我自己簡單寫了一個釋出站點模闆,用來示範部落格。

  不得不說的是,模闆的主題是環境保護,當日漸嚴重的霧霾天氣,已經嚴重影響我們的生活和出行,我想,節能環保是每個人的義務。廢話不多說了,進入我們的主題。

首先,介紹一下示範的網站模闆包括哪些内容:

  1、一個母版頁;

  2、一個網站首頁;

  3、兩個清單:圖檔新聞、文字新聞;

  4、3個WebPart,包括:圖檔輪播、文字新聞清單展示、文字新聞二級頁面;

其次,介紹下網站具體結構:

  1、母版頁通過Module将頁面釋出到SharePoint站點母版頁庫中;

  2、兩個WebPart通過Feature部署到網站中;

  3、自定義清單通過Feature部署到網站中,并在清單執行個體中添加欄和資料;

  4、使用清單模闆定義清單項展示頁面(DispForm.aspx);

  5、使用WebPart定義清單More頁;

Visual Studio解決方案結構圖,如下圖:

  如下圖所示,較長的描述了每個檔案的作用。

淺談SharePoint 2013 站點模闆開發

站點模闆的結構,主要由三個檔案組成,如上圖Visual Studio結構圖,我們可以看到這三個檔案分别是:

  1、default.aspx -- 站點模闆的首頁;

  2、Onet.xml -- 可以說站點模闆結構的Xml描述檔案;

  3、webtemp_PublishSiteTemplate.xml -- 站點模闆的Xml描述檔案。

一、母版頁開發

  開發站點模闆,首先要建立一個母版頁,也就是在建立SharePoint空解決方案之後,添加一個新項,項目為子產品,如下圖:

淺談SharePoint 2013 站點模闆開發

  如下圖,添加母版頁目錄結構,修改子產品的Xml内容,Path也就是檔案路徑,是解決方案中檔案的路徑,Url是連結位址,是将來釋出到SharePoint站點的位址,通常,我們都會複制一個SharePoint已存在的母版頁,來修改成我們需要的樣子:

淺談SharePoint 2013 站點模闆開發

  如下圖,是Div+CSS布局的母版頁,主要包括頭部、中間内容、尾部版權資訊三個部分。而頭部還包括網站名稱、導航、使用者、網站設定幾個控件。

  标題、使用者、網站設定幾個部分,就是做好母版頁布局,留着相應位置,将SharePoint自帶的控件剪切過來即可。建議在之前位置,留下類似<!--原網站設定位置-->這樣的注釋,友善我們修改後還原。

  導航一般不經常變動,可以寫死成JS腳本的動态導航;當然,也可以使用SharePoint自帶的托管導航,支援三級導航,效果可以使用CSS樣式,重寫預設樣式,修改比較難弄,有興趣了解,可以參考我的另一篇關于托管導航介紹的部落格。

淺談SharePoint 2013 站點模闆開發

  母版頁制作完成以後,可以添加到站點模闆結構描述的Xml檔案(onet.xml)裡,添加到如下位置即可。因為站點模闆的Feature基本是Web,是以添加到WebFeatures即可;如果是Site範圍的,需要添加到SiteFeatures裡面。

  建議如我這樣的添加,添加Feature後,在上方寫下注釋,友善以後修改和閱讀。

  站點的母版頁功能添加到站點模闆以後,還需要為default.aspx頁面也就是站點模闆首頁引用。

  首先,需要修改站點模闆的結構描述檔案(onet.xml)的config節點,添加如下代碼:

  截圖如下:

淺談SharePoint 2013 站點模闆開發

  最後,修改default.aspx檔案的母版頁引用,改為自定義模闆頁,即可,如下修改MasterPageFile節點:

二、建立自定義清單(以圖檔新聞為例)

  在項目裡添加建立項,選擇清單,如下圖:

淺談SharePoint 2013 站點模闆開發

  建立清單比較簡單,添加字段可以在可視化界面,直接添加即可。隻是,建議先添加英文字段名稱,而後修改成中文,這樣内部字段容易識别。

淺談SharePoint 2013 站點模闆開發

  而後,為清單添加測試資料,輕按兩下清單執行個體的xml檔案(本例為PictureNewsInstance中xml),添加相應資料,如下圖

淺談SharePoint 2013 站點模闆開發

  建立清單完畢後,我們還需要定制一下清單的More頁和展示頁,因為Allitems頁面不僅僅是展示頁,而且還是資料維護頁面,是以不要去修改AllItems頁面,新添加一個More頁用來做二級頁面。同僚,清單項的展示頁,直接修改DispForm也即可。

  不知道你是否了解,SharePoint清單模闆,如果不了解,聽我科普一下。SharePoint所有的清單,都會繼承一個模闆,存在實體目錄TEMPLATE\CONTROLTEMPLATES下,名字叫做DefaultTemplates.ascx。當然,很多SharePoint的控件也都存在這裡,由于這些控件都是全局的,強烈建議不要修改,即使修改,必須備份。

  Sharepoint的清單,不僅僅繼承一個模闆,還單獨繼承一個頁面,預設位置為實體路徑TEMPLATE\Pages下,名字叫做form.aspx。下面,我們通過這個頁面和模闆,來定制清單的展示頁。

  首先,我們映射上面介紹的兩個SharePoint檔案夾(别說不知道如何映射SharePoint檔案夾,如若不知道,請參考我之前的部落格,SharePoint 2013圖文開發系列)。

  在Pages映射的檔案夾中,添加兩個頁面分别用來定制DispForm和More頁,添加一個模闆的ascx控件,用來展示DispForm頁面。由于More頁和SharePoint原來頁面相差很大,是以我選擇開發一個可視化webpart,并不需要修改模闆,隻要隐藏掉之前的模闆即可。

  然後,修改一下More也的引用頁面(PublishSiteMoreForm.aspx),主要修改引用的母版頁為自定義母版頁(上面那個不算太好看的),添加More頁的可視化WebPart(如何建立後面介紹)。

  1、在頭部注冊控件,如下:

  2、在頁面添加webpartzone,并添加webpart,如下:

  3、隐藏預設自帶的部件區域,如下:

  4、如下圖,即修改後的頁面,同時,我們修改DispForm繼承的Page頁(PublishSiteDispForm.aspx),這個頁面,我們隻需要修改母版頁引用為自定義母版頁即可,因為展示需要繼承自帶的模闆,而非可視化webpart:

淺談SharePoint 2013 站點模闆開發

  接下來,修改DispForm頁繼承的模闆,如下圖,展示的隻有标題和新聞内容兩個字段,中間有一段點化線作為分隔:

淺談SharePoint 2013 站點模闆開發

  展示效果,如下圖,還不算太難看吧,我不是美工,大家不要吐槽:

淺談SharePoint 2013 站點模闆開發

三、建立可視化webpart

  相比之前介紹的内容,可視化webpart就非常簡單了,建立三個可視化webpart,分别用作圖檔輪播、文字新聞清單展示、文字新聞More頁。

  圖檔新聞是一段JS,讀取标題、圖檔連結,拼好腳本前台輸出即可;文字新聞更簡單,拼成HTML前台資料,就可以了;More頁也非常簡單,讀取清單資料,綁定前台GridView,自帶分頁。功能就不多言了,看看展示效果吧。

  圖檔新聞和文字新聞的首頁

淺談SharePoint 2013 站點模闆開發

  More頁的顯示效果

淺談SharePoint 2013 站點模闆開發

  詳細頁之前已經截圖了,在這裡就不碼圖了。添加完這三個WebPart以後,要做的就是把這三個WebPart添加到一個Feature裡,然後加到站點模闆的SiteFeatures裡去,就可以了。

  特别要說的是,之前添加的清單,也需要加載這裡,但是為了省事兒,我加到母版頁的Feature裡了,是以這裡沒有單獨列出來,希望不要引起誤會。

淺談SharePoint 2013 站點模闆開發

  以上,便是SharePoint模闆開發過程的簡單描述,開發完成後,使用Visual Studio自帶的打包功能,部署到伺服器上,即可。在添加網站集的時候,就會看到相應的站點模闆,如下圖。

  站點模闆的屬性,在其描述檔案中(webtemp_PublishSiteTemplate.xml)修改:

淺談SharePoint 2013 站點模闆開發

  站點模闆描述檔案,分别有站點模闆的标題、描述、所示分組等,如下圖:

淺談SharePoint 2013 站點模闆開發

總 結

  SharePoint站點模闆的開發,基本如上所示,當然,時間和精力所限,自己用很短的時間,寫了上面的東西作為示範,如果需要,可以開發更加複雜的站點模闆,以滿足對于客戶的需求。

附解決方案包下載下傳連結

繼續閱讀