2010-07-02 75 views
0

我不知道自己是否處於正確的軌道,但我試圖讓我的網站的用戶創建在我的網站上有自己的頁面版本。 基本上我想將我們的文檔作爲一個起點,他們只是在這個過程中添加細節併爲自己創建一個新頁面。 我有一個'書'內容類型,我已經改變CCK和'客戶端編輯'內容類型,使用nodereferencefromURL小部件將自己鏈接到書籍節點。從現有節點的字段獲取數據,並將該字段的默認值設置爲不同內容類型

我所說的簡單版本是我的書頁上有一個鏈接,它使用客戶端編輯內容類型創建節點。我想在客戶端編輯內容類型上放置一些字段,它們從鏈接的書頁中獲取一些字段的值。

我敢肯定,我錯過了一些東西,因爲我以前會想有人會嘗試過這一點,但我甚至無法找到關於如何去做這件事的提示。

如果我目前的想法是錯誤的,我真正需要的是一個正確的方向。 當前的想法是,我使用php腳本來獲取新節點添加屏幕上字段的默認值,該字段可以從我從中鏈接的書中拖動字段的值。 我在考慮這種情況,因爲在cck管理字段中有一個用於字段默認值的選項,可以讓您輸入一個php值來爲您的字段返回默認值。

我在正確的軌道上,還是已經有一個模塊或過程,做我在說什麼,我太笨了,找不到它。

回答

0

我最終使用規則將用戶和克隆節點的信息保存到隱藏字段中。 當您創建該類型的內容時,將原始節點ID保存到字段中,除非URL以Clone結尾。這意味着當您創建克隆時,原始節點ID將保留在該字段中。 這使得使用視圖參數變得非常容易,該參數使用節點ID使克隆在用戶訪問原始頁面時沿着原始邊顯示。 第二個規則技巧是僅在保存克隆內容時計算從用戶配置文件保存「商店名稱」的字段。 這意味着存儲信息的克隆上有一個隱藏字段,因此我可以使用其他視圖參數將視圖限制爲只有在他們的配置文件中具有相同商店名稱的人員。 我對PHP不太好,但我設法找到一個代碼片段(記不清位置),它返回當前登錄用戶的存儲名稱作爲參數。

global $user;

profile_load_profile($user);

return $user->profile_store_name;

0

這聽起來有點奇怪,你的客戶端編輯是從原始節點差異還是隻是複製數據?

我可能會做一個更簡單的方法,只是有書籍節點,並根據編輯它(啓用content_permissions模塊)不同的領域消失。這樣您就可以使用node clone模塊創建用戶副本。

您將需要make a module來包含您的自定義php代碼。

+0

我刷好了節點的克隆,在本週早些時候,因爲我更感興趣的是應對領域,而不是整個節點,但我還沒有權限因素。我會試着看看它是如何發展的。謝謝。 是的,它們會與原始版本不同,因爲我們的程序似乎根據客戶端以千種不同的方式使用,所以他們需要爲我們自己和員工個性化我們的文檔。 – Paul 2010-07-02 07:41:08

+0

此外,用戶不能更改原始文檔,所以如果克隆,這意味着他們將沒有權限編輯新的文檔,以及該字段將是相同的,我猜?我會盡力。 – Paul 2010-07-02 07:51:33

+0

可以設置權限,以便用戶組只能編輯自己的某個實例,而不是每個實例,因此您應該可以。 – 2010-07-02 09:45:11

相關問題