Created the article viewer

Signed-off-by: Gergely POLONKAI (W00d5t0ck) <polesz@w00d5t0ck.info>
This commit is contained in:
Polonkai Gergely 2012-07-01 19:11:31 +02:00
parent 2bca134a79
commit 95152ca62b
9 changed files with 713 additions and 55 deletions

View File

@ -6,8 +6,12 @@ use Symfony\Bundle\FrameworkBundle\Controller\Controller;
class DefaultController extends Controller
{
public function articleAction($articleSlug)
{
return $this->render('KekRozsakFrontBundle:Default:article.html.twig', array());
}
public function articleAction($articleSlug)
{
$article = $this->getDoctrine()->getRepository('KekRozsakFrontBundle:Article')->findOneBySlug($articleSlug);
return $this->render('KekRozsakFrontBundle:Default:article.html.twig', array(
'article' => $article
));
}
}

View File

@ -0,0 +1,270 @@
<?php
namespace KekRozsak\FrontBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* KekRozsak\FrontBundle\Entity\Article
*/
class Article
{
/**
* @var integer $id
*/
private $id;
/**
* @var string $title
*/
private $title;
/**
* @var string $slug
*/
private $slug;
/**
* @var text $text
*/
private $text;
/**
* @var string $source
*/
private $source;
/**
* @var DateTime $created_at
*/
private $created_at;
/**
* @var DateTime $updated_at
*/
private $updated_at;
/**
* @var text $update_reason
*/
private $update_reason;
/**
* @var KekRozsak\FrontBundle\Entity\User
*/
private $created_by;
/**
* @var KekRozsak\FrontBundle\Entity\User
*/
private $updated_by;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set title
*
* @param string $title
* @return Article
*/
public function setTitle($title)
{
$this->title = $title;
return $this;
}
/**
* Get title
*
* @return string
*/
public function getTitle()
{
return $this->title;
}
/**
* Set slug
*
* @param string $slug
* @return Article
*/
public function setSlug($slug)
{
$this->slug = $slug;
return $this;
}
/**
* Get slug
*
* @return string
*/
public function getSlug()
{
return $this->slug;
}
/**
* Set text
*
* @param text $text
* @return Article
*/
public function setText($text)
{
$this->text = $text;
return $this;
}
/**
* Get text
*
* @return text
*/
public function getText()
{
return $this->text;
}
/**
* Set source
*
* @param string $source
* @return Article
*/
public function setSource($source)
{
$this->source = $source;
return $this;
}
/**
* Get source
*
* @return string
*/
public function getSource()
{
return $this->source;
}
/**
* Set created_at
*
* @param DateTime $createdAt
* @return Article
*/
public function setCreatedAt(\DateTime $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 Article
*/
public function setUpdatedAt(\DateTime $updatedAt)
{
$this->updated_at = $updatedAt;
return $this;
}
/**
* Get updated_at
*
* @return DateTime
*/
public function getUpdatedAt()
{
return $this->updated_at;
}
/**
* Set update_reason
*
* @param text $updateReason
* @return Article
*/
public function setUpdateReason($updateReason)
{
$this->update_reason = $updateReason;
return $this;
}
/**
* Get update_reason
*
* @return text
*/
public function getUpdateReason()
{
return $this->update_reason;
}
/**
* Set created_by
*
* @param KekRozsak\FrontBundle\Entity\User $createdBy
* @return Article
*/
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 Article
*/
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;
}
}

View File

@ -0,0 +1,139 @@
<?php
namespace KekRozsak\FrontBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* KekRozsak\FrontBundle\Entity\Role
*/
class Role
{
/**
* @var integer $id
*/
private $id;
/**
* @var string $name
*/
private $name;
/**
* @var string $display_name
*/
private $display_name;
/**
* @var boolean $can_be_assigned
*/
private $can_be_assigned;
/**
* @var \Doctrine\Common\Collections\ArrayCollection
*/
private $included_roles;
public function __construct()
{
$this->included_roles = new \Doctrine\Common\Collections\ArrayCollection();
}
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set name
*
* @param string $name
* @return Role
*/
public function setName($name)
{
$this->name = $name;
return $this;
}
/**
* Get name
*
* @return string
*/
public function getName()
{
return $this->name;
}
/**
* Set display_name
*
* @param string $displayName
* @return Role
*/
public function setDisplayName($displayName)
{
$this->display_name = $displayName;
return $this;
}
/**
* Get display_name
*
* @return string
*/
public function getDisplayName()
{
return $this->display_name;
}
/**
* Set can_be_assigned
*
* @param boolean $canBeAssigned
* @return Role
*/
public function setCanBeAssigned($canBeAssigned)
{
$this->can_be_assigned = $canBeAssigned;
return $this;
}
/**
* Get can_be_assigned
*
* @return boolean
*/
public function getCanBeAssigned()
{
return $this->can_be_assigned;
}
/**
* Add included_roles
*
* @param KekRozsak\FrontBundle\Entity\Role $includedRoles
* @return Role
*/
public function addRole(\KekRozsak\FrontBundle\Entity\Role $includedRoles)
{
$this->included_roles[] = $includedRoles;
return $this;
}
/**
* Get included_roles
*
* @return Doctrine\Common\Collections\Collection
*/
public function getIncludedRoles()
{
return $this->included_roles;
}
}

View File

@ -0,0 +1,193 @@
<?php
namespace KekRozsak\FrontBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* KekRozsak\FrontBundle\Entity\User
*/
class User
{
/**
* @var integer $id
*/
private $id;
/**
* @var string $username
*/
private $username;
/**
* @var string $password
*/
private $password;
/**
* @var string $email
*/
private $email;
/**
* @var DateTime $registered_at
*/
private $registered_at;
/**
* @var string $display_name
*/
private $display_name;
/**
* @var \Doctrine\Common\Collections\ArrayCollection
*/
private $roles;
public function __construct()
{
$this->roles = new \Doctrine\Common\Collections\ArrayCollection();
}
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set username
*
* @param string $username
* @return User
*/
public function setUsername($username)
{
$this->username = $username;
return $this;
}
/**
* Get username
*
* @return string
*/
public function getUsername()
{
return $this->username;
}
/**
* Set password
*
* @param string $password
* @return User
*/
public function setPassword($password)
{
$this->password = $password;
return $this;
}
/**
* Get password
*
* @return string
*/
public function getPassword()
{
return $this->password;
}
/**
* Set email
*
* @param string $email
* @return User
*/
public function setEmail($email)
{
$this->email = $email;
return $this;
}
/**
* Get email
*
* @return string
*/
public function getEmail()
{
return $this->email;
}
/**
* Set registered_at
*
* @param DateTime $registeredAt
* @return User
*/
public function setRegisteredAt(\DateTime $registeredAt)
{
$this->registered_at = $registeredAt;
return $this;
}
/**
* Get registered_at
*
* @return DateTime
*/
public function getRegisteredAt()
{
return $this->registered_at;
}
/**
* Set display_name
*
* @param string $displayName
* @return User
*/
public function setDisplayName($displayName)
{
$this->display_name = $displayName;
return $this;
}
/**
* Get display_name
*
* @return string
*/
public function getDisplayName()
{
return $this->display_name;
}
/**
* Add roles
*
* @param KekRozsak\FrontBundle\Entity\Role $roles
* @return User
*/
public function addRole(\KekRozsak\FrontBundle\Entity\Role $roles)
{
$this->roles[] = $roles;
return $this;
}
/**
* Get roles
*
* @return Doctrine\Common\Collections\Collection
*/
public function getRoles()
{
return $this->roles;
}
}

View File

@ -0,0 +1,40 @@
KekRozsak\FrontBundle\Entity\Article:
type: entity
table: articles
id:
id:
type: integer
generator:
strategy: AUTO
fields:
title:
type: string(100)
nullable: false
slug:
type: string(100)
nullable: false
unique: true
text:
type: text
nullable: false
source:
type: string(255)
nullable: true
created_at:
type: datetime
nullable: false
updated_at:
type: datetime
nullable: true
update_reason:
type: text
nullable: true
manyToOne:
created_by:
targetEntity: User
inversedBy: articles
nullable: false
updated_by:
targetEntity: User
nullable: true
default: null

View File

@ -0,0 +1,30 @@
KekRozsak\FrontBundle\Entity\Role:
type: entity
table: roles
id:
id:
type: integer
generator:
strategy: AUTO
fields:
name:
type: string(100)
nullable: false
display_name:
type: string(100)
nullable: false
can_be_assigned:
type: boolean
default: false
manyToMany:
included_roles:
targetEntity: Role
joinTable:
name: role_hierarchy
joinColumns:
parent_role_id:
referencedColumnName: id
inverseJoinColumns:
child_role_id:
referencedColumnName: id

View File

@ -0,0 +1,26 @@
KekRozsak\FrontBundle\Entity\User:
type: entity
table: users
id:
id:
type: integer
generator:
strategy: AUTO
fields:
username:
type: string(50)
nullable: false
password:
type: string(50)
nullable: false
email:
type: string(50)
nullable: false
registered_at:
type: datetime
display_name:
type: string(50)
nullable: false
manyToMany:
roles:
targetEntity: Role

View File

@ -1,10 +1,9 @@
KekRozsakFrontBundle_homepage:
pattern: /
defaults:
_controller: KekRozsakFrontBundle:Default:article
articleSlug: aktualis
_controller: KekRozsakFrontBundle:Default:homepage
KekRozsakFrontBundle_article:
pattern: /cikk/{$articleSlug}
pattern: /cikk/{articleSlug}
defaults:
_controller: KekRozsakFrontBundle:Default:article

View File

@ -1,51 +1,8 @@
{% extends 'KekRozsakFrontBundle:Default:front_template.html.twig' %}
{% block title%} - Aktuális{% endblock title %}
{% block title%} - {{ article.title }}{% endblock title %}
{% block content %}
<h3>Szentiván-éj, a mágikus éjszaka</h3>
<p>Az év legrövidebb éjszakáján a nyári napfordulót ünnepeljük. A régiek hiedelme szerint varázslatos éjszaka ez, amikor szinte bármi megtörténhet, a kívánságok teljesülhetnek. A néphagyományokhoz illően világszerte örömtüzeket gyújtanak, melyeknek csodás erőt tulajdonítanak.</p>
<p>Június 21-e, a nyári napforduló szinte az összes kultúrában a Nap, és ennél fogva a fény diadalának ünnepe volt, amely a pogány ember hiedelmei szerint a világosság és a sötétség állandó harcán alapult. A természettel összhangban élő, kereszténység előtti ember a nyárközépi tűzgyújtással elsősorban a Napot kívánta megsegíteni a sötétséggel vívott küzdelmében, a tűz fényének erejével pedig az ártó szellemeket igyekeztek minél messzebb űzni.</p>
<p>A sötétség és az ahhoz kapcsolódó rontó hatások így egy időre még ha csak egyetlen éjszakára is de elveszítették hatalmukat az ember felett. Bár a kereszténység elterjedése után a Nap megsegítésének motívuma a mindinkább háttérbe szorult, a tűzünnep mégis megőrizte korábbi szimbolikáját és mágikus karakterét, mivel a tűz gyakorlati hasznával együtt már a régi korok emberei számára is nélkülözhetetlen erőt képviselt.</p>
<h4>A naptárreformok miatt van csúszás</h4>
<p>A nyári napforduló az évnek az a jellegzetes időpontja, amikor a Nap az égbolton a legmagasabb delelési ponton áll. A Föld különösen az északi félteke ilyenkor terményekben bővelkedik, szépsége és ereje teljében van. Egyféle csúcspont ez, hiszen a nappalok a következő napfordulóig innentől már csak rövidülhetnek. Ezen a napon június 21-én az év leghosszabb nappalát és legrövidebb éjjelét élhetjük meg évről-évre.</p>
<p>„Szent Iván éjjele mégsem június 21-ére, hanem június 24 ére esik, ennek oka azonban a tropikus időszámítási mód sajátosságában és a tényleges naptári évek közti különbségben, illetve az egykori naptári reformokban rejlik. Így a nyári napforduló napja és megünneplése időben napjainkra már elvált egymástól. A nyár csillagászati értelemben vett kezdete korábban valóban Szent Iván napra, azaz június 24-ére esett, de erre ma már az eltolódás miatt három nappal korábban, június 21-én kerül sor. Évszázadok, vagy egy évezred múlva a napfordulók még korábbi dátumra fognak esni” mondta el a FigyelőNetnek Mizser Attila, a Magyar Csillagászati Egyesület főtitkára.</p>
<h4>A holtak a Tejúton távoztak</h4>
<p>A nyári napforduló már a neolitikus idők óta jelentőségteljes nap az emberiség történetében. A kelták, a germánok, a szlávok és az északi népek többsége már a kezdetektől megünnepelte ezt, mint ahogy ezt ma is teszik. Papjaik, druidáik a Föld és az Ég nászának tartották e különös napot, s ennek megfelelően is tisztelegtek előtte.</p>
<p>A korai pogány népek spirituális vezetőinek némelyike hitte, hogy a leghosszabb nap éjjelén révületbe esve képessé válhatnak arra, hogy testüket elhagyva a Tejúton keresztül eljussanak a holtak birodalmába, az alsóvilágba. Ennek a páratlan utazásnak az volt a célja, hogy a holtakkal érintkezve útmutatást és segítséget kérjenek többek között a jövőről, a termésről, a gyermekáldásról, a viszályokról, vagy az istenek megbékítésének módjáról.</p>
<h4>Keresztelő Szent Jánost ünnepeljük</h4>
<p>Mivel a keresztényi logikába is beleillett a fény és a sötétség küzdelme, ezért a kereszténység végül ezt a napot Keresztelő Szent János napjává tette. Az Iván elnevezés a régi magyar Jovános, Ivános alakból ered, illetve a János névnek a szláv formájából.</p>
<p>Európa szerte különösen az északi és a szláv népek gyakorolták Szent Iván varázslatos éjszakáján a mágikus praktikákat, amelyek a megtisztulással, gyógyítással, az egészség megőrzésével, szerelemmel, a házassággal és a termékenységgel voltak szoros kapcsolatban.</p>
<h4>Papírmasé egy spanyol ünnepségen - Szent Iván éjjelén elégetik</h4>
<p>Nem volt ez másképp a magyar néphagyományban sem, s a tűz nem véletlenül vált a világosság, a tisztaság, az egészség, a szenvedély, az elevenség, a szerelem és az örök megújulás jelképévé a magyar hiedelemvilágban is. A nyári napfordulóra eső Keresztelő Szent János ünnepe az 5-ik században vált elterjedtté, s a keresztény ünnep magába olvasztotta mindazokat a hiedelmeket és rítusokat, amelyek korábban a különböző népeknél a nyári napfordulóhoz kapcsolódtak.</p>
<h4>Szent Iván napi magyar népszokások</h4>
<p>A Szent Iván naphoz fűződő hiedelmek és szokások egyrészt a szomszédos népektől, másrészt egyházi közvetítéssel kerültek hozzánk. „A magyar szokások szerint régen a június hónapot is Szent Iván havának nevezték. A nyárközépi tűzgyújtást, illetve a tűzcsóvák forgatását népies nevén lobogózást a történelmi Magyarország egyes területein, főleg Nyitra megyében Szent Iván napi dalok éneklése kísérte” mondta lapunknak Hegedűs Vilmos kultúrakutató.</p>
<p>A tűz körül álló asszonyok különféle illatos füveket, virágokat füstöltek, s ezeket később fürdők készítéséhez használták fel. Hegedűs megemlíti még, hogy gyógyító hatást tulajdonítottak a tűzbe vetett almának is, mondván, aki abból eszik, nem betegszik meg. Baranya megyében a sírokra is tettek a sült almából, míg Csongrád megyében azt tartották, hogy a tűzbe dobott alma édes ízét az elhunyt rokonok is megízlelhetik.</p>
<p>Szerelmi praktikák és jóslások is fűződnek e naphoz. A szalmából és a többféle fából megrakott tűz fölött a hagyomány szerint a lányok átugráltak, amíg a fiúk azt figyelték, ki mozog közülük a legtetszetősebben. Az ugrások magasságából és irányából persze sokféle jövendölést lehetett kiolvasni.</p>
<h4>Múzeumok éjszakája</h4>
<p>Manapság Magyarországon is újra visszatérőben van a tradicionális Szent Iván éji tűzrakás, az ahhoz kötődő népi hagyományok, hiedelmek felelevenítése, és a nyári napforduló alkalmából történő kulturális fesztiválok megrendezése. A berlini példát követve 2001 óta már nálunk is megrendezik a Múzeumok Éjszakáját, amikor évről-évre, késő éjszakáig tartó nyitvatartási renddel egyre több múzeum várja nyitott kapukkal a látogatókat.</p>
<h4>Európa-szerte nagy ünnep</h4>
<p>Portugáliában a nyári napforduló ünnepe a „Santos Populares”, vagyis a népszerű szentek ünnepségsorozat egyik elemeként vonult be a köztudatba. Az ünnepsorozat egyik legérdekesebb és egyben régi hagyományokat idéző pillanata, amikor Lisszabonban két-háromszáz szerelmespár egyszerre mondja ki egymásnak a boldogító igent. Ők ugyanis ilyenkor emlékeznek meg Szent Antalról is, aki a házasságközvetítés szentje. A szerelmesek ilyenkor bátran vallanak szerelmet kiszemeltjüknek egy cserép bazsalikom és egy szerelmes vers kíséretében.</p>
<p>Keresztelő Szent János ünnepén Portóban tele vannak az utcák ünneplő emberekkel, akik virágzó fokhagyma csokorral vagy kisebb méretű műanyag kalapáccsal veregetik meg finoman a mellettük elhaladókat, s ezzel szerencsét kívánnak nekik. Az idősebbek szerint így próbálják meg visszaterelni egymást a helyes útra. Természetesen az ünnep elmaradhatatlan kelléke a vidám tánc és az éjszakai tűzijáték a Douro folyó felett.</p>
<p>Spanyolországban, a valenciai tartományban és különösképpen Alicante város környékén az emberek korábban a város helyett a tengerparton ünnepelték a nyári napfordulót Szent János napján. Napnyugta után máglyákat gyújtottak, majd a tűzrakásokat körbetáncolták, miközben petárdákkal durrogtattak, végül pedig a tengerben úsztak a kora hajnali órákig.</p>
<p>Az utcán mulatnak Spanyolországban Szent Iván napján.</p>
<p>Alicante városban a legfontosabb helyi ünnepé vált Las Hogueras néven. Ezen az éjszakán itt városszerte több méter magas, művészien elkészített papírmasé figurákat állítanak, amelyeket június 24-én éjfélkor meggyújtanak. „A színes figurák sokszor szatirikus megjelenésűek, nem egyszer a helyi viszonyokat és ismert személyiségeket kritizálják” mondta helyszíni tudósítónknak Maria Cassado, helyi vállalkozó.</p>
<h4>Vidéki örömök az éjféli nap országában</h4>
<p>Az ünneplés azonban nem csak délen hagyomány. Svédországban nem Szent Ivánhoz kötik az év leghosszabb napját, hanem Keresztelő Szent Jánoshoz. A Midsommar amely mindig a június 20 és 26 közötti szombatra esik nem véletlenül nagy ünnep: nyúlfarknyivá válnak az éjszakák, bőségesen kárpótolva őket a téli sötétségért. Itt az év leghosszabb napja késő májustól kora augusztusig tart, amikor az északabbi területeken egyáltalán nem megy le a nap.</p>
<p>Ilyenkor a romantikusabb lelkületűek előszedik az egyébként sosem használt népviseletet, és zöldekkel, virágokkal, szalagokkal feldíszített májusfák körül táncolnak, koszorúval a hajukban. A többiek csendben kivárják az esti dorbézolást.</p>
<h4>Pilisszentiván is ünnepel</h4>
<p>Pilisszentiván, amely nevét égi patrónusáról kapta, 18 éve ünnepli védőszentjének neve napját, s egyúttal a hozzá fűződő legendát is. A községben minden esztendőben nagy nyüzsgéssel várják a Szentiván-éj jöttét.</p>
<p>Az utóbbi esztendőkben ez már egy sokszínű, majd tíznapos rendezvénysorozat. A fesztivál fő eseménye a Szentiván-éji, hatalmas máglya meggyújtása, amelyen a rontó boszorkányt égetik el, s amelyet minden évben több ezren énekelve, táncolva vesznek körül. Ezenkívül kiállítást tartanak kisiskolások munkáiból, kiséji zenét rendeznek a tóparton fáklyavilág mellett, s persze jó bajor sült kolbászokat árulnak kiváló, frissen csapolt sörrel. És az elmaradhatatlan schramlizene is szól, hajnalig.</p>
<p class="forras">Forrás: FigyelőNet-összeállítás</p>
{{ article.text|raw }}
{% if article.source %}
<p class="forras">Forrás: {{ article.source }}</p>
{% endif %}
{% endblock content %}