mirror of https://github.com/abpframework/abp.git
37 changed files with 10990 additions and 126 deletions
File diff suppressed because it is too large
@ -0,0 +1,93 @@ |
|||
@page |
|||
@inherits Volo.Blogging.Pages.Blog.BloggingPage |
|||
@using Volo.Blogging.Pages.Blog.Tags |
|||
@model PostsModel |
|||
@{ |
|||
} |
|||
|
|||
@section scripts { |
|||
<abp-script-bundle name="@typeof(PostsModel).FullName"> |
|||
<abp-script src="/Pages/Blog/Posts/blogcss/blog.js" /> |
|||
</abp-script-bundle> |
|||
} |
|||
@section styles { |
|||
<abp-style-bundle @*name="@typeof(DetailModel).FullName" *@> |
|||
<abp-style src="/Pages/Blog/Posts/blogcss/blog.css" /> |
|||
</abp-style-bundle> |
|||
} |
|||
|
|||
<div class="container last-post-section pb-5"> |
|||
<div class="row"> |
|||
<div class="col-md-8"> |
|||
<div class="row"> |
|||
<div class="col"> |
|||
<div class="titline"> |
|||
<h2>#@Model.TagName</h2> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
@for (var index = 0; index < Model.Posts.Count; index++) |
|||
{ |
|||
var post = Model.Posts[index]; |
|||
var oddPost = index % 2 == 1; |
|||
|
|||
<section class="box-articles"> |
|||
<div class="row @(oddPost?"align-middle":"")"> |
|||
<div class="col-md-4 order-md-@(oddPost?"last":"first")"> |
|||
<div class="img-container"> |
|||
<a asp-page="/Blog/Posts/Detail" asp-route-postUrl="@post.Url" asp-route-blogShortName="@Model.BlogShortName"> |
|||
<img src="https://placeimg.com/480/270/tech" class="box-article-img"> |
|||
</a> |
|||
<div class="user-link-icons"> |
|||
<a class="add-bookmark" href="#"> |
|||
<i class="fa fa-bookmark"></i> |
|||
</a> |
|||
<a class="share-article" href="#"> |
|||
<i class="fa fa-share-alt"></i> |
|||
</a> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="col-md-8 order-md-@(oddPost?"first":"last")"> |
|||
<p class="tags"> |
|||
@foreach (var tag in post.Tags) |
|||
{ |
|||
<a asp-page="/Blog/Tags/Posts" asp-route-blogShortName="@Model.BlogShortName" asp-route-tagName="@tag.Name" class="tag">@tag.Name</a> |
|||
} |
|||
</p> |
|||
<h3> |
|||
<a asp-page="/Blog/Posts/Detail" asp-route-postUrl="@post.Url" asp-route-blogShortName="@Model.BlogShortName">@post.Title</a> |
|||
</h3> |
|||
<p> |
|||
@(post.Content == null ? "" : (post.Content.Length > 250 ? post.Content.Substring(0, 150) : post.Content))... |
|||
</p> |
|||
<div class="article-owner"> |
|||
<div class="article-infos"> |
|||
<div class="user-card"> |
|||
<a href="#"> |
|||
<img src="https://placeimg.com/120/120/pople" class="article-avatar"> |
|||
</a> |
|||
<a href="#"> |
|||
<strong>Armağan Ünlü</strong>, @((DateTime.Today - post.CreationTime).Days) @L["DaysAgo"] |
|||
</a> |
|||
<span class="seperator">|</span> |
|||
<a href="#"> |
|||
<i class="fa fa-eye"></i> 156K |
|||
</a> |
|||
<span class="seperator">|</span> |
|||
<a href="#"> |
|||
<i class="fa fa-comment"></i> @post.CommentCount |
|||
</a> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</section> |
|||
} |
|||
|
|||
</div> |
|||
|
|||
</div> |
|||
</div> |
|||
@ -0,0 +1,34 @@ |
|||
using System.Collections.Generic; |
|||
using Microsoft.AspNetCore.Mvc; |
|||
using Microsoft.AspNetCore.Mvc.RazorPages; |
|||
using Volo.Blogging.Blogs; |
|||
using Volo.Blogging.Posts; |
|||
|
|||
namespace Volo.Blogging.Pages.Blog.Tags |
|||
{ |
|||
public class PostsModel : PageModel |
|||
{ |
|||
private readonly IPostAppService _postAppService; |
|||
private readonly IBlogAppService _blogAppService; |
|||
|
|||
[BindProperty(SupportsGet = true)] |
|||
public string BlogShortName { get; set; } |
|||
|
|||
[BindProperty(SupportsGet = true)] |
|||
public string TagName { get; set; } |
|||
|
|||
public IReadOnlyList<PostWithDetailsDto> Posts { get; set; } |
|||
|
|||
public PostsModel(IPostAppService postAppService, IBlogAppService blogAppService) |
|||
{ |
|||
_postAppService = postAppService; |
|||
_blogAppService = blogAppService; |
|||
} |
|||
|
|||
public async void OnGetAsync() |
|||
{ |
|||
var blog = await _blogAppService.GetByShortNameAsync(BlogShortName); |
|||
Posts = (await _postAppService.GetListByBlogIdAndTagName(blog.Id, TagName)).Items; |
|||
} |
|||
} |
|||
} |
|||
Loading…
Reference in new issue