2016-05-03 5 views
0

Ist es möglich, die eingebauten analytischen Daten zu nutzen, um einen Repeater zu haben, der die 10 meistbesuchten Seiten/URLs zeigt?Kentco analytische Daten, die in einem Repeater verwendet werden

Idealerweise würde ich die Top 5 eines bestimmten Seitentyps in einem Repeater zeigen.

+0

Gibt es einen bestimmten Grund, warum Sie einen Repeater brauchen/brauchen? Schau dir meine aktualisierte Antwort an. Ich habe genauere Anweisungen gegeben. Ich habe dies auf meiner Website in weniger als 1 Minute getan, auch nachdem ich eine weitere Seitenvorlage hinzugefügt und eine Editorzone daraus gemacht habe. –

+1

Brenden, ich war nicht zu einem Repeater verpflichtet. Vermutlich nur zu sehr auf sie angewiesen. Und ja, die Trolle hier werden schlimmer. –

Antwort

1

In Kentico ist alles in den Datenbanktabellen vorhanden. Wenn die Informationen darin enthalten sind, können Sie einen Repeater mit benutzerdefinierter Abfrage verwenden und eine SQL-Abfrage schreiben, um das gewünschte Ergebnis zu erhalten. Ich würde eine Verbindung mit der Datenbank mit SQL-Management-Studio und stöbern, um zu sehen, ob Sie finden können, was Sie sind lo

0

Was ist mit Reporting Modul? Gehen Sie zu Berichterstellung>Web Analytics>Seitenaufrufe und wählen Sie den gewünschten Bericht. Dann können Sie Ihre Daten auf der Live-Site mit Reporting-Webparts visualisieren, z. Berichtstabelle oder Berichtstabelle. Sie können mehr über die Berichterstellung here erfahren.

EDIT: Oh, ich habe Ihre Frage zuerst missverstanden. Sie können Repeater mit benutzerdefinierter Abfrage verwenden, um Ihre obersten Seiten je nach Ihren Präferenzen auszuwählen. Sie können nach wie vor in Berichtsmodul inspirieren so zum Beispiel versuchen, wie etwas zu verwenden:

DECLARE @PaveViews TABLE 
(
    PagePath NVARCHAR(500), 
    ObjectID INT, 
    Pageviews INT, 
    Percents DECIMAL(10,2), 
    Average INT 
) 

DECLARE @Sum DECIMAL; 

SET @FromDate ={%DatabaseSchema%}.Func_Analytics_DateTrim(@FromDate,'year'); 
SET @ToDate ={%DatabaseSchema%}.Func_Analytics_EndDateTrim(@ToDate,'year'); 

SELECT @Sum = 
    SUM(HitsCount) 
    FROM Analytics_Statistics 
    INNER JOIN Analytics_YearHits ON Analytics_YearHits.HitsStatisticsID = Analytics_Statistics.StatisticsID 
    LEFT JOIN View_CMS_Tree_Joined ON View_CMS_Tree_Joined.NodeID = Analytics_Statistics.StatisticsObjectID AND StatisticsObjectCulture = DocumentCulture 
    WHERE (StatisticsSiteID = @CMSContextCurrentSiteID) 
    AND ([email protected]) 
    AND (HitsStartTime >= @FromDate) 
AND (HitsEndTime <= @ToDate) 

INSERT INTO @PaveViews (PagePath,ObjectID,PageViews,Percents) 
    SELECT TOP 100 StatsWithPath.NodeAliasPath, StatsWithPath.ObjectID, SUM(StatsWithPath.HitsCount) AS PageViews, (SUM(StatsWithPath.HitsCount)/@Sum)*100 AS Percents FROM 
    (
    SELECT 
    -- When NodeAliasPath is empty, use value from StatisticsObjectName instead. This could happed for example when document does not longer exist in one of the cultures. 
    -- In this case row can't be joined with View_CMS_Tree_Joined. 
    CASE 
     WHEN NodeAliasPath = '' OR NodeAliasPath IS NULL THEN StatisticsObjectName 
     ELSE NodeAliasPath 
    END AS NodeAliasPath, StatisticsObjectID AS ObjectID, HitsCount 
    FROM Analytics_Statistics 
    INNER JOIN Analytics_YearHits ON Analytics_YearHits.HitsStatisticsID = Analytics_Statistics.StatisticsID 
    LEFT JOIN View_CMS_Tree_Joined ON Analytics_Statistics.StatisticsObjectID = View_CMS_Tree_Joined.NodeID AND StatisticsObjectCulture = DocumentCulture 
    WHERE (StatisticsSiteID = @CMSContextCurrentSiteID) AND (HitsStartTime >= @FromDate) AND (HitsEndTime <= @ToDate) AND (StatisticsCode = @CodeName) 
) AS StatsWithPath 
    GROUP BY StatsWithPath.NodeAliasPath, StatsWithPath.ObjectID 
    ORDER BY PageViews DESC 

UPDATE @PaveViews SET Average = (SELECT SUM(HitsValue)/SUM(HitsCount) FROM Analytics_YearHits JOIN 
     Analytics_Statistics ON HitsStatisticsID = StatisticsID 
     WHERE HitsStartTime >= @FromDate AND HitsEndTime <= @ToDate AND StatisticsObjectID = objectID 
     AND StatisticsCode ='avgtimeonpage' AND StatisticsSiteID = @CMSContextCurrentSiteID 
     ) 

SELECT PagePath AS '{$reports_pageviews_Year.path_header$}',pageviews AS '{$reports_pageviews_Year.hits_header$}', 
     CAST (Percents AS NVARCHAR(10))+'%' AS '{$reports_pageviews.percent_header$}', ISNULL(CONVERT(varchar, DATEADD(s, average, 0), 108),'00:00:00') AS '{$reports_pageviews.average$}' 

    FROM @PaveViews ORDER BY PageViews DESC 

für Seitenaufrufe für das letzte Jahr (coppied aus Seitenaufrufen - Jahresbericht).

0

Sie können das Widget Berichtstabelle zu Ihrer Seite hinzufügen und den Bericht TOP 10 Seiten auswählen, der auf Ihrer Seite angezeigt wird. Wenn Sie die Top-10-Seiten nicht möchten, gehen Sie in das Reporting-Modul, suchen Sie den TOP 10-Bericht und fügen Sie dem Tabellenabschnitt TOP 5 eine weitere Abfrage hinzu, nehmen Sie Ihre Änderungen vor und speichern Sie sie. Gehe dann zurück zu deinem Widget und wähle den neuen Bericht aus.

+0

Lustig, wie Sie schnell down-abstimmen, aber geben Sie keinen Grund, warum wie SO besagt, dass Sie sollten. Internet Trolle ... –

+0

Ich werde später später daran arbeiten Danke nochmal! –

0

Die Antworten hier sind richtig. Wenn Sie jedoch etwas einfacher haben möchten, versuchen Sie es mit der folgenden Abfrage in Kombination mit einem Repeater mit benutzerdefinierter Abfrage. Mit dieser Abfrage erhalten Sie 10 der am häufigsten besuchten Dokumente aller Zeiten auf einer bestimmten Website. Sie können diese Abfrage weiter optimieren, um sie bei Bedarf besser an Ihre Anforderungen anzupassen.

select top 10 s.StatisticsObjectName,SUM(m.HitsCount) as TotalHits from Analytics_MonthHits as m left join Analytics_Statistics as s on m.HitsStatisticsID = s.StatisticsID where s.StatisticsCode = 'pageviews' AND s.StatisticsSiteID = 1 group by s.StatisticsObjectName order by TotalHits desc 

Wenn Sie wollen auch die Ergebnisse filtern basierend auf Seitentyp Sie tun müssen, um weiter mit beispielsweise beitreten View_CMS_Tree_Joined-Ansicht. Ein Beispiel, das Sie nur 'cms.menuitem die Seiten bekommt folgt:

select top 10 s.StatisticsObjectName,SUM(m.HitsCount) as TotalHits from Analytics_MonthHits as m left join Analytics_Statistics as s on m.HitsStatisticsID = s.StatisticsID left join View_CMS_Tree_Joined as t on s.StatisticsObjectID = t.DocumentID where s.StatisticsCode = 'pageviews' AND t.ClassName = 'cms.menuitem' AND s.StatisticsSiteID = 1 group by s.StatisticsObjectName order by TotalHits desc 

ich auch diese Abfrage im SQL Management Studio, um zu versuchen würde empfehlen, so dass Sie seehow kann es funktioniert und welche Ergebnisse Sie bekommen.

Zusätzlich können Sie auch Berichtstabelle, Berichtsdiagramm oder Bericht Webparts verwenden, um einige integrierte Berichte anzuzeigen.

Verwandte Themen