获取页数

时间:2012-04-26 10:30:58

标签: sitecore sitecore6 sitecore-dms

我正在使用Sitecore 6.5开发网站

其中一项要求是在右上角显示5个最受欢迎的页面。

为此,我想到使用Analytic报告用于页数的函数。

我想知道是否可以使用Analytics API Sitecore.Analytics

来实现

如果是这样,我可以使用一些代码片段,因为我完全迷失了。

3 个答案:

答案 0 :(得分:4)

我知道这已经回答了,但为什么不直接使用PageDataTable进行查询?我做了这样的事情:

 public static Dictionary<Item, int> GetVisitsCountForItem(Item item)
    {
        Sitecore.Analytics.Data.DataAccess.DataSets.VisitorDataSet.PagesDataTable pagesDataTable = new VisitorDataSet.PagesDataTable();
        var pageViews = pagesDataTable.Select(p => p.ItemId == item.ID.Guid);
        var dic = new Dictionary<Item, int>();
        dic.Add(item, pageViews.Count());
        return dic;
    }

答案 1 :(得分:1)

以下是在DMS中执行此操作的方法:

private const string CommandText = "\r\nSELECT \r\ncount(distinct {0}VisitId{1})\r\n FROM {0}Pages{1}\r\n WHERE {0}ItemId{1} = {2}YourItemId{3}";

public static int GetPageViews(ID pageId)
{
  return DataAdapterManager.Provider.Sql.ReadOne<int>(CommandText, ReadPageViews, new object[] { "YourItemId", pageId.ToString() });
}

private static int ReadPageViews(DataProviderReader reader)
{
  return DataAdapterManager.Provider.Sql.GetInt(0, reader);
}

答案 2 :(得分:0)

您可以查看博客文章“Sitecore OMS data querying – Most viewed pages”,该文章旨在获取OMS查看次数最多的页面( DMS)。这至少可以为您提供一个起点,但您需要调整代码以匹配更新的API。