using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using EPiServer;
using EPiServer.Core;
using EPiServer.DataAbstraction;
using EPiServer.Web.WebControls;
using System.Text.RegularExpressions;
using System.Linq;
using EPiServer.Research.DynamicContent;
namespace EPiServer.Research.DynamicContent
{
[DCPlugin(DisplayName="Referer Search",Url="~/DynContent/ReferrerSearch.ascx")]
public partial class ReferrerSearch : EPiServer.UserControlBase
{
public string Title { get; set; }
public int ResultCount { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
MainPanel.Visible = false;
//Get referer, and extract query (q=xxxx)
if (Request.UrlReferrer != null)
{
if (Request.UrlReferrer.Query != null)
{
Match m = Regex.Match(Request.UrlReferrer.Query, @"[qQ]\=(?<query>[^&\r\n]+)$?");
if (m != null)
{
//We have a winner!
MainPanel.Visible = true;
SearchSource.MaxCount = ResultCount;
SearchSource.PageLink = PageReference.StartPage;
SearchSource.SearchQuery = Server.UrlDecode(m.Groups["query"].Value);
SearchSource.Filter += new FilterEventHandler(SearchSource_Filter);
this.DataBind();
}
}
}
}
void SearchSource_Filter(object sender, EPiServer.Filters.FilterEventArgs e)
{
var p=e.Pages.Where(pd => pd.PageLink == CurrentPage.PageLink).FirstOrDefault();
if (p != null) e.Pages.Remove(p);
}
}
}