Separating search results in multilingual websites

Separating search results in multilingual websites

Posted on November 05, 2009 0 Comments

The content you're reading is getting on in years
This post is on the older side and its content may be out of date.
Be sure to visit our blogs homepage for our latest news, updates and information.

If you have a bilingual or multilingual Sitefinity based website that uses standard SearchBox and SearchResults controls with reference to all pages you will see that the SearchResults control will return all ResulItems no matter of the culture you use. So it will be not useful for my English speaking visitors to see dutch result items in the list. You can easily get the current culture and "filter" the ResultItems that will be shown.

 

1. Locate the template of ResultItems control - SearchResult.ascx under ~/Sitefinity/ControlTemplates/Search.

2. I have to create a code behind of this template and subscribe for the ItemDataBound event of the repeater that lists all items. Then I am getting the current culture and hiding all items( cms pages) with culture different than the current.

protected void Page_Load(object sender, EventArgs e)  
    {  
        this.rptResults.ItemCreated += new RepeaterItemEventHandler(rptResults_ItemCreated);  
    }  
  
    void rptResults_ItemCreated(object sender, RepeaterItemEventArgs e)  
    {  
        if (e.Item.ItemType == ListItemType.Item   
            || e.Item.ItemType == ListItemType.AlternatingItem)  
        {  
            var item = e.Item.DataItem as ResultItem;  
            if (item != null)  
            {  
                CultureInfo itemCulture = null;  
                string url = UrlHelper.UnresolveLanguageUrl(item.Url, out itemCulture);  
                if (itemCulture != null && itemCulture != CultureInfo.CurrentUICulture)  
                {  
                    e.Item.Visible = false;  
                }  
            }  
        }  
    }  
progress-logo

The Progress Team

View all posts from The Progress Team on the Progress blog. Connect with us about all things application development and deployment, data integration and digital business.

Comments

Comments are disabled in preview mode.
Topics

Sitefinity Training and Certification Now Available.

Let our experts teach you how to use Sitefinity's best-in-class features to deliver compelling digital experiences.

Learn More
Latest Stories
in Your Inbox

Subscribe to get all the news, info and tutorials you need to build better business apps and sites

Loading animation