2012-11-08 53 views
1

大家好,我認爲這可能是或可能不是一個編程問題。但我試過在concrete5論壇上提出這個問題,但沒有運氣。希望有人可以給我一個線索在這裏..如何在Concrete5的Composer界面爲不同的用戶組設置不同的默認屬性值?

有沒有什麼辦法可以爲每個用戶組的作曲家屬性設置不同的默認值?

讓我詳細解釋我的問題。我的客戶有大約60個組織單位(每個單位都有自己的用戶組)。對於每個單元,他們都希望擁有自己的頁面列表。僅包含由單位成員發佈的所有文章。除此之外,來自組織單位的所有帖子也應該聚合在全球新聞類別的一個子類別上。所以,我構建了內容結構是這樣的

組織單元目錄[頁碼類型]

  • 單元1的文章
  • 單元2的文章
  • 單元3的文章
  • ...

NEWS [page type]

  • 組織單位信息[包含所有單元聚集的頁列表]
  • ..other新聞子目錄..
  • ..other新聞子目錄..
  • ..other新聞子目錄..

對於上述內容結構,我將「NEWS」頂級類別和「組織單位目錄」設置爲page_type,併爲新聞子類別(我將其命名爲「news_location」)創建一個屬性。並創建一個更多的屬性來確定單位(我將其命名爲「單位」)。

現在,我的問題是,我如何在作曲家上爲特定用戶組預設屬性「news_location」和「unit」。例如,「單元1」的成員。我希望他們有一個獨特的作曲家,其屬性「news_location」預先設置爲「組織單位信息」,屬性「單位」預設爲「單位1」。而且他無法改變這些屬性,因此我們可以確保他們只會在適當的地點/類別上發佈新的文章。

我一直在搗鼓concrete5 CMS,但找不到任何方法來做到這一點。我應該挖掘代碼併爲此創建自己的模塊嗎?

就是這樣......期待着解決方案。對不起,如果我的問題太過複雜:p

+0

我編輯你的問題的標題,以更好地解釋什麼,我想你問。我希望我理解正確(但如果沒有,我的道歉)。 –

回答

1

確實沒有內置功能,可以讓您在Composer中爲不同的用戶組設置不同的默認屬性值(實際上,我甚至不認爲這是可能的設置任意屬性的默認值 - 即使它對所有用戶來說都是相同的默認值)。

您可以覆蓋核心CollectionType類 - 在getComposerContentItems方法中,您可以編寫一些代碼來檢查當前頁面類型,檢查每個屬性Key以及根據當前用戶的組放置默認值的某些屬性。

但真正難的是在實際的屬性設置值。有沒有優雅的方式在Concrete5這樣做 - 屬性值總是依賴於該屬性分配給對象(例如,一個頁面,文件或用戶)。過去我曾嘗試在屬性上任意設置任何默認值,但沒有簡單的方法來實現。 (這不是太難爲簡單​​的屬性類型,如文本框和複選框......但對於像DateTime和選擇類型更復雜的事情,它是如此的複雜,以至於我甚至沒有力氣試圖弄明白)。

你可能想什麼嘗試,而不是創造自己的屬性類型,然後在屬性類型本身你弄清楚如何設置默認值(如果沒有值已經存在)基於用戶組。下面是一些基本的代碼,我有證明什麼需要爲您自己的屬性類型的最低要求: https://github.com/jordanlev/c5_minimal_attribute_type

此外,檢查越詳細C5文件(也梅西耶和難於理解)的說明和示例代碼:http://www.concrete5.org/documentation/developers/attributes/overview

祝您好運!

相關問題