Merge branch 'master' of github.com:w00d5t0ck/kekrozsak
This commit is contained in:
commit
c1532101ac
@ -24,6 +24,7 @@ class AppKernel extends Kernel
|
||||
new Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle(),
|
||||
new Io\TcpdfBundle\IoTcpdfBundle(),
|
||||
new FOS\JsRoutingBundle\FOSJsRoutingBundle(),
|
||||
new Jmikola\JsAssetsHelperBundle\JmikolaJsAssetsHelperBundle(),
|
||||
// Own bundles
|
||||
new KekRozsak\FrontBundle\KekRozsakFrontBundle(),
|
||||
new KekRozsak\SecurityBundle\KekRozsakSecurityBundle(),
|
||||
|
31
app/DoctrineMigrations/Version20120827162130.php
Normal file
31
app/DoctrineMigrations/Version20120827162130.php
Normal file
@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
namespace Application\Migrations;
|
||||
|
||||
use Doctrine\DBAL\Migrations\AbstractMigration,
|
||||
Doctrine\DBAL\Schema\Schema;
|
||||
|
||||
/**
|
||||
* Auto-generated Migration: Please modify to your need!
|
||||
*/
|
||||
class Version20120827162130 extends AbstractMigration
|
||||
{
|
||||
public function up(Schema $schema)
|
||||
{
|
||||
// this up() migration is autogenerated, please modify it to your needs
|
||||
$this->abortIf($this->connection->getDatabasePlatform()->getName() != "mysql");
|
||||
|
||||
$this->addSql("CREATE TABLE blog_posts (id INT AUTO_INCREMENT NOT NULL, group_id INT DEFAULT NULL, created_by_id INT NOT NULL, updated_by_id INT DEFAULT NULL, published TINYINT(1) NOT NULL, title VARCHAR(150) NOT NULL, slug VARCHAR(150) NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME DEFAULT NULL, update_reason VARCHAR(255) DEFAULT NULL, content LONGTEXT NOT NULL, INDEX IDX_78B2F932FE54D947 (group_id), INDEX IDX_78B2F932B03A8386 (created_by_id), INDEX IDX_78B2F932896DBBDE (updated_by_id), PRIMARY KEY(id)) ENGINE = InnoDB");
|
||||
$this->addSql("ALTER TABLE blog_posts ADD CONSTRAINT FK_78B2F932FE54D947 FOREIGN KEY (group_id) REFERENCES groups (id)");
|
||||
$this->addSql("ALTER TABLE blog_posts ADD CONSTRAINT FK_78B2F932B03A8386 FOREIGN KEY (created_by_id) REFERENCES users (id)");
|
||||
$this->addSql("ALTER TABLE blog_posts ADD CONSTRAINT FK_78B2F932896DBBDE FOREIGN KEY (updated_by_id) REFERENCES users (id)");
|
||||
}
|
||||
|
||||
public function down(Schema $schema)
|
||||
{
|
||||
// this down() migration is autogenerated, please modify it to your needs
|
||||
$this->abortIf($this->connection->getDatabasePlatform()->getName() != "mysql");
|
||||
|
||||
$this->addSql("DROP TABLE blog_posts");
|
||||
}
|
||||
}
|
14
app/Resources/TwigBundle/views/Exception/error404.html.twig
Normal file
14
app/Resources/TwigBundle/views/Exception/error404.html.twig
Normal file
@ -0,0 +1,14 @@
|
||||
{% extends 'KekRozsakFrontBundle:Default:main_template.html.twig' %}
|
||||
|
||||
{% block content %}
|
||||
<h3>A keresett oldal nem létezik</h3>
|
||||
<p>
|
||||
{% spaceless %}
|
||||
A keresett oldal nem létezik. Válassz valamit a menüből
|
||||
{% if app.user %}
|
||||
vagy kattints a bal felső sarokban a nevedre a további lehetőségekért
|
||||
{% endif %}
|
||||
!
|
||||
{% endspaceless %}
|
||||
</p>
|
||||
{% endblock content %}
|
@ -8,6 +8,9 @@ jms_di_extra:
|
||||
bundles: [ KekRozsakFrontBundle, KekRozsakSecurityBundle ]
|
||||
directories: [ "%kernel.root_dir%/../src" ]
|
||||
|
||||
jmikola_js_assets_helper:
|
||||
packages_to_expose: [ KekRozsakFrontBundle ]
|
||||
|
||||
framework:
|
||||
#esi: ~
|
||||
#translator: { fallback: %locale% }
|
||||
@ -17,7 +20,10 @@ framework:
|
||||
form: true
|
||||
csrf_protection: true
|
||||
validation: { enable_annotations: true }
|
||||
templating: { engines: ['twig'] } #assets_version: SomeVersionScheme
|
||||
templating:
|
||||
engines: ['twig']
|
||||
packages:
|
||||
KekRozsakFrontBundle: ~
|
||||
default_locale: %locale%
|
||||
trust_proxy_headers: false # Should Request object should trust proxy headers (X_FORWARDED_FOR/HTTP_CLIENT_IP)
|
||||
session: ~
|
||||
|
@ -1,6 +1,9 @@
|
||||
fos_js_routing:
|
||||
resource: "@FOSJsRoutingBundle/Resources/config/routing/routing.xml"
|
||||
|
||||
jmikola_js_assets_helper_routing:
|
||||
resource: "@JmikolaJsAssetsHelperBundle/Resources/config/routing/routing.xml"
|
||||
|
||||
KekRozsakAdminBundle:
|
||||
resource: "@KekRozsakAdminBundle/Controller/"
|
||||
type: annotation
|
||||
|
@ -27,6 +27,7 @@
|
||||
"doctrine/doctrine-migrations-bundle": "dev-master",
|
||||
"egeloen/ckeditor-bundle": "dev-master",
|
||||
"friendsofsymfony/jsrouting-bundle": "dev-master",
|
||||
"jmikola/js-assets-helper-bundle": "dev-master",
|
||||
"gergelypolonkai/tcpdfbundle": "dev-master"
|
||||
},
|
||||
"scripts": {
|
||||
|
57
src/KekRozsak/FrontBundle/Controller/BlogController.php
Normal file
57
src/KekRozsak/FrontBundle/Controller/BlogController.php
Normal file
@ -0,0 +1,57 @@
|
||||
<?php
|
||||
namespace KekRozsak\FrontBundle\Controller;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
|
||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
|
||||
|
||||
/**
|
||||
* @Route("/blog")
|
||||
*/
|
||||
class BlogController extends Controller
|
||||
{
|
||||
/**
|
||||
* @Route("/", name="KekRozsakFrontBundle_blogList")
|
||||
* @Template()
|
||||
*/
|
||||
public function listAction()
|
||||
{
|
||||
$query = $this
|
||||
->getDoctrine()
|
||||
->getEntityManager()
|
||||
->createQuery('
|
||||
SELECT
|
||||
p
|
||||
FROM
|
||||
KekRozsakFrontBundle:BlogPost p
|
||||
LEFT JOIN
|
||||
p.group g
|
||||
LEFT JOIN
|
||||
g.members m
|
||||
WHERE
|
||||
(
|
||||
(
|
||||
p.group IS NULL
|
||||
OR m.user = :user
|
||||
)
|
||||
AND p.published = true
|
||||
)
|
||||
OR p.createdBy = :user
|
||||
');
|
||||
$query->
|
||||
setParameter(
|
||||
'user',
|
||||
$this
|
||||
->get('security.context')
|
||||
->getToken()
|
||||
->getUser()
|
||||
->getId()
|
||||
);
|
||||
$blogPosts = $query->getResult();
|
||||
|
||||
return array(
|
||||
'posts' => $blogPosts,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -1,15 +1,347 @@
|
||||
<?php
|
||||
/*
|
||||
* id
|
||||
* title
|
||||
* slug
|
||||
* createdBy
|
||||
* createdAt
|
||||
* updatedBy
|
||||
* updatedAt
|
||||
* updateReason
|
||||
* lead(?)
|
||||
* content
|
||||
* public
|
||||
* Group (can be NULL)
|
||||
namespace KekRozsak\FrontBundle\Entity;
|
||||
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use KekRozsak\SecurityBundle\Entity\User;
|
||||
|
||||
/**
|
||||
* @ORM\Entity
|
||||
* @ORM\Table(name="blog_posts")
|
||||
*/
|
||||
class BlogPost
|
||||
{
|
||||
/**
|
||||
* The ID of the BlogPost
|
||||
*
|
||||
* var integer $id
|
||||
*
|
||||
* @ORM\Id
|
||||
* @ORM\GeneratedValue(strategy="AUTO")
|
||||
* @ORM\Column(type="integer")
|
||||
*/
|
||||
protected $id;
|
||||
|
||||
/**
|
||||
* Get id
|
||||
*
|
||||
* @return integer
|
||||
*/
|
||||
public function getId()
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
/**
|
||||
* True if the BlogPost is published. If not, only the author and the
|
||||
* administrators can see it.
|
||||
*
|
||||
* @var boolean $published
|
||||
*
|
||||
* @ORM\Column(type="boolean", nullable=false)
|
||||
*/
|
||||
protected $published;
|
||||
|
||||
/**
|
||||
* Set published
|
||||
*
|
||||
* @param boolean $published
|
||||
* @return BlogPost
|
||||
*/
|
||||
public function setPublished($published)
|
||||
{
|
||||
// TODO: Check if parameter is boolean!
|
||||
$this->published = $published;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get published
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
public function isPublished()
|
||||
{
|
||||
return $this->published;
|
||||
}
|
||||
|
||||
/**
|
||||
* The Group which this BlogPost is associated with
|
||||
*
|
||||
* @var KekRozsak\FrontBundle\Entity\Group $group
|
||||
*
|
||||
* @ORM\ManyToOne(targetEntity="KekRozsak\FrontBundle\Entity\Group")
|
||||
* @ORM\JoinColumn(name="group_id", nullable=true)
|
||||
*/
|
||||
protected $group;
|
||||
|
||||
/**
|
||||
* Set group
|
||||
*
|
||||
* @param KekRozsak\FrontBundle\Entity\Group $group
|
||||
* @return BlogPost
|
||||
*/
|
||||
public function setGroup(Group $group)
|
||||
{
|
||||
$this->group = $group;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get group
|
||||
*
|
||||
* @return KekRozsak\FrontBundle\Entity\Group
|
||||
*/
|
||||
public function getGroup()
|
||||
{
|
||||
return $this->group;
|
||||
}
|
||||
|
||||
/**
|
||||
* The title of the BlogPost
|
||||
*
|
||||
* @var strinct $title
|
||||
*
|
||||
* @ORM\Column(type="string", length=150, nullable=false)
|
||||
*/
|
||||
protected $title;
|
||||
|
||||
/**
|
||||
* Set title
|
||||
*
|
||||
* @param string $title
|
||||
* @return BlogPost
|
||||
*/
|
||||
public function setTitle($title)
|
||||
{
|
||||
// TODO: Check if not null nor empty!
|
||||
$this->title = $title;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get title
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getTitle()
|
||||
{
|
||||
return $this->title;
|
||||
}
|
||||
|
||||
/**
|
||||
* The slugified title of the BlogPost
|
||||
*
|
||||
* @var string $slug
|
||||
*
|
||||
* @ORM\Column(type="string", length=150, nullable=false)
|
||||
*/
|
||||
protected $slug;
|
||||
|
||||
/**
|
||||
* Set slug
|
||||
*
|
||||
* @param string $slug
|
||||
* @return BlogPost
|
||||
*/
|
||||
public function setSlug($slug)
|
||||
{
|
||||
// TODO: Check if not null nor empty!
|
||||
$this->slug = $slug;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get slug
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getSlug()
|
||||
{
|
||||
return $this->slug;
|
||||
}
|
||||
|
||||
/**
|
||||
* The User who created this BlogPost
|
||||
*
|
||||
* @var KekRozsak\SecurityBundle\Entity\User $createdBy
|
||||
*
|
||||
* @ORM\ManyToOne(targetEntity="KekRozsak\SecurityBundle\Entity\User")
|
||||
* @ORM\JoinColumn(name="created_by_id", nullable=false)
|
||||
*/
|
||||
protected $createdBy;
|
||||
|
||||
/**
|
||||
* Set createdBy
|
||||
*
|
||||
* @param KekRozsak\SecurityBundle\Entity\User $createdBy
|
||||
* @return BlogPost
|
||||
*/
|
||||
public function setCreatedBy(User $createdBy)
|
||||
{
|
||||
// TODO: Check if not null!
|
||||
$this->createdBy = $createdBy;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get createdBy
|
||||
*
|
||||
* @return KekRozsak\SecurityBundle\Entity\User
|
||||
*/
|
||||
public function getCreatedBy()
|
||||
{
|
||||
return $this->createdBy();
|
||||
}
|
||||
|
||||
/**
|
||||
* The timestamp when this BlogPost was created
|
||||
*
|
||||
* @var DateTime $createdAt
|
||||
*
|
||||
* @ORM\Column(type="datetime", name="created_at", nullable=false)
|
||||
*/
|
||||
protected $createdAt;
|
||||
|
||||
/**
|
||||
* Set createdAt
|
||||
*
|
||||
* @param DateTime $createdAt
|
||||
* @return BlogPost
|
||||
*/
|
||||
public function setCreatedAt(\DateTime $createdAt)
|
||||
{
|
||||
// TODO: Check if not null!
|
||||
$this->createdAt = $createdAt;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get createdAt
|
||||
*
|
||||
* @return DateTime
|
||||
*/
|
||||
public function getCreatedAt()
|
||||
{
|
||||
return $this->createdAt;
|
||||
}
|
||||
|
||||
/**
|
||||
* The User who last updated this BlogPost, or NULL if it is unmodified
|
||||
*
|
||||
* @var KekRozsak\SecurityBundle\Entity\User $updatedBy
|
||||
*
|
||||
* @ORM\ManyToOne(targetEntity="KekRozsak\SecurityBundle\Entity\User")
|
||||
* @ORM\JoinColumn(name="updated_by_id", nullable=true)
|
||||
*/
|
||||
protected $updatedBy;
|
||||
|
||||
/**
|
||||
* Set updatedBy
|
||||
*
|
||||
* @param KekRozsak\SecurityBundle\Entity\User $updatedBy
|
||||
* @return BlogPost
|
||||
*/
|
||||
public function setUpdatedBy(User $updatedBy)
|
||||
{
|
||||
$this->updatedBy = $updatedBy;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get updatedBy
|
||||
*
|
||||
* @return KekRozsak\SecurityBundle\Entity\User
|
||||
*/
|
||||
public function getUpdatedBy()
|
||||
{
|
||||
return $this->updatedBy;
|
||||
}
|
||||
|
||||
/**
|
||||
* The timestamp when this BlogPost was last modified, or null if it is not
|
||||
* modified
|
||||
*
|
||||
* @var DateTime $updatedAt
|
||||
*
|
||||
* @ORM\Column(type="datetime", name="updated_at", nullable=true)
|
||||
*/
|
||||
protected $updatedAt;
|
||||
|
||||
/**
|
||||
* Set updatedAt
|
||||
*
|
||||
* @param DateTime $updatedAt
|
||||
* @return BlogPost
|
||||
*/
|
||||
public function setUpdatedAt(\DateTime $updatedAt)
|
||||
{
|
||||
$this->updatedAt = $updatedAt;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* The reason of the last update, or null if the object is not modified
|
||||
*
|
||||
* @var string $updateReason
|
||||
*
|
||||
* @ORM\Column(type="string", length=255, name="update_reason", nullable=true)
|
||||
*/
|
||||
protected $updateReason;
|
||||
|
||||
/**
|
||||
* Set updateReason
|
||||
*
|
||||
* @param string $updateReason
|
||||
* @return BlogPost
|
||||
*/
|
||||
public function setUpdateReason($updateReason)
|
||||
{
|
||||
if (trim($updateReason) == '') {
|
||||
$updateReason = null;
|
||||
}
|
||||
$this->updateReason = $updateReason;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get updateReason
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getUpdateReason()
|
||||
{
|
||||
return $this->updateReason;
|
||||
}
|
||||
|
||||
/**
|
||||
* The content of this BlogPost
|
||||
*
|
||||
* @var string $content
|
||||
*
|
||||
* @ORM\Column(type="text", nullable=false)
|
||||
*/
|
||||
protected $content;
|
||||
|
||||
/**
|
||||
* Set content
|
||||
*
|
||||
* @param string $content
|
||||
* @return BlogPost
|
||||
*/
|
||||
public function setContent($content)
|
||||
{
|
||||
// TODO: Check if not null nor empty!
|
||||
$this->content = $content;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get content
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getContent()
|
||||
{
|
||||
return $this->content;
|
||||
}
|
||||
}
|
||||
|
@ -25,7 +25,7 @@ function favouriteOn()
|
||||
url: url
|
||||
}).done(function() {
|
||||
elem.find('img').attr('alt', '[Kedvenc]');
|
||||
elem.find('img').attr('src', webRoot + '/bundles/kekrozsakfront/images/penta-yellow-24.png');
|
||||
elem.find('img').attr('src', AssetsHelper.getURL('bundles/kekrozsakfront/images/penta-yellow-24.png'));
|
||||
elem.removeClass('favourite-topic-button');
|
||||
elem.addClass('unfavourite-topic-button');
|
||||
elem.attr('id', 'unfavourite-topic-button-' + topicSlug);
|
||||
@ -60,7 +60,7 @@ function favouriteOff()
|
||||
url: url
|
||||
}).done(function() {
|
||||
elem.find('img').attr('alt', '[Nem kedvenc]');
|
||||
elem.find('img').attr('src', webRoot + '/bundles/kekrozsakfront/images/penta-blue-24.png');
|
||||
elem.find('img').attr('src', AssetsHelper.getUrl('/bundles/kekrozsakfront/images/penta-blue-24.png'));
|
||||
elem.removeClass('unfavourite-topic-button');
|
||||
elem.addClass('favourite-topic-button');
|
||||
elem.attr('id', 'favourite-topic-button-' + topicSlug);
|
||||
|
@ -0,0 +1,17 @@
|
||||
{# vim: ft=htmljinja
|
||||
#}
|
||||
{% extends 'KekRozsakFrontBundle:Default:main_template.html.twig' %}
|
||||
{% block content %}
|
||||
<h3>Blog</h3>
|
||||
{% for post in posts %}
|
||||
<h4>{{ post.title }}</h4>
|
||||
{{ post.createdAt|date('Y-m-d H:i') }}<br />
|
||||
{% if not post.published %}
|
||||
inaktív<br />
|
||||
{% endif %}
|
||||
{{ post.content }}
|
||||
<hr />
|
||||
{% else %}
|
||||
Nincs bejegyzés.
|
||||
{% endfor %}
|
||||
{% endblock %}
|
@ -17,12 +17,11 @@
|
||||
<script type="text/javascript" src="{{ asset('bundles/fosjsrouting/js/router.js') }}"></script>
|
||||
<script type="text/javascript" src="{{ path('fos_js_routing_js', {callback: 'fos.Router.setData'}) }}"></script>
|
||||
<script type="text/javascript" src="{{ asset('js/jquery-form/jquery.form.js') }}"></script>
|
||||
<script type="text/javascript" src="{{ asset('bundles/jmikolajsassetshelper/js/asset_helper.js') }}"></script>
|
||||
<script type="text/javascript" src="{{ path('jmikola_js_assets_helper_js') }}"></script>
|
||||
{% javascripts 'bundles/kekrozsakfront/js/*' output='js/kekrozsak.js' %}
|
||||
<script type="text/javascript" src="{{ asset_url }}"></script>
|
||||
{% endjavascripts %}
|
||||
<script type="text/javascript">
|
||||
var webRoot = '{{ asset('') }}';
|
||||
</script>
|
||||
{% block additional_js %}{% endblock %}
|
||||
</head>
|
||||
<body>
|
||||
|
Loading…
Reference in New Issue
Block a user