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;
    }
예제 #2
0
	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));
	}
예제 #3
0
    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;
    }