我在這裏要做的是控制一組字段在節點視圖中如何顯示。我不想通過用戶角色來控制它們,因爲這將成爲節點級權限,並且我不希望這些權限會影響具有相同內容類型的其他節點。如何根據特定字段的值顯示和隱藏Drupal 7字段
例如,假設我有三種不同的角色:ROLEA,ROLEB和ROLEC。每個角色都有自己的權限設置,用於訪問字段。當第一次創建節點時,角色爲ROLEA的用戶可以看到幾個字段並可以編輯這些字段的值。節點發布時,通過規則模塊調用規則/操作,並將該節點中的狀態字段設置爲STAGE1。在此事件(創建新節點)之後,如果用戶(ROLEA)轉到剛剛創建的節點,那麼以前可編輯的那些字段現在應該是隻讀的。這意味着在Rules模塊中,將狀態字段的值設置爲STAGE1,當該節點想要通過Drupal加載時,我們需要檢查狀態值,並基於該狀態如果它是例如STAGE1,則修改其他字段該特定節點是隻讀或可編輯的,或者在某些情況下將其隱藏起來而不是用戶。所以我的猜測是創建一個模塊,每當該類型的節點加載時,檢查狀態字段(這是我們在該節點類型中創建的字段)並根據該字段的值確定哪個節點應該出現或隱藏。這應該覆蓋爲該特定節點類型上的那些字段設置的權限。
我想要做的是創建一個方法來控制哪些字段將被讀取/可編輯/隱藏基於該內容類型中的特定字段的值,已由Roules模塊設置在不同的用戶羣上在該節點上工作的不同階段。我沒有使用有機組。我使用Drupal 7和Rules模塊以及其他許可相關模塊。但是我發現沒有這種方式來處理節點級別的字段可見性,與用戶角色分開。
您是否認爲有其他方法可以達到相同的效果?我很感激你能否給我一個關於如何創建這樣一個模塊的想法。
我真的很感激任何和所有的輸入。
謝謝燒酒,我嘗試了hook_page_alter()進行頁面瀏覽,hook_form_alter進行頁面編輯。 – Mehr 2011-03-22 23:39:30