Added very basic forum functionality
This commit is contained in:
parent
0649408e60
commit
1af3a30c2a
216
src/KekRozsak/FrontBundle/Entity/ForumPost.php
Normal file
216
src/KekRozsak/FrontBundle/Entity/ForumPost.php
Normal file
@ -0,0 +1,216 @@
|
||||
<?php
|
||||
|
||||
namespace KekRozsak\FrontBundle\Entity;
|
||||
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
|
||||
/**
|
||||
* KekRozsak\FrontBundle\Entity\ForumPost
|
||||
*/
|
||||
class ForumPost
|
||||
{
|
||||
/**
|
||||
* @var integer $id
|
||||
*/
|
||||
private $id;
|
||||
|
||||
/**
|
||||
* @var datetime $created_at
|
||||
*/
|
||||
private $created_at;
|
||||
|
||||
/**
|
||||
* @var datetime $updated_at
|
||||
*/
|
||||
private $updated_at;
|
||||
|
||||
/**
|
||||
* @var string $update_reason
|
||||
*/
|
||||
private $update_reason;
|
||||
|
||||
/**
|
||||
* @var text $text
|
||||
*/
|
||||
private $text;
|
||||
|
||||
/**
|
||||
* @var KekRozsak\FrontBundle\Entity\User
|
||||
*/
|
||||
private $created_by;
|
||||
|
||||
/**
|
||||
* @var KekRozsak\FrontBundle\Entity\User
|
||||
*/
|
||||
private $updated_by;
|
||||
|
||||
/**
|
||||
* @var KekRozsak\FrontBundle\Entity\ForumTopic
|
||||
*/
|
||||
private $topic;
|
||||
|
||||
|
||||
/**
|
||||
* Get id
|
||||
*
|
||||
* @return integer
|
||||
*/
|
||||
public function getId()
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set created_at
|
||||
*
|
||||
* @param datetime $createdAt
|
||||
* @return ForumPost
|
||||
*/
|
||||
public function setCreatedAt($createdAt)
|
||||
{
|
||||
$this->created_at = $createdAt;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get created_at
|
||||
*
|
||||
* @return datetime
|
||||
*/
|
||||
public function getCreatedAt()
|
||||
{
|
||||
return $this->created_at;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set updated_at
|
||||
*
|
||||
* @param datetime $updatedAt
|
||||
* @return ForumPost
|
||||
*/
|
||||
public function setUpdatedAt($updatedAt)
|
||||
{
|
||||
$this->updated_at = $updatedAt;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get updated_at
|
||||
*
|
||||
* @return datetime
|
||||
*/
|
||||
public function getUpdatedAt()
|
||||
{
|
||||
return $this->updated_at;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set update_reason
|
||||
*
|
||||
* @param string $updateReason
|
||||
* @return ForumPost
|
||||
*/
|
||||
public function setUpdateReason($updateReason)
|
||||
{
|
||||
$this->update_reason = $updateReason;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get update_reason
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getUpdateReason()
|
||||
{
|
||||
return $this->update_reason;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set text
|
||||
*
|
||||
* @param text $text
|
||||
* @return ForumPost
|
||||
*/
|
||||
public function setText($text)
|
||||
{
|
||||
$this->text = $text;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get text
|
||||
*
|
||||
* @return text
|
||||
*/
|
||||
public function getText()
|
||||
{
|
||||
return $this->text;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set created_by
|
||||
*
|
||||
* @param KekRozsak\FrontBundle\Entity\User $createdBy
|
||||
* @return ForumPost
|
||||
*/
|
||||
public function setCreatedBy(\KekRozsak\FrontBundle\Entity\User $createdBy = null)
|
||||
{
|
||||
$this->created_by = $createdBy;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get created_by
|
||||
*
|
||||
* @return KekRozsak\FrontBundle\Entity\User
|
||||
*/
|
||||
public function getCreatedBy()
|
||||
{
|
||||
return $this->created_by;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set updated_by
|
||||
*
|
||||
* @param KekRozsak\FrontBundle\Entity\User $updatedBy
|
||||
* @return ForumPost
|
||||
*/
|
||||
public function setUpdatedBy(\KekRozsak\FrontBundle\Entity\User $updatedBy = null)
|
||||
{
|
||||
$this->updated_by = $updatedBy;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get updated_by
|
||||
*
|
||||
* @return KekRozsak\FrontBundle\Entity\User
|
||||
*/
|
||||
public function getUpdatedBy()
|
||||
{
|
||||
return $this->updated_by;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set topic
|
||||
*
|
||||
* @param KekRozsak\FrontBundle\Entity\ForumTopic $topic
|
||||
* @return ForumPost
|
||||
*/
|
||||
public function setTopic(\KekRozsak\FrontBundle\Entity\ForumTopic $topic = null)
|
||||
{
|
||||
$this->topic = $topic;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get topic
|
||||
*
|
||||
* @return KekRozsak\FrontBundle\Entity\ForumTopic
|
||||
*/
|
||||
public function getTopic()
|
||||
{
|
||||
return $this->topic;
|
||||
}
|
||||
}
|
@ -240,4 +240,35 @@ class ForumTopic
|
||||
{
|
||||
return $this->topic_group;
|
||||
}
|
||||
/**
|
||||
* @var \Doctrine\Common\Collections\ArrayCollection
|
||||
*/
|
||||
private $posts;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->posts = new \Doctrine\Common\Collections\ArrayCollection();
|
||||
}
|
||||
|
||||
/**
|
||||
* Add posts
|
||||
*
|
||||
* @param KekRozsak\FrontBundle\Entity\ForumPost $posts
|
||||
* @return ForumTopic
|
||||
*/
|
||||
public function addForumPost(\KekRozsak\FrontBundle\Entity\ForumPost $posts)
|
||||
{
|
||||
$this->posts[] = $posts;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get posts
|
||||
*
|
||||
* @return Doctrine\Common\Collections\Collection
|
||||
*/
|
||||
public function getPosts()
|
||||
{
|
||||
return $this->posts;
|
||||
}
|
||||
}
|
@ -200,4 +200,58 @@ class User implements UserInterface
|
||||
{
|
||||
return $this->password;
|
||||
}
|
||||
/**
|
||||
* @var \Doctrine\Common\Collections\ArrayCollection
|
||||
*/
|
||||
private $articles;
|
||||
|
||||
/**
|
||||
* @var \Doctrine\Common\Collections\ArrayCollection
|
||||
*/
|
||||
private $forum_posts;
|
||||
|
||||
|
||||
/**
|
||||
* Add articles
|
||||
*
|
||||
* @param KekRozsak\FrontBundle\Entity\Article $articles
|
||||
* @return User
|
||||
*/
|
||||
public function addArticle(\KekRozsak\FrontBundle\Entity\Article $articles)
|
||||
{
|
||||
$this->articles[] = $articles;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get articles
|
||||
*
|
||||
* @return Doctrine\Common\Collections\Collection
|
||||
*/
|
||||
public function getArticles()
|
||||
{
|
||||
return $this->articles;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add forum_posts
|
||||
*
|
||||
* @param KekRozsak\FrontBundle\Entity\ForumPost $forumPosts
|
||||
* @return User
|
||||
*/
|
||||
public function addForumPost(\KekRozsak\FrontBundle\Entity\ForumPost $forumPosts)
|
||||
{
|
||||
$this->forum_posts[] = $forumPosts;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get forum_posts
|
||||
*
|
||||
* @return Doctrine\Common\Collections\Collection
|
||||
*/
|
||||
public function getForumPosts()
|
||||
{
|
||||
return $this->forum_posts;
|
||||
}
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
KekRozsak\FrontBundle\Entity\ForumPost:
|
||||
type: entity
|
||||
table: forum_posts
|
||||
id:
|
||||
id:
|
||||
type: integer
|
||||
generator:
|
||||
strategy: AUTO
|
||||
fields:
|
||||
created_at:
|
||||
type: datetime
|
||||
nullable: false
|
||||
updated_at:
|
||||
type: datetime
|
||||
nullable: true
|
||||
update_reason:
|
||||
type: string
|
||||
nullable: true
|
||||
text:
|
||||
type: text
|
||||
nullable: false
|
||||
manyToOne:
|
||||
created_by:
|
||||
targetEntity: User
|
||||
inversedBy: forum_posts
|
||||
nullable: false
|
||||
updated_by:
|
||||
targetEntity: User
|
||||
nullable: true
|
||||
default: null
|
||||
topic:
|
||||
targetEntity: ForumTopic
|
||||
inversedBy: posts
|
@ -23,6 +23,10 @@ KekRozsak\FrontBundle\Entity\ForumTopic:
|
||||
update_reason:
|
||||
type: text
|
||||
nullable: true
|
||||
oneToMany:
|
||||
posts:
|
||||
targetEntity: ForumPost
|
||||
mappedBy: topic
|
||||
manyToOne:
|
||||
created_by:
|
||||
targetEntity: User
|
||||
|
@ -21,6 +21,15 @@ KekRozsak\FrontBundle\Entity\User:
|
||||
display_name:
|
||||
type: string(50)
|
||||
nullable: false
|
||||
oneToMany:
|
||||
articles:
|
||||
targetEntity: Article
|
||||
mappedBy: created_by
|
||||
fetch: EXTRA_LAZY
|
||||
forum_posts:
|
||||
targetEntity: ForumPost
|
||||
mappedBy: created_by
|
||||
fetch: EXTRA_LAZY
|
||||
manyToMany:
|
||||
roles:
|
||||
targetEntity: Role
|
||||
|
@ -1,5 +1,26 @@
|
||||
{% extends '::main_template.html.twig' %}
|
||||
{% block title %} - Fórum - {{ topicGroup.title }} - {{ topic.title }}{% endblock %}
|
||||
{% block content %}
|
||||
<h3>Fórum - {{ topicGroup.title }} - {{ topic.title }}</h3>
|
||||
<h3><a href="{{ path('KekRozsakFrontBundle_forum_main') }}">Fórum</a> - <a href="{{ path('KekRozsakFrontBundle_forum_topic_list', { topicGroupSlug: topicGroup.slug }) }}">{{ topicGroup.title }}</a> - {{ topic.title }}</h3>
|
||||
{% if topic.posts|length > 0 %}
|
||||
<table>
|
||||
<thead>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for post in topic.posts %}
|
||||
<tr>
|
||||
<td>
|
||||
{{ post.createdBy.displayName }}<br />
|
||||
{{ post.createdAt|date('Y-m-d H:i') }}<br />
|
||||
Admin<br />
|
||||
Tagság kezdete: {{ post.createdBy.RegisteredAt|date('Y-m-d') }}
|
||||
</td>
|
||||
<td>{{ post.text }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% else %}
|
||||
A témában még nincsenek hozzászólások.
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
@ -6,21 +6,26 @@
|
||||
<table id="temakor-lista">
|
||||
<thead>
|
||||
<tr>
|
||||
<td><a href="{{ path('KekRozsakFrontBundle_forum_topic_list', {topicGroupSlug: topicGroup.slug}) }}">{{ topicGroup.title }}</a></td>
|
||||
<td></td>
|
||||
<td colspan="2"><a href="{{ path('KekRozsakFrontBundle_forum_topic_list', {topicGroupSlug: topicGroup.slug}) }}">{{ topicGroup.title }}</a></td>
|
||||
<td>Témák száma</td>
|
||||
<td>Hozzászólások száma</td>
|
||||
<td>Utolsó hozzászólás</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% if topicGroup.topics|length > 0 %}
|
||||
{% for topic in topicGroup.topics %}
|
||||
<tr>
|
||||
<td>[]</td>
|
||||
<td><a href="{{ path('KekRozsakFrontBundle_forum_post_list', {topicGroupSlug: topicGroup.slug, topicSlug: topic.slug}) }}">{{ topic.title }}</a></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
<tr>
|
||||
<td colspan="2">Ebben a kategóriában nincsenek témák</td>
|
||||
<td colspan="4">Ebben a kategóriában nincsenek témák</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
</tbody>
|
||||
|
@ -1,7 +1,7 @@
|
||||
{% extends '::main_template.html.twig' %}
|
||||
{% block title %} - Fórum - {{ topicGroup.title }}{% endblock %}
|
||||
{% block content %}
|
||||
<h3>Fórum - {{ topicGroup.title }}</h3>
|
||||
<h3><a href="{{ path('KekRozsakFrontBundle_forum_main') }}">Fórum</a> - {{ topicGroup.title }}</h3>
|
||||
{% if topicGroup.topics|length > 0 %}
|
||||
<table>
|
||||
<thead>
|
||||
|
@ -1,5 +1,6 @@
|
||||
* {
|
||||
font-family: sans-serif;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
body {
|
||||
|
Loading…
Reference in New Issue
Block a user