protected virtual string GetTabUrl(GetContentSearchParameter param, IContentTab tab, string searchQuery) { var pagesConfiguration = SiteConfiguration.GetPagesConfiguration(param.Culture, WebsiteContext.WebsiteId); if (pagesConfiguration == null) { return(null); } var url = PageService.GetPageUrl(pagesConfiguration.SearchPageId, param.Culture); if (url == null) { return(null); } return($"{url}/{tab.UrlTitle}?{SearchRequestParams.Keywords}={HttpUtility.UrlEncode(searchQuery)}"); }
protected virtual WebsiteSearchQuery GetSearchRequestForContentTab(GetContentSearchParameter param, IContentTab tab, string searchQuery) { bool isTabActive = param.PathInfo == tab.UrlTitle; // keywords var sq = searchQuery == "*" ? "*:*" : searchQuery; string[] keywords = sq.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); // datatypes var tabTypes = tab.DataTypes.Split(',').ToList(); Type[] dataTypes = tabTypes?.Select(name => KnowTypes[name]).ToArray(); // page types var tabPageTypes = tab.PageTypes?.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries); // facets var tabFacetsToQuery = !string.IsNullOrEmpty(tab.Facets) ? tab.Facets.Split(',') : Array.Empty <string>(); var facets = isTabActive ? tabFacetsToQuery.Select(fieldName => new WebsiteSearchQueryFacet { Name = fieldName, Selections = GetFacetSelection(param, fieldName) }).ToArray() : null; // media folders var selectedMediaFolders = tab.MediaFolders != null?DataFacade.GetData <IMediaFileFolder>().Where(p => tab.MediaFolders.Contains(p.KeyPath)) .Select(i => i.GetDataEntityToken()).ToArray() : null; var sortOptions = new List <SearchQuerySortOption>(); if (isTabActive && !string.IsNullOrEmpty(param.SortDirection) && !string.IsNullOrEmpty(param.SortBy)) { var isReverted = param.SortDirection == "desc" ? true : false; sortOptions.Add(new SearchQuerySortOption(param.SortBy, isReverted, SortTermsAs.String)); } return(new WebsiteSearchQuery { Culture = param.Culture, Keywords = keywords, DataTypes = dataTypes, PageTypes = tabPageTypes, CurrentSiteOnly = param.CurrentSiteOnly, PageNumber = isTabActive ? param.CurrentPage - 1 : 0, Facets = facets, PageSize = param.PageSize, SortOptions = sortOptions, FilterByAncestorEntityTokens = selectedMediaFolders }); }
protected virtual string GetTabUrl(GetContentSearchParameter param, IContentTab tab, string searchQuery) { return($"{param.BaseUrl}/{tab.UrlTitle}?{SearchRequestParams.Keywords}={searchQuery}"); }
public static IEnumerable <IPublishedElement> GetMainContent(IContentTab that) => that.Value <IEnumerable <IPublishedElement> >("mainContent");