2016-10-20 6 views
0

私は別の開発者からモデルを引き継いで近代化しています。DNN 7.3のカスタムポータル設定の更新+

彼らは、モジュール設定のsettings.ascxページに次の行を持っていた:

DotNetNuke.Data.DataProvider.UpdatePortalSetting(this.PortalId, "setting_name", tx_emailfrom.Text, UserId, "en-US"); 
:だから私はラインを変更し

DotNetNuke.Entities.Portals.PortalSettings.UpdatePortalSetting(this.PortalId, "setting_name", tx_emailfrom.Text); 

次の警告

Warning 'PortalSettings.UpdatePortalSetting(int, string, string)' is obsolete: 'Deprecated in DNN 5.0. Replaced by DataProvider.UpdatePortalSetting(Integer, String, String)'

をスローします

提案されたとおり、次のエラーが表示されます。

Error CS0120 An object reference is required for the non-static field, method, or property 'DataProvider.UpdatePortalSetting(int, string, string, int, string)'

DNN 7.3以上のポータル設定を更新する最新の方法は何ですか。私はポータルの設定を得ることができます、ちょうどそれらを更新することに問題があります。

ありがとうございます。

答えて

1

次は私がそれを

つのノートを解決する方法で、この答えは、「カスタム」ポータルの設定のためです。したがって、VDWWDのソリューションは、ポータルオブジェクトの既存のポータル設定すべてに対して機能します。

私は固定この私の次の行に.Instanceを()追加:

DataProvider.UpdatePortalSetting(this.PortalId, "bulletin_sendemail_from", this.tx_emailfrom.Text, UserId, "en-US"); 

DataProvider.Instance().UpdatePortalSetting(this.PortalId, "bulletin_sendemail_from", this.tx_emailfrom.Text, UserId, "en-US"); 

に変更され、今では、提案のための

+0

あなたはこのプロパティをどのように読んでいますか? – Mosta

1

ここに行く...

using DotNetNuke.Entities.Portals; 

//get the current portal settings 
PortalInfo portalInfo = PortalController.Instance.GetPortal(PortalId); 

//overwrite a specific setting 
portalInfo.PortalName = "My New Portal Name"; 

//save the new portal settings 
PortalController portalController = new PortalController(); 
portalController.UpdatePortalInfo(portalInfo); 

新しい設定を有効にするためにキャッシュをクリアする必要があるかもしれません。

DotNetNuke.Common.Utilities.DataCache.ClearPortalCache(PortalId, false); 
+0

おかげで動作しますが、設定私は「カスタム」設定について話しており、PortalObjectのプロパティではありません。 –

関連する問題