2011-12-09 88 views
1

我安裝並配置了輪詢模塊以正常工作。我正在處理的網站將在頁面上有輪詢實例,既可以是左欄,也可以是右欄。投票將設置在一個單獨的文件夾中。在頁面項目上將會有一個多列表字段,它將指向投票文件夾,用戶可以選擇他們選擇的輪詢。該文件夾還將包含不同的子佈局,可以選擇將其顯示在導軌上。我有一些自定義代碼,它將查看上面提到的多列表字段並顯示這些鐵路項目。Sitecore輪詢模塊示例代碼

我不知道如何以編程方式顯示投票。我還沒有找到任何代碼示例,也不知道在哪裏設置子佈局。我應該在Poll模板本身上設置它,然後讓代碼來顯示它嗎?我如何在代碼中實現這一點?任何代碼示例都會有所幫助。

+0

非常典型的:)。我回答說,並且已經知道我不會接受這一個。 – Younes

+0

不錯,現在一切正常嗎? – Younes

+0

你只回答他們的積分? – Gabbar

回答

3

希望你將在此時間接受了答案,我爲你寫以下(基於OMS投票模塊:

讀出該領域在您的項目:

Sitecore.Data.Fields.ReferenceField selectedPoll = (Sitecore.Data.Fields.ReferenceField)Sitecore.Context.Item.Fields["Poll"]; 

獲取pollItem :

if (selectedPoll.TargetItem != null) 
      { 
       Item pollItem = selectedPoll.TargetItem; 

       if (pollItem != null) 
       { 

檢查投票打開或關閉,地點:

Sitecore.Data.Fields.CheckboxField pollClosed = (Sitecore.Data.Fields.CheckboxField)pollItem.Fields["Closed"]; 

        if (pollClosed.Checked == false) 
        { 
         // Set the header of the snippetBlock 
         ltPollHeader.Text = pollItem.Name; 

         PollVotingSublayout pollSublayout = (PollVotingSublayout)LoadControl("/sitecore modules/Shell/Poll Module/Controls/PollVotingSublayout.ascx"); 
         pollSublayout.Attributes.Add("sc_parameters", "PollPath=" + pollItem.Paths.FullPath); 
         pollSublayout.CurrentPoll = (PollItem)pollItem; 
         this.pollRegion.Controls.Add(pollSublayout); 

         phPollSnippet.Visible = true; 

         int blockPos = 0; 

         if (snippetField != null) 
         { 
          if (snippetField.GetItems().Any()) 
          { 
           blockPos = 1; 
          } 
         } 

         string cssClass = String.Empty; 

         if (blockPos == 0) 
         { 
          cssClass = "snippetColHomeFirst"; 
         } 

         this.SetClass("snippetColHome", cssClass); 
        } 

希望你可以用這個片段補足一些東西。祝你好運!

+0

所以我得到了民意調查的工作,但我的數字沒有得到更新。我檢查過在螢火蟲中看到錯誤,但沒有看到任何錯誤。有任何想法嗎? – Gabbar

+0

用戶管理器中似乎沒有投票帳戶。你可能有關於這個帳戶應該具有的權限和角色的詳細信息? – Gabbar

+0

在sitecore域中應該有一個名爲「poll」的用戶帳戶。此帳戶通常在投票內部使用。在這個帳戶的評論中說:「請不要刪除此帳戶」。 – Younes

1

在sitecore域上應該有一個名爲「poll」的用戶帳戶。此帳戶通常在投票內部使用。在這個帳戶的評論中說:「請不要刪除此帳戶」。該帳戶應具有Sitecore最小頁面編輯器角色。我不知道民意調查用戶憑據,但是您可能會發現通過使用反射器或打開可通過下載源代碼獲得的cs文件。