logo

Get in touch

Awesome Image Awesome Image

Liferay July 12, 2023

The Ultimate Guide to Passing Query Parameters in the Search Blueprint

Written by Mahipalsinh Rana

1.6K

The Ultimate Guide to Passing Query Parameters in the Search

Introduction:

In this documentation, we will explain how we are fetching the query parameter from the request to add the value to the custom parameter of the search context, which is accessible in the condition values of our sample search blueprint.

Below are the steps we have taken to achieve this:

  • We have created a sample blueprint. In this blueprint, we have created a parameter in the parameter configuration, and the value of this parameter is compared to the query’s condition.

parameter configuration

Below is the condition that we are comparing for the custom parameter in our sample blueprint.

custom parameter

custom parameter search blueprint

  • To create this  parameter and pass its value to the blueprint, we have overridden PortletSharedSearchContributor by creating my custom module CustomBlueprintParameterContributorPortletSharedSearchContributor
  • We have added a condition to pass the custom.orderBy parameter from this module in the searchContext object on the basis of the query parameter value.

 The added code snippet:

ThemeDisplay themeDisplay =
portletSharedSearchSettings.getThemeDisplay();

if(themeDisplay.getRequest().getParameter(“orderBy”) != null) {
if (themeDisplay.getRequest().getParameter(“orderBy”).equals(“newest”)) {
searchRequestBuilder.withSearchContext(
searchContext -> {
searchContext.setAttribute(
“custom.orderBy”, “newest”);
}
);
}
if (themeDisplay.getRequest().getParameter(“orderBy”).equals(“oldest”)) {
searchRequestBuilder.withSearchContext(
searchContext -> {
searchContext.setAttribute(
“custom.orderBy”, “oldest”);
}
);
}
}

  • Integrate the custom portlet into the search page where you want to apply the search changes

  • Select the blueprint in which we are passing the custom parameter

When we are passing the query parameter orderBy as newest it is compared in the blueprint and gives the desired result. OrElse passing the query parameter orderBy as oldest gives the desired effect as given in the sample blueprint.

After completing these steps, we have achieved the following result:

Conclusion

In this blog, we have provided a comprehensive guide on passing query parameters in the search blueprint. We can dynamically adjust the search results based on the query parameter values by leveraging custom parameters and condition values in the blueprint. Overall, this guide empowers developers to effectively pass query parameters into the search blueprint, enabling greater flexibility and control over the search results presented to users.

Bringing Software Development Expertise to Every
Corner of the World

United States

India

Germany

United Kingdom

Canada

Singapore

Australia

New Zealand

Dubai

Qatar

Kuwait

Finland

Brazil

Netherlands

Ireland

Japan

Kenya

South Africa