Ejemplo n.º 1
0
	void DoCreateMenuItem(string dirPath)
	{
		if (string.IsNullOrEmpty(MenuItemName.Text))
			throw new PublicException(GetMessageRaw("Message.EmptyMenuItemName"));
		if (string.IsNullOrEmpty(MenuType.SelectedValue) || (MenuType.SelectedValue.IndexOfAny(Path.GetInvalidFileNameChars()) != -1))
			throw new PublicException(GetMessageRaw("Message.IllegalMenuType"));
		try
		{
			BXUser.DemandOperations(BXRoleOperation.Operations.FileManage);

			bool isNewMenu = false;
			BXPublicMenuItemCollection menuItemCol = BXPublicMenu.Menu.GetMenuByUri(MenuType.SelectedValue, dirPath);
			if (menuItemCol == null)
			{
				menuItemCol = new BXPublicMenuItemCollection();
				isNewMenu = true;
			}
			BXPublicMenuItem menuItem = new BXPublicMenuItem();
			menuItem.Link = BXSiteRemapUtility.UnmapVirtualPath(VirtualPathUtility.AppendTrailingSlash(BXPath.TrimEnd(dirPath)));
			menuItem.Title = MenuItemName.Text;

			menuItemCol.Add(menuItem);

			int menuItemCount = menuItemCol.Count;
			for (int i = 0; i < menuItemCount; i++)
				menuItemCol[i].Sort = (i + 1) * 10;

			string menuDirPath = dirPath;
			if (!isNewMenu && !string.IsNullOrEmpty(menuItemCol.MenuFilePath))
				menuDirPath = BXPath.GetDirectory(menuItemCol.MenuFilePath);

			BXPublicMenu.Menu.Save(menuDirPath, MenuType.SelectedValue, menuItemCol);
		}
		catch(Exception ex)
		{
			throw new PublicException(GetMessageRaw("Message.UnableToCreateMenu"), ex);
		}
	}
Ejemplo n.º 2
0
	private void AddToMenu(string menuTypeId, MenuTypeInfo info, string pageNameExtensionless)
	{
		BXPublicMenuItemCollection menuItemCol = null;
		if ((info.SourcePath != null && Request.Form[string.Concat(UniqueID, IdSeparator, "cbCreateInSection")] != "Y"))
			menuItemCol = info.Items;
		else if (info.SectionPath == null)
			return;

		bool isNewMenu = false;
		if (menuItemCol == null)
		{
			menuItemCol = new BXPublicMenuItemCollection();
			isNewMenu = true;
		}

		int menuItemIndex = ddlMenuItems.SelectedIndex;
		int menuItemCount = menuItemCol.Count;
		if (menuItemIndex < 0 || menuItemIndex > menuItemCount)
			menuItemIndex = menuItemCount;
		BXPublicMenuItem menuItem = new BXPublicMenuItem();
		menuItem.Link = Bitrix.Services.BXSiteRemapUtility.UnmapVirtualPath(_clientVirtualPath);

		string title = !string.IsNullOrEmpty(tbxMenuName.Text) ? tbxMenuName.Text : pageNameExtensionless;
		menuItem.Title = HttpUtility.HtmlEncode(title);

		menuItemCol.Insert(menuItemIndex, menuItem);
		menuItemCount++;
		for (int i = 0; i < menuItemCount; i++)
			menuItemCol[i].Sort = (i + 1) * 10;

		string menuDirPath = BXPath.GetDirectory(!isNewMenu ? info.SourcePath : info.SectionPath);
		BXPublicMenu.Menu.Save(menuDirPath, menuTypeId, menuItemCol);
	}
Ejemplo n.º 3
0
    protected void mainTabControl_Command(object sender, BXTabControlCommandEventArgs e)
    {
        if (string.IsNullOrEmpty(Path))
            return;

        BXPublicMenuItemCollection menu = new BXPublicMenuItemCollection();

        switch (e.CommandName.ToLower())
        {
            case "apply":
            case "save":
                for (int i = 1; i < tblItems.Rows.Count; i++)
                {
                    TextBox title = tblItems.Rows[i].Cells[0].Controls[0] as TextBox;
                    TextBox link = tblItems.Rows[i].Cells[1].Controls[0] as TextBox;
                    TextBox sort = tblItems.Rows[i].Cells[2].Controls[0] as TextBox;
                    CheckBox delete = tblItems.Rows[i].Cells[3].Controls[0] as CheckBox;

                    if (!delete.Checked &&
                        !string.IsNullOrEmpty(title.Text.Trim()))
                    {
						BXPublicMenuItem item = new BXPublicMenuItem();
                        item.Link = link.Text;
                        item.Title = title.Text;
                        int weight;
                        if (int.TryParse(sort.Text, out weight))
                            item.Sort = weight;
                        else
                            item.Sort = 10;

                        menu.Add(item);
                    }

                }
				BXPublicMenu.Menu.Save(CurDir, MenuType, menu);
				if (e.CommandName.ToLower() == "apply")
					Response.Redirect(Request.RawUrl);
                break;
        }
		GoBack();
    }