I know.. we need to upgrade... we will.. but, in the meantime, I need help with auto-magically adding the Navigation Item I created in this plugin to the group banner widget...
I thought this plugin would do the trick.. but I can only get the Navigation Item in the list for the group banner.
below is my code... thanks in advance.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Telligent.Evolution.Extensibility.Version1; using Telligent.Evolution.Extensibility.UI.Version1; using Telligent.DynamicConfiguration.Components; using TEApi = Telligent.Evolution.Extensibility.Api.Version1.PublicApi; namespace CommunityMap.Plugins.UI.Navigation { //public class MapGroupNavigation : IPlugin, ITranslatablePlugin, IGroupCustomNavigationPlugin public class MapAppsGroupNavigationItem : IPlugin, ITranslatablePlugin, ISiteCustomNavigationPlugin, IGroupCustomNavigationPlugin, IGroupDefaultCustomNavigationPlugin // { private readonly Guid _defaultId = new Guid("9ff37043-8c76-40ce-891e-ffa216415a0c"); ITranslatablePluginController _translation; #region IPlugin Members public string Name { get { return "APAN - Community Map App Group Navigation"; } } public string Description { get { return "Adds Map App custom navigation support within groups."; } } public void Initialize() { } #endregion #region ITranslatablePlugin Members public Translation[] DefaultTranslations { get { var translation = new Translation("en-US"); translation.Set("configuration_options", "Options"); translation.Set("configuration_label", "Label"); translation.Set("configuration_label_description", "Enter an optional label for this link."); translation.Set("configuration_defaultLabel", "Map Apps"); translation.Set("navigationitem_name", "GroupMapApps"); return new Translation[] { translation }; } } public void SetController(ITranslatablePluginController controller) { _translation = controller; } #endregion #region IGroupCustomNavigationPlugin Members public PropertyGroup[] GetConfigurationProperties(int groupId) { var groups = new PropertyGroup[] { new PropertyGroup("options", _translation.GetLanguageResourceValue("configuration_options"), 1) }; if (groupId > -1) { groups[0].Properties.Add(new Property("groupid", "Current Group", PropertyType.Int, 1, groupId.ToString()) { Visible = false, Editable = false }); groups[0].Properties.Add(new Property("label", _translation.GetLanguageResourceValue("configuration_label"), PropertyType.String, 1, "") { DescriptionText = _translation.GetLanguageResourceValue("configuration_label_description") }); } else { groups[0].Properties.Add(new Property("groupid", "Current Group", PropertyType.Custom, 0, string.Empty) { ControlType = typeof(Telligent.Evolution.Controls.GroupSelectionList), DescriptionText = "Select a Group" }); groups[0].Properties.Add(new Property("label", _translation.GetLanguageResourceValue("configuration_label"), PropertyType.String, 1, "") { DescriptionText = _translation.GetLanguageResourceValue("configuration_label_description") }); } return groups; } public ICustomNavigationItem GetNavigationItem(Guid id, ICustomNavigationItemConfiguration configuration) { int groupId = configuration.GetIntValue("groupid", -1); if (groupId == -1) return null; string label = configuration.GetStringValue("label", ""); return new MapsGroupNavigationItem(this, configuration, id, groupId, () => string.IsNullOrEmpty(label) ? _translation.GetLanguageResourceValue("configuration_defaultLabel") : label); } public string NavigationTypeName { get { return _translation.GetLanguageResourceValue("navigationitem_name"); } } #endregion #region IGroupDefaultCustomNavigationPlugin Members public int DefaultOrderNumber { get { return -1; } } public ICustomNavigationItem GetDefaultNavigationItem(int groupId, ICustomNavigationItemConfiguration configuration) { return new MapsGroupNavigationItem(this, configuration, _defaultId, groupId, () => _translation.GetLanguageResourceValue("configuration_defaultLabel")); } public PropertyGroup[] GetConfigurationProperties() { return GetConfigurationProperties(-1); } #endregion public class MapsGroupNavigationItem : ICustomNavigationItem { int _groupId = -1; Func<string> _getLabel; IList<PublicApi.Entities.MapApp> _mapapps; internal MapsGroupNavigationItem(ICustomNavigationPlugin plugin, ICustomNavigationItemConfiguration configuration, Guid id, int groupId, Func<string> getLabel) { Plugin = plugin; Configuration = configuration; UniqueID = id; _mapapps = PublicApi.MapApps.List(groupId); _groupId = groupId; _getLabel = getLabel; var context = Telligent.Evolution.Components.CSContext.Current.CurrentPageContext.ContextItems.Find(f => f.ContentTypeId == TEApi.Groups.ContentTypeId); var strGroupId = context.Id; if (!string.IsNullOrEmpty(strGroupId)) _groupId = Convert.ToInt32(strGroupId); else _groupId = -1; } #region ICustomNavigationItem Members public ICustomNavigationItem[] Children { get; set; } public ICustomNavigationItemConfiguration Configuration { get; private set; } public string CssClass { get { return "mapapp"; } } public string Label { get { return _getLabel(); } } public ICustomNavigationPlugin Plugin { get; private set; } public Guid UniqueID { get; private set; } public bool IsSelected(string currentFullUrl) { return currentFullUrl.Contains("/mapapps/"); } public bool IsVisible(int userID) { return !string.IsNullOrEmpty(Url); } public string Url { get { // if (_groupId == -1) { return null; } if (_mapapps != null && _mapapps.Count > 0) { if (_mapapps.Count == 1) { if (_mapapps.FirstOrDefault().Group != null && _mapapps.FirstOrDefault().Group.Url != null)// && _mapapp.SafeName != null) { return _mapapps.FirstOrDefault().Group.Url + "mapapps/" + _mapapps.FirstOrDefault().SafeName + "/maps/"; // InternalApi.SourceingUrlService.SourceListUrl(_groupId); } } else { if (_mapapps.FirstOrDefault().Group != null && _mapapps.FirstOrDefault().Group.Url != null)// && _mapapp.SafeName != null) { return _mapapps.FirstOrDefault().Group.Url + "mapapps/"; } } } // return _mapapps.FirstOrDefault().Group.Url + "mapapps/"; return ""; } } #endregion } } }