Esempio n. 1
0
	private bool CalculateVisibility(BXPublicPanelMenuSectionList sectionList)
	{
		foreach (BXPublicPanelMenuSection section in sectionList)
		    foreach (BXPublicPanelMenu menu in section.Controls)
		        if (menu.InfluencePublicPanelVisibility)
		            return true;
		return false;
	}
Esempio n. 2
0
	protected override void CreateChildControls()
	{
		BXCommand cmdCreate = new BXCommand("Bitrix.Modules.BXPublicPanel.CreateMenu");
		BXPublicPanelMenuSectionList sectionList = new BXPublicPanelMenuSectionList();
		cmdCreate.AddCommandResult("SectionList", new BXCommandResult(BXCommandResultType.Ok, sectionList));
		cmdCreate.Send();

		Visible = CalculateVisibility(sectionList);
		if (!Visible)
			return;

		if (BXConfigurationUtility.IsDesignMode)
			Response.Cache.SetCacheability(HttpCacheability.NoCache);

		BXCommand cmdFill = new BXCommand("Bitrix.Modules.BXPublicPanel.PopulateMenu");
		cmdFill.Parameters.Add("ShowMode", Bitrix.Configuration.BXConfigurationUtility.ShowMode);
		cmdFill.AddCommandResult("SectionList", new BXCommandResult(BXCommandResultType.Ok, sectionList));
		cmdFill.Send();

		int count = sectionList.Count;
		if (count == 0)
			return;
		
		sectionList.SortByOrder();
		bool firstSection = true;
		foreach (BXPublicPanelMenuSection section in sectionList)
			if (section.ShouldRender)
			{
				if (!firstSection)
				{
					HtmlGenericControl separator = new HtmlGenericControl("div");
					separator.Attributes.Add("class", "bx-pnseparator");
					panelButtonsPlaceHolder.Controls.Add(separator);
				}
				else
					firstSection = false;
				panelButtonsPlaceHolder.Controls.Add(section);
			}
	}