如何將當前登錄的用戶的TCM URI檢索到Tridion?如何在JavaScript代碼中檢索當前登錄用戶的TCM URI?
我正在Tridion 2011上開發GUI擴展,需要檢查組件是否已簽出到當前登錄的用戶。我計劃將當前登錄用戶的TCM URI與component.getLockedById()
進行比較。
我很確定我看到了在查看Tridion的JavaScript文件時如何檢索當前登錄用戶的用戶名。
編輯
我發現了檢索至少用戶名的一種方法:
var username = Tridion.ContentManager.UserSettings.getInstance().getUserName();
爲什麼你需要檢查的項目是否已簽出當前用戶?您通常不需要這樣做,因爲您可以嘗試打開該項目。通過選擇正確的OpenMode,您可以控制如果項目被簽出,'open'應該如何表現。 – 2012-04-16 10:39:46
我正在編寫一段代碼以確保組件已簽入。通過使用$ models.getItem()獲取組件信息,並在需要時加載組件。我注意到,使用這種方法,組件有時會被當前用戶檢出(如果之前檢入),那麼我需要重新檢查它。我的想法是將當前登錄的用戶與結帳用戶,如果它們相同,再次檢入組件。 試圖打開組件可能是一種很好的替代方法。我會研究這個! – 2012-04-16 11:10:28
看起來你只是以錯誤的方式加載項目。 「load」方法有三個參數 - 「load(reload,openMode,suppressError)」。關鍵是第二個參數。默認情況下,它被設置爲「EDIT_WITH_FALLBACK」。這意味着當你加載物品時,如果可能的話,它將被檢出。 你需要做什麼 - 明確地將openMode參數設置爲$ const.OpenMode.VIEW,或者使用「staticLoad」方法而不是「load」。默認情況下,「staticLoad」用VIEW打開模式加載項目。 – 2012-04-17 09:29:30