Basic post page implemented.

This commit is contained in:
Alexey Skobkin 2016-03-25 01:10:10 +03:00
parent f919740524
commit f0ed72aa36
4 changed files with 89 additions and 4 deletions

View file

@ -0,0 +1,28 @@
<?php
namespace Skobkin\Bundle\PointToolsBundle\Controller;
use Skobkin\Bundle\PointToolsBundle\Entity\Blogs\Post;
use Skobkin\Bundle\PointToolsBundle\Service\UserApi;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
use Symfony\Component\HttpFoundation\Response;
class PostController extends Controller
{
/**
* @ParamConverter("post", class="SkobkinPointToolsBundle:Blogs\Post")
*
* @return Response
*/
public function showAction(Post $post)
{
$userApi = $this->container->get('skobkin_point_tools.api_user');
return $this->render('SkobkinPointToolsBundle:Post:show.html.twig', [
'post' => $post,
'avatar_url' => $userApi->getAvatarUrl($post->getAuthor(), UserApi::AVATAR_SIZE_LARGE),
]);
}
}

View file

@ -3,7 +3,7 @@ index:
defaults: { _controller: SkobkinPointToolsBundle:Main:index }
user_search:
path: /search
path: /user/search
defaults: { _controller: SkobkinPointToolsBundle:User:searchUser }
methods: [POST]
@ -14,17 +14,23 @@ user_show:
login: "[\w-]+"
users_top:
path: /top
path: /users/top
defaults: { _controller: SkobkinPointToolsBundle:User:top }
events_last:
path: /last
path: /events/last
defaults: { _controller: SkobkinPointToolsBundle:Events:last }
post_show:
path: /{id}
defaults: { _controller: SkobkinPointToolsBundle:Post:show }
requirements:
id: "[a-z]+"
api_public:
resource: "@SkobkinPointToolsBundle/Resources/config/api/public.yml"
prefix: /api/v1
api_crawler:
resource: "@SkobkinPointToolsBundle/Resources/config/api/crawler.yml"
prefix: /api/crawler
prefix: /api/crawler

View file

@ -103,3 +103,14 @@ ul.users.mosaic li:nth-child(odd) {
content: " *";
color: red;
}
a.tag {
position: relative;
display: inline-block;
margin: .8em .8em 0 0;
padding: .25em .5em;
background: #ebeef2;
/* font-size: .85em; */
color: #35587c;
text-decoration: none;
}

View file

@ -0,0 +1,40 @@
{% extends "::base.html.twig" %}
{% block title %}SkobkinPointToolsBundle:Post:show{% endblock %}
{% block content %}
<div class="container">
<div class="row">
<div class="col-xs-1">
<img src="{{ avatar_url }}" alt="Avatar">
</div>
<div class="col-xs-11">
<a href="{{ path('user_show', {'login': post.author.login}) }}">@{{ post.author.login }}</a>
</div>
</div>
<div class="row">
<div class="col-xs-12">
{{ post.text }}
</div>
</div>
<div class="row">
<div class="col-xs-12">
{% for file in post.files %}
<div class="post-attachment">
<img src="{{ file.remoteUrl }}" />
</div>
{% endfor %}
</div>
</div>
<div class="row">
<div class="col-xs-12">
{% for pt in post.postTags %}
<a href="#" class="tag">{{ pt.text }}</a>
{% endfor %}
</div>
</div>
<div class="row">
<div class="col-xs-12"><a href="https://point.im/{{ post.id }}">#{{ post.id }}</a></div>
</div>
</div>
{% endblock %}