2015-09-25 61 views
0

對於我的Trac的插件,我想在插件添加顏色(如字符串或RGB值)爲每個用戶使用來自其他地方。顏色應該可以通過管理頁面配置。添加額外的信息到用戶帳戶中的Trac

是否有可能到另一列添加到表中AccountManagerPlugin面板的用戶設置,如果是這樣,我怎麼將信息添加到數據庫中,所以我可以從其他地方訪問它?

另一種選擇是做一個新的管理控制檯我的插件,這是我目前在做什麼,有一張桌子只用用戶名和他們的顏色。但在這種情況下,雖然我已經有空的管理面板,但我不知道如何添加表格並將新項目添加到數據庫。

解釋我需要的顏色:
我的插件爲門票添加了一個新的導出選項,並使用我自己的html和css結構格式化它們。這些票據包含所有者的姓名,並且該名稱應該以其各自的顏色顯示。這個代碼已經存在了,現在我只需要從數據庫中檢索顏色,並且事先通過管理面板將它們保存到數據庫中。

只能通過管理頁面更改顏色。

回答

1

有Trac系統中沒有用戶管理面板,但是AccountManagerPlugin具有用戶管理面板。讓我知道你是否使用AccountManagerPlugin,我會提供更多的信息。

保持Trac系統範圍內的討論,你可以實現用戶通過實現IPreferencePanelProvider進行選擇通過首選項面板的能力。您可以將該值保存在session_attribute表中並在其他任何地方使用。對於名爲user_color的屬性,可以使用req.session.get('user_color')檢索該值。

實例可以在trac.prefs.web_ui找到。我已經鏈接到Trac 1.1.6中的代碼,因爲模塊已經過重構,所以首選項更加模塊化#9162

+0

是的,AccountManagerPlugin的用戶管理面板就是我的意思。我會編輯更具體的問題,並試圖詳細描述我想要做的更多。 –

+0

顏色只能由管理員管理,所以我不能使用IPreferencePanelProvider。此外,顏色應該在多個會話中保持一致,並且所有用戶都可以訪問(即使未登錄),所以我認爲唯一的選擇是使用數據庫。顏色應該是永久屬於用戶的設置(可由管理員在極少數情況下更改,但通常設置一次,然後永久設置。) –

+0

我在「session_attribute」表中存儲數據的說明仍適用。如果你想附加到AccountManagerPlugin的用戶表,你需要實現[ITemplateStreamFilter](http://trac.edgewall.org/wiki/TracDev/PluginDevelopment/ExtensionPoints/trac.web.api.ITemplateStreamFilter)並修改使用Genshi流功能的模板。或者,您可以使用JavaScript修改表格。 – RjOllos