2016-08-01 6 views
0

から2sxcアプリケーションIDを取得し、私はcodeアプリ名

に似別のアプリからのデータを使用したいしかし、私は、アプリ名やフォルダからのAppIDを取得したいですか? これを取得する方法はありますか?

答えて

0

これはAPPIDを取得するための機能を備えた私の作業コードです:

public int GetAppIdFromName(string appName){ 
    foreach(var app in sxApps()) if (app.Name==appName) return App.AppId; 
    return -1; 
} 

public int GetAppIdFromFolder(string appFolder){ 
    foreach(var app in sxApps()) if (app.Folder==appFolder) return App.AppId; 
    return -1; 
} 

public List<ToSic.SexyContent.App> sxApps() 
{ 
    var zoneId=(int)ToSic.SexyContent.Internal.ZoneHelpers.GetZoneID(Dnn.Module.PortalID); 
    var eavApps = ((ToSic.Eav.DataSources.Caches.BaseCache)ToSic.Eav.DataSource.GetCache(zoneId, null)).ZoneApps[zoneId].Apps; 
    var ps = DotNetNuke.Entities.Portals.PortalSettings.Current; 
    return eavApps.Select<KeyValuePair<int, string>, ToSic.SexyContent.App>(eavApp => new ToSic.SexyContent.App(zoneId, eavApp.Key, ps)).ToList(); 
} 

は、このOKですかeasyer行うことができますか?

+1

現在は2sxc 8.5ですが、それは多かれ少なかれです。私はそれを書き直すことができましたが、それはまだベースキャッシュ上のアプリのリストを通過するでしょう。しかし、複数のアプリが同じ名前を持つ可能性があるため、これは危険です(異なるポータルでホストされている場合...) – iJungleBoy

関連する問題