+1-888-365-2779
Try Now
More in this section
Categories
Bloggers
Blogs RSS feed

HACK: How to hide controls from toolbox section in Sitefinity 3.6

by Ivan Dimitrov

 

I know that many of you have asked us about this. How we can hide some controls, so that a certain users will not be able to use them.

Ok, me and one of our developers decided to provide this solution for you.

 

Firs we create a class in our App_Code folder. Our class should inherit form Telerik.Cms.Web.EditPage. Then, we override CreateChildControls method and we find Toolbox control by ID. We get the ID of the expandPanel and controlsLoader controls. Thus, we can access the DropDownPanel and hide the controls.

 

using System.Web.UI;
using Telerik.Cms.Web;
using Telerik.Cms.Web.UI;
 
/// <summary> 
/// Summary description for HackEditPage 
/// </summary> 
///  
 
// we inherit from Telerik.Cms.Web.EditPage 
public class HackEditPage : EditPage
{
 public HackEditPage()
    {
 // 
 // TODO: Add constructor logic here 
 // 
    }
 // override chind controls 
 protected override void CreateChildControls()
    {
 base.CreateChildControls();
 //find the tollbar by ID 
        ToolBar toolbar = this.Form.FindControl("toolBar") as ToolBar;
 // set null to the tollbox 
        Toolbox toolbox = null;
 // reverse all controls in toolbar controls 
 foreach (Control c in toolbar.Controls)
        {
 if (c is Toolbox)
            {
                toolbox = c as Toolbox;
 break;
            }
        }
 if (toolbox != null)
        {
 // find the container 
            Control control = toolbox.FindControl("controlsContainer");
            control = control.FindControl("controlsLoader");
 foreach (Control c in control.Controls)
            {
 // get the drop down panel and hide the sections from it. 
                DropDownPanel panel = c as DropDownPanel;
 if (panel != null 
                    && (panel.Text == "Most popular" || panel.Text == "Custom")
                    && User.IsInRole("administrators"))
                {
                    panel.Visible = false;
                }
            }
        }
    }
}

 

Finally change ~/Sitefinity/Admin/EditPage.aspx as below:

 

<%@ Page Inherits="HackEditPage, App_Code" MasterPageFile="~/Sitefinity/Dummy.master" %>

Many tanks to Parvan!

6 comments

Leave a comment
  1. Bo Godthaab Mar 28, 2009
    Thank you for this! I had hoped that the same tricks worked on the "Upload a control"
  2. almny May 28, 2009
    perfect it's wthat i need exactly
    it's working good
    can you explan how i can hide also 
    2. Select a container drop down list ?
    3. and add button ?
    thanks
  3. Volure Aug 26, 2009
    Im actually wondering if there is a way to stop sitefinity from putting my controls in the toolbox when i upload a dll... so far I have not found any information on this... I only ask because I made a couple designer classes and they should not be used as web controls.. but sitefinity puts them in the toolbox anyway.
  4. Sucard Feb 26, 2010
    i can get it can you get me the user and password of this admin

    http://www.interswitchng.com/admin/login.aspx

    this is my YIM linda_las_7006 at yahoo dot com
  5. Ivan Domitrov Feb 28, 2010
    Sucard, this is not Sitefinity based website. I suggest that you should use this blog to post only questions or suggestions related to Sitefinity.
  6. yolanda Nov 14, 2010
    that was really halarious

    Leave a comment