Customize the label of the search button in multisite

Overview

This article describes how to customize the label of the search buttons on the different sites in your multiple site project. There are two approaches for customizing the label – you can hard-code the label for each site and you can dynamically change the label via the Labels & Messages page.

The two approaches below assume that you have three sites, named FirstSite, SecondSite, and ThirdSite. You want the search button label to be different on all sites:

  • FirstSite – the standard label Search
  • SecondSite – custom labeled Search2
  • ThirsdSite – custom label Seach3

Procedure

To display different text in different search buttons, you must create a custom search widget.
Perform the following:

  1. Open your project in Visual studio.
  2. In the context menu of SitefinityWebApp, click Add » New Item…
  3. Under Visual C#, click Web » Web User Control.
  4. In Name, enter CustomButton.ascx
    You will use the file as template for the custom search widget.
  5. Inside the CustomButton.ascx, place the markup of the widget.

    EXAMPLE: For more information about the contents of the file, see the CustomButton.ascx in Sitefinity documentation-samples on GitHub.

  6. Register the custom widget template for search box widget by mapping the newly created widget to the standard Search widget.
    Perform the following:
    1. In the backend, click Administration » Settings » Advanced » Controls » ViewMap » Create new.
    2. In Host, enter Telerik.Sitefinity.Services.Search.Web.UI.Public.SearchBox
    3. In LayoutTemplate, enter ~/CustomButton.ascx
    4. Save your changes.
  7. Use one of the following approaches to display the custom button label.

Hard-code the label of the search button

For each site, you can hard-code different search button label.
Perform the following:

  1. Open your project in Visual Studio.
  2. Add and register a user widget, following procedure Tutorial: Customize the label of the search button in a multiple site project.
  3. In the CustomButton.ascx.cs file, use the MultisiteContext and SystemManager classes to check a site by its name and hard-code the label of the search button, depending on the current site where the widget is rendered on.

    EXAMPLE: For more information about the contents of the file, see the CustomButton.ascx.cs in Sitefinity documentation-samples on GitHub.

  4. Build your solution and restart the application.

When you place the standard Search widget on a page from FirstSite, it displayes label Search; when you place it on a page from SecondSite, it displayes label Search2; when you place it on ThirdSite, it displayes label Search3.

Dynamically set the label of the search button

You can also set the labels of the search button on each site dynamically, via the Labels & Messages page.

To do this, for each site, you must create one resource class to hold the label.

Perform the following:

  1. Open your project in Visual Studio.
  2. Add and register a user widget, following procedure Tutorial: Customize the label of the search button in a multiple site project.
  3. In SietfinityWebApp, create two resource classes.
    Perform the following:
    1. Install Sitefinity CMS VSIX.
      For more information, see Sitefinity CMS VSIX.
    2. In the context menu of SitefinityWebApp, click Add » Sitefinity » Add new Resource package.
    3. Name the first class SiteSpecificSearchButtonResources2.cs
    4. Create another resource class and name it SiteSpecificSearchButtonResources3.cs
  4. Open SiteSpecificSearchButtonResources2.cs and enter the following code:
  5. Open SiteSpecificSearchButtonResources3.cs and enter the following code:
  6. Register the custom resource classes in the Global.asax file.
    The file must look in the following way:

    NOTE: If you do not have a Global.asax file added to your project, you can add it by opening the context menu of SitefinityWebApp and clicking Add » New Item… » Visual C# » Web » Global Application Class.
    If you already have a Global.asax file, you must merge it with the one above.

  7. Build your solution and restart the application.
  8. In the backend, click Administration » Labels & Messages.
  9. Search for SearchBoxText2 and enter Search2
  10. Search for SearchBoxText3 and enter Search3

When you place the standard Search widget on a page from FirstSite, it displayes label Search; when you place it on a page from SecondSite, it displayes label Search2; when you place it on ThirdSite, it displayes label Search3.

Was this article helpful?