public string FindUrl(string moduleId, string Id, int ItemGroup) { BXSearchQuery q = new BXSearchQuery(); q.FieldsToSelect.Add(BXSearchField.Id); q.FieldsToSelect.Add(BXSearchField.ModuleId); q.FieldsToSelect.Add(BXSearchField.ItemId); q.FieldsToSelect.Add(BXSearchField.Body); q.FieldsToSelect.Add(BXSearchField.Title); BXSite site = BXSite.Current; BXSearchContentGroupFilter filter = new BXSearchContentGroupFilter(BXFilterExpressionCombiningLogic.And); filter.Add(new BXFormFilterItem("moduleId", moduleId, BXSqlFilterOperators.Equal)); filter.Add(new BXFormFilterItem("itemId", Id, BXSqlFilterOperators.Equal)); if (ItemGroup != 0) filter.Add(new BXFormFilterItem("itemGroup", ItemGroup, BXSqlFilterOperators.Equal)); q.Filter = filter; BXSearchResultCollection coll = q.Execute(); if (coll.Count > 0) { BXSearchResult r = coll[0]; if (r.Urls.Length > 0 && r.Urls[0].Length > 0) return r.Urls[0]; else return string.Empty; } else return string.Empty; }
public override void RenderControl(HtmlTextWriter writer) { string postId = Attributes["PostID"], postTitle = Attributes["PostTitle"]; string postUrl = string.Empty; BXSearchQuery q = new BXSearchQuery(); q.FieldsToSelect.Add(BXSearchField.Id); q.FieldsToSelect.Add(BXSearchField.ModuleId); q.FieldsToSelect.Add(BXSearchField.ItemId); q.FieldsToSelect.Add(BXSearchField.Body); q.FieldsToSelect.Add(BXSearchField.Title); q.FieldsToSelect.Add(BXSearchField.Param1); q.FieldsToSelect.Add(BXSearchField.Param2); BXSearchContentGroupFilter f = new BXSearchContentGroupFilter(BXFilterExpressionCombiningLogic.And); f.Add(new BXFormFilterItem("moduleId", "blog", BXSqlFilterOperators.Equal)); f.Add(new BXFormFilterItem("itemId", "p" + postId, BXSqlFilterOperators.Equal)); q.Filter = f; BXSearchResultCollection c = q.Execute(); if (c.Count > 0) postUrl = c.Count > 0 && c[0].Urls.Length > 0 ? c[0].Urls[0] : string.Empty; if(postUrl.Length > 0) writer.WriteLine(@"<a target=""_blank"" href=""" + HttpUtility.HtmlAttributeEncode(postUrl) + @""">" + HttpUtility.HtmlEncode(postTitle) + @"</a>"); else writer.WriteLine(HttpUtility.HtmlEncode(postTitle)); }
protected List<BXSearchResult> SearchItems(string ModuleId, string searchQuery) { BXSearchQuery q = new BXSearchQuery(); q.FieldsToSelect.Add(BXSearchField.Id); q.FieldsToSelect.Add(BXSearchField.ModuleId); q.FieldsToSelect.Add(BXSearchField.ItemId); q.FieldsToSelect.Add(BXSearchField.Body); q.FieldsToSelect.Add(BXSearchField.Title); q.PagingOptions = new BXPagingOptions(0, int.MaxValue); BXSite site = BXSite.Current; List<BXSearchResult> result = new List<BXSearchResult>(); q.QueryExpression = new BXSearchExpression(site.LanguageId, searchQuery); q.Filter = new BXSearchContentGroupFilter( new BXFormFilter(new BXFormFilterItem("moduleId", ModuleId, BXSqlFilterOperators.Equal)) ); foreach (BXSearchResult r in q.Execute()) result.Add(r); return result.Count > 0 ? result : null; }