#133 fixed
This commit is contained in:
parent
493edd8cb5
commit
1560e02f03
@ -36,7 +36,7 @@
|
||||
</div>
|
||||
<div id="title2" style="display: table-row">
|
||||
<p style="width:100%;height:25%;text-align:center;vertical-align: middle;font-family: 'Vazir';display: table-cell;font-size: 1.5em;text-shadow: 2px 2px 4px white;">
|
||||
@for(int i = 1; i< Model.Poem.Category.Cat.Ancestors.Count; i++)
|
||||
@for (int i = 1; i < Model.Poem.Category.Cat.Ancestors.Count; i++)
|
||||
{
|
||||
<text>
|
||||
@Model.Poem.Category.Cat.Ancestors.ElementAt(i).Title »
|
||||
@ -135,7 +135,7 @@
|
||||
|
||||
|
||||
<p style="font-family: 'Vazir';font-size: 1em">
|
||||
فایل صوتی متناظر را میتوانید در قالب mp3 از <a href="@Model.Recitation.Mp3Url" download>این نشانی</a> (اندازه @Html.Raw( $"{(Model.Recitation.Mp3SizeInBytes / (1024.0*1024.0)):0.00}".ToPersianNumbers()) مگابایت) دریافت کنید.
|
||||
فایل صوتی متناظر را میتوانید در قالب mp3 از <a href="@Model.Recitation.Mp3Url" download>این نشانی</a> (اندازه @Html.Raw($"{(Model.Recitation.Mp3SizeInBytes / (1024.0 * 1024.0)):0.00}".ToPersianNumbers()) مگابایت) دریافت کنید.
|
||||
</p>
|
||||
|
||||
<p style="font-family: 'Vazir';font-size: 1em">
|
||||
@ -149,8 +149,8 @@
|
||||
<script src="~/dist/add-on/jplayer.playlist.min.js"></script>
|
||||
<script>
|
||||
var verses = [];
|
||||
|
||||
@{
|
||||
|
||||
@{
|
||||
<text>
|
||||
@Html.Raw($" var normaltext = { (Model.Poem.Verses.Where(v => v.VersePosition == RMuseum.Models.Ganjoor.VersePosition.Paragraph).Any() ? "true" : "false") }")
|
||||
</text>
|
||||
@ -285,7 +285,7 @@
|
||||
|
||||
|
||||
//<![CDATA[
|
||||
$(document).ready(function () {
|
||||
$(document).ready(function () {
|
||||
|
||||
prepareclip('@Html.Raw($"https://ganjgah.ir/api/audio/file/{Model.Recitation.Id}.xml")', '@Model.Recitation.AudioTitle',
|
||||
'به خوانش @Model.Recitation.AudioArtist', '', '@Model.Recitation.Mp3Url', verses);
|
||||
@ -294,5 +294,21 @@
|
||||
});
|
||||
//]]>
|
||||
</script>
|
||||
|
||||
@if (!string.IsNullOrEmpty(ViewData["GoogleAnalyticsCode"].ToString()))
|
||||
{
|
||||
<script>
|
||||
(function (i, s, o, g, r, a, m) {
|
||||
i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () {
|
||||
(i[r].q = i[r].q || []).push(arguments)
|
||||
}, i[r].l = 1 * new Date(); a = s.createElement(o),
|
||||
m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m)
|
||||
})(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga');
|
||||
|
||||
ga('create', '@ViewData["GoogleAnalyticsCode"]', 'auto');
|
||||
ga('send', 'pageview');
|
||||
|
||||
</script>
|
||||
}
|
||||
</body>
|
||||
</html>
|
||||
@ -2,6 +2,7 @@ using System.Net.Http;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.AspNetCore.Mvc.RazorPages;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Newtonsoft.Json;
|
||||
using RMuseum.Models.Ganjoor.ViewModels;
|
||||
using RMuseum.Models.GanjoorAudio.ViewModels;
|
||||
@ -15,13 +16,21 @@ namespace GanjooRazor.Pages
|
||||
/// </summary>
|
||||
private readonly HttpClient _httpClient;
|
||||
|
||||
/// <summary>
|
||||
/// configration file reader (appsettings.json)
|
||||
/// </summary>
|
||||
private readonly IConfiguration _configuration;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// constructor
|
||||
/// </summary>
|
||||
/// <param name="httpClient"></param>
|
||||
public AudioClipModel(HttpClient httpClient)
|
||||
/// <param name="configuration"></param>
|
||||
public AudioClipModel(HttpClient httpClient, IConfiguration configuration)
|
||||
{
|
||||
_httpClient = httpClient;
|
||||
_configuration = configuration;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -41,6 +50,8 @@ namespace GanjooRazor.Pages
|
||||
return BadRequest();
|
||||
}
|
||||
|
||||
ViewData["GoogleAnalyticsCode"] = _configuration["GoogleAnalyticsCode"];
|
||||
|
||||
var response = await _httpClient.GetAsync($"{APIRoot.Url}/api/audio/published/{Request.Query["a"]}");
|
||||
response.EnsureSuccessStatusCode();
|
||||
|
||||
|
||||
@ -124,24 +124,24 @@
|
||||
|
||||
@if (Model.Poems == null)
|
||||
{
|
||||
<div class="poem">
|
||||
<h2>شعری با مشخصات مورد نظر شما پیدا نشد.</h2>
|
||||
<p>
|
||||
<strong>توصیههایی برای دستیابی به نتیجهٔ مطلوبتر در جستجو:</strong>
|
||||
</p>
|
||||
<p>
|
||||
الف) <strong>به جای جستجوی متن کامل یک بیت بهتر است حروف کلیدی آن را وارد کنید.</strong> از آنجا که اشعار به صورتهای مختلف در نسخههای متفاوت نقل شدهاند ممکن است چیزی که شما در ذهن دارید با چیزی که در پایگاه ما ثبت شده متفاوت باشد. به عنوان نمونه مصرع «کشتی شکستگانیم ای باد شرطه برخیز» از حافظ در بعضی از نسخهها به صورت «کشتی نشستگانیم ای باد شرطه برخیز» ضبط شده و شما با تایپ صورت صورت دوم آن را در گنجور نخواهید یافت. بهتر است برای یافتن این شعر کلماتی مانند کشتی و شرطه را جستجو کنیم.
|
||||
</p>
|
||||
<p>
|
||||
ب) کلماتی را که ممکن است به صورت جدا یا سر هم نوشته شوند در گام اول به صورت جدا امتحان کنید (<strong>می شود</strong> و نه <del>میشود</del> یا <del>میشود</del>).
|
||||
</p>
|
||||
<p>
|
||||
ج) در صورتی که نام شاعر را میدانید بهتر است از طریق لیست بازشوی جلوی جعبهٔ جستجو نام او را انتخاب کنید. این توصیه برای زمانی مناسب است که جستجوی عبارت مورد نظر شما باعث میشود آثار شاعرانی که مورد نظر شما نیستند در صدر نتایج قرار گیرد و به این وسیله شما میخواهید به فهرست محدودتری از نتایج دست پیدا کنید.
|
||||
</p>
|
||||
<p>
|
||||
د) در صورتی که با فنون اولیهٔ جستجو آشنا نیستید یا <strong>معمولاً جستجوهایتان به نتیجهٔ مطلوب نمیرسد</strong> بد نیست نگاهی به <a href="http://hrmoh.ir/1385/04/18/howto-search-better/" title="توصیه هایی برای جستجوی بهتر در اینترنت">این نوشته</a> بیندازید.
|
||||
</p>
|
||||
</div>
|
||||
<div class="poem">
|
||||
<h2>شعری با مشخصات مورد نظر شما پیدا نشد.</h2>
|
||||
<p>
|
||||
<strong>توصیههایی برای دستیابی به نتیجهٔ مطلوبتر در جستجو:</strong>
|
||||
</p>
|
||||
<p>
|
||||
الف) <strong>به جای جستجوی متن کامل یک بیت بهتر است حروف کلیدی آن را وارد کنید.</strong> از آنجا که اشعار به صورتهای مختلف در نسخههای متفاوت نقل شدهاند ممکن است چیزی که شما در ذهن دارید با چیزی که در پایگاه ما ثبت شده متفاوت باشد. به عنوان نمونه مصرع «کشتی شکستگانیم ای باد شرطه برخیز» از حافظ در بعضی از نسخهها به صورت «کشتی نشستگانیم ای باد شرطه برخیز» ضبط شده و شما با تایپ صورت صورت دوم آن را در گنجور نخواهید یافت. بهتر است برای یافتن این شعر کلماتی مانند کشتی و شرطه را جستجو کنیم.
|
||||
</p>
|
||||
<p>
|
||||
ب) کلماتی را که ممکن است به صورت جدا یا سر هم نوشته شوند در گام اول به صورت جدا امتحان کنید (<strong>می شود</strong> و نه <del>میشود</del> یا <del>میشود</del>).
|
||||
</p>
|
||||
<p>
|
||||
ج) در صورتی که نام شاعر را میدانید بهتر است از طریق لیست بازشوی جلوی جعبهٔ جستجو نام او را انتخاب کنید. این توصیه برای زمانی مناسب است که جستجوی عبارت مورد نظر شما باعث میشود آثار شاعرانی که مورد نظر شما نیستند در صدر نتایج قرار گیرد و به این وسیله شما میخواهید به فهرست محدودتری از نتایج دست پیدا کنید.
|
||||
</p>
|
||||
<p>
|
||||
د) در صورتی که با فنون اولیهٔ جستجو آشنا نیستید یا <strong>معمولاً جستجوهایتان به نتیجهٔ مطلوب نمیرسد</strong> بد نیست نگاهی به <a href="http://hrmoh.ir/1385/04/18/howto-search-better/" title="توصیه هایی برای جستجوی بهتر در اینترنت">این نوشته</a> بیندازید.
|
||||
</p>
|
||||
</div>
|
||||
}
|
||||
else
|
||||
foreach (var poem in Model.Poems)
|
||||
@ -184,6 +184,22 @@
|
||||
<script src="/js/be.js"></script>
|
||||
<script src="/js/vaabd.js"></script>
|
||||
|
||||
@if (!string.IsNullOrEmpty(ViewData["GoogleAnalyticsCode"].ToString()))
|
||||
{
|
||||
<script>
|
||||
(function (i, s, o, g, r, a, m) {
|
||||
i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () {
|
||||
(i[r].q = i[r].q || []).push(arguments)
|
||||
}, i[r].l = 1 * new Date(); a = s.createElement(o),
|
||||
m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m)
|
||||
})(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga');
|
||||
|
||||
ga('create', '@ViewData["GoogleAnalyticsCode"]', 'auto');
|
||||
ga('send', 'pageview');
|
||||
|
||||
</script>
|
||||
}
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
@ -12,6 +12,7 @@ using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.AspNetCore.Mvc.RazorPages;
|
||||
using Microsoft.Extensions.Caching.Memory;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using RMuseum.Models.Auth.Memory;
|
||||
@ -36,14 +37,23 @@ namespace GanjooRazor.Pages
|
||||
/// </summary>
|
||||
private readonly IMemoryCache _memoryCache;
|
||||
|
||||
/// <summary>
|
||||
/// configration file reader (appsettings.json)
|
||||
/// </summary>
|
||||
private readonly IConfiguration _configuration;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// constructor
|
||||
/// </summary>
|
||||
/// <param name="httpClient"></param>
|
||||
public SearchModel(HttpClient httpClient, IMemoryCache memoryCache)
|
||||
/// <param name="memoryCache"></param>
|
||||
/// <param name="configuration"></param>
|
||||
public SearchModel(HttpClient httpClient, IMemoryCache memoryCache, IConfiguration configuration)
|
||||
{
|
||||
_httpClient = httpClient;
|
||||
_memoryCache = memoryCache;
|
||||
_configuration = configuration;
|
||||
}
|
||||
|
||||
public List<GanjoorPoetViewModel> Poets { get; set; }
|
||||
@ -100,6 +110,8 @@ namespace GanjooRazor.Pages
|
||||
PoetId = string.IsNullOrEmpty(Request.Query["author"]) ? 0 : int.Parse(Request.Query["author"]);
|
||||
CatId = string.IsNullOrEmpty(Request.Query["cat"]) ? 0 : int.Parse(Request.Query["cat"]);
|
||||
|
||||
ViewData["GoogleAnalyticsCode"] = _configuration["GoogleAnalyticsCode"];
|
||||
|
||||
//todo: use html master layout or make it partial
|
||||
// 1. poets
|
||||
await preparePoets();
|
||||
|
||||
@ -26,5 +26,21 @@
|
||||
</p>
|
||||
</div>
|
||||
<script type="text/javascript" src="https://c.ganjoor.net/beyt.php"></script>
|
||||
|
||||
@if (!string.IsNullOrEmpty(ViewData["GoogleAnalyticsCode"].ToString()))
|
||||
{
|
||||
<script>
|
||||
(function (i, s, o, g, r, a, m) {
|
||||
i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () {
|
||||
(i[r].q = i[r].q || []).push(arguments)
|
||||
}, i[r].l = 1 * new Date(); a = s.createElement(o),
|
||||
m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m)
|
||||
})(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga');
|
||||
|
||||
ga('create', '@ViewData["GoogleAnalyticsCode"]', 'auto');
|
||||
ga('send', 'pageview');
|
||||
|
||||
</script>
|
||||
}
|
||||
</body>
|
||||
</html>
|
||||
@ -1,16 +1,27 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.AspNetCore.Mvc.RazorPages;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
|
||||
namespace GanjooRazor.Pages
|
||||
{
|
||||
public class randomModel : PageModel
|
||||
{
|
||||
/// <summary>
|
||||
/// configration file reader (appsettings.json)
|
||||
/// </summary>
|
||||
private readonly IConfiguration _configuration;
|
||||
|
||||
/// <summary>
|
||||
/// constructor
|
||||
/// </summary>
|
||||
/// <param name="configuration"></param>
|
||||
public randomModel(IConfiguration configuration)
|
||||
{
|
||||
_configuration = configuration;
|
||||
}
|
||||
|
||||
public void OnGet()
|
||||
{
|
||||
ViewData["GoogleAnalyticsCode"] = _configuration["GoogleAnalyticsCode"];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user