Skip to content

Commit d14c8a3

Browse files
authored
Support collecting the request referrer (#2)
1 parent a9707a0 commit d14c8a3

7 files changed

Lines changed: 35 additions & 2 deletions

File tree

Neolution.OrchardCoreModules.PageViewStats/Controllers/CountPageViewController.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,11 @@ public async Task<ActionResult> IndexPost(string contentItemId)
6767
pageView.RequestUserAgentString = this.Request.Headers.UserAgent.ToString();
6868
pageView.RequestUserAgentIsRobot = this.botDetector.CheckUserAgentString(pageView.RequestUserAgentString);
6969
}
70+
71+
if (settings.CollectRequestReferer)
72+
{
73+
pageView.RequestReferer = this.Request.Headers.Referer.ToString();
74+
}
7075

7176
await using var connection = this.dbConnectionAccessor.CreateConnection();
7277

Neolution.OrchardCoreModules.PageViewStats/Drivers/PageViewStatsSettingsDisplayDriver.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ public override async Task<IDisplayResult> EditAsync(PageViewStatsSettings setti
3636
m.IsEnabled = settings.IsEnabled;
3737
m.CollectUserIp = settings.CollectUserIp;
3838
m.CollectUserAgentString = settings.CollectUserAgentString;
39+
m.CollectRequestReferer = settings.CollectRequestReferer;
3940
})
4041
.Location("Content:1").OnGroup(GroupId);
4142
}
@@ -58,6 +59,7 @@ public override async Task<IDisplayResult> UpdateAsync(PageViewStatsSettings set
5859
settings.IsEnabled = model.IsEnabled;
5960
settings.CollectUserIp = model.CollectUserIp;
6061
settings.CollectUserAgentString = model.CollectUserAgentString;
62+
settings.CollectRequestReferer = model.CollectRequestReferer;
6163
}
6264

6365
return await EditAsync(settings, context);

Neolution.OrchardCoreModules.PageViewStats/Migrations.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,13 @@ public int Create()
2323

2424
return 1;
2525
}
26+
27+
public int UpdateFrom1()
28+
{
29+
SchemaBuilder.AlterTable(PageView.TableName, table => table
30+
.AddColumn<string>(nameof(PageView.RequestReferer))
31+
);
32+
33+
return 2;
34+
}
2635
}

Neolution.OrchardCoreModules.PageViewStats/Models/PageView.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,11 @@ public class PageView
1414
/// </summary>
1515
public Guid Id { get; set; } = Guid.NewGuid();
1616

17+
/// <summary>
18+
/// The <see cref="DateTimeOffset"/> when the page view was recorded.
19+
/// </summary>
20+
public DateTimeOffset CreatedUtc { get; set; }
21+
1722
/// <summary>
1823
/// The id of the content item that is recorded by the <see cref="PageView"/> instance.
1924
/// </summary>
@@ -38,7 +43,7 @@ public class PageView
3843
public bool? RequestUserAgentIsRobot { get; set; }
3944

4045
/// <summary>
41-
/// The <see cref="DateTimeOffset"/> value the task was created.
46+
/// Gets or sets the referer of the page view request.
4247
/// </summary>
43-
public DateTimeOffset CreatedUtc { get; set; }
48+
public string RequestReferer { get; set; }
4449
}

Neolution.OrchardCoreModules.PageViewStats/Settings/PageViewStatsSettings.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,6 @@ public class PageViewStatsSettings
1313
public bool CollectUserIp { get; set; }
1414

1515
public bool CollectUserAgentString { get; set; }
16+
17+
public bool CollectRequestReferer { get; set; }
1618
}

Neolution.OrchardCoreModules.PageViewStats/ViewModels/PageViewStatsSettingsViewModel.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,6 @@ public class PageViewStatsSettingsViewModel
66
public bool CollectUserIp { get; set; }
77

88
public bool CollectUserAgentString { get; set; }
9+
10+
public bool CollectRequestReferer { get; set; }
911
}

Neolution.OrchardCoreModules.PageViewStats/Views/PageViewStatsSettings.Edit.cshtml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,12 @@
2222
<label asp-for="CollectUserAgentString" class="custom-control-label">@T["Collect user agent strings of visitors"]</label>
2323
</div>
2424
<span class="hint">@T["Collecting the user agent strings may allow you to track which browsers visitors use to visit your site."]</span>
25+
</fieldset>
26+
27+
<fieldset class="form-group" asp-validation-class-for="CollectRequestReferer">
28+
<div class="custom-control custom-checkbox">
29+
<input asp-for="CollectRequestReferer" class="custom-control-input" type="checkbox" />
30+
<label asp-for="CollectRequestReferer" class="custom-control-label">@T["Collect request referer of visitors"]</label>
31+
</div>
32+
<span class="hint">@T["Collecting the request referer may allow you to track which from which website the visitors where linked to your site."]</span>
2533
</fieldset>

0 commit comments

Comments
 (0)