2012-04-16 48 views
6

如何將當前登錄的用戶的TCM URI檢索到Tridion?如何在JavaScript代碼中檢索當前登錄用戶的TCM URI?

我正在Tridion 2011上開發GUI擴展,需要檢查組件是否已簽出到當前登錄的用戶。我計劃將當前登錄用戶的TCM URI與component.getLockedById()進行比較。

我很確定我看到了在查看Tridion的JavaScript文件時如何檢索當前登錄用戶的用戶名。

編輯
我發現了檢索至少用戶名的一種方法:

var username = Tridion.ContentManager.UserSettings.getInstance().getUserName(); 
+1

爲什麼你需要檢查的項目是否已簽出當前用戶?您通常不需要這樣做,因爲您可以嘗試打開該項目。通過選擇正確的OpenMode,您可以控制如果項目被簽出,'open'應該如何表現。 – 2012-04-16 10:39:46

+0

我正在編寫一段代碼以確保組件已簽入。通過使用$ models.getItem()獲取組件信息,並在需要時加載組件。我注意到,使用這種方法,組件有時會被當前用戶檢出(如果之前檢入),那麼我需要重新檢查它。我的想法是將當前登錄的用戶與結帳用戶,如果它們相同,再次檢入組件。 試圖打開組件可能是一種很好的替代方法。我會研究這個! – 2012-04-16 11:10:28

+0

看起來你只是以錯誤的方式加載項目。 「load」方法有三個參數 - 「load(reload,openMode,suppressError)」。關鍵是第二個參數。默認情況下,它被設置爲「EDIT_WITH_FALLBACK」。這意味着當你加載物品時,如果可能的話,它將被檢出。 你需要做什麼 - 明確地將openMode參數設置爲$ const.OpenMode.VIEW,或者使用「staticLoad」方法而不是「load」。默認情況下,「staticLoad」用VIEW打開模式加載項目。 – 2012-04-17 09:29:30

回答

5

我還沒有機會測試這一點,但它是值得期待通過支持SDL Tridion 2011 Powertools項目。有在程序文件:

http://code.google.com/p/tridion-2011-power-tools/source/browse/trunk/PowerTools.Editor/PowerTools/Client/Shared/Scripts/utils.js

,可以幫助您。我想你可能會尋找線路

this._userSettings = Tridion.UI.UserSettings.getJsonUserSettings(true); 

我相信這是一個標準件的UI代碼,而不是一個自定義PowerTools的功能

+2

就是這樣!謝謝:)代碼來獲取ID:Tridion.UI.UserSettings.getJsonUserSettings(true).User [「@ ID」] – 2012-04-16 12:15:22

相關問題