49 lines
1.7 KiB
Plaintext
49 lines
1.7 KiB
Plaintext
@inject IConfiguration Instellingen
|
|
@inject IWebHostEnvironment Omgeving
|
|
|
|
@* De "Download in de App Store" en "Ontdek het op Google Play"-knoppen.
|
|
|
|
Elke knop verschijnt pas als er twee dingen zijn: een adres in appsettings.json (Apps:AppStoreUrl
|
|
en Apps:GooglePlayUrl, leeg zolang de app daar niet staat) en het officiële plaatje van de winkel
|
|
in wwwroot/badges. De plaatjes tekenen we niet zelf na: Apple en Google leveren ze kant-en-klaar
|
|
aan en eisen dat ze onaangepast worden gebruikt. Zie wwwroot/badges/LEESMIJ.txt. *@
|
|
|
|
@if (_knoppen.Count > 0)
|
|
{
|
|
<div class="appknoppen">
|
|
@foreach (var knop in _knoppen)
|
|
{
|
|
<a href="@knop.Adres" target="_blank" rel="noopener" title="@knop.Titel">
|
|
<img src="@knop.Plaatje" alt="@knop.Titel" />
|
|
</a>
|
|
}
|
|
</div>
|
|
}
|
|
|
|
@code {
|
|
private readonly List<(string Adres, string Plaatje, string Titel)> _knoppen = new();
|
|
|
|
protected override void OnInitialized()
|
|
{
|
|
Voeg("Apps:AppStoreUrl", "app-store", "Download in de App Store");
|
|
Voeg("Apps:GooglePlayUrl", "google-play", "Ontdek het op Google Play");
|
|
}
|
|
|
|
private void Voeg(string instelling, string bestandsnaam, string titel)
|
|
{
|
|
var adres = Instellingen[instelling];
|
|
if (string.IsNullOrWhiteSpace(adres)) return;
|
|
|
|
// Het plaatje mag .svg of .png zijn, wat je van de winkel hebt gekregen.
|
|
foreach (var extensie in new[] { "svg", "png" })
|
|
{
|
|
var pad = $"badges/{bestandsnaam}.{extensie}";
|
|
if (Omgeving.WebRootFileProvider.GetFileInfo(pad).Exists)
|
|
{
|
|
_knoppen.Add((adres, "/" + pad, titel));
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|