Symfony IV. rész – egy form embedder plugin
Ebben a bejegyzésemben az előző bejegyzésemben bemutatott form beágyazási technika alapján készített plugint tenném közzé.
A plugin célja, hogy egyszerűsítsen a symfony beágyazási technikáján. Az egyszerűsítés viszont nem minden esetben jobb. Tehát ott érdemes használni, ahol nem visszük túlzásba a beágyazást. 🙂 Ha túlságosan egyedi formára kívánjuk hozni, akkor előfordulhat hogy rengeteg módosítás helyett, célszerűbb teljesen tiszta lapról indulni. Akkor pedig az előző bejegyzésem nagyobb segítség, mint ez a plugin.
A plugin használatának nagyon fontos feltétele, hogy a kapcsolt táblák 1:N kapcsolatban legyenek az adatbázis szerint is. Tehát a beágyazandó táblában legyen meg az idegen kulcs!
Hozzávalók:
A plugin itt található
sfJqueryReloadedPlugin
CakePHP set osztálya, a symfonysított verziót ide tettem fel.
A plugin telepítése:
- Miután létrehoztuk a projektünket, a plugin könyvtárba csomagoljuk ki plugint
-
Engedélyezzük a az apps/config/settings.yml fájlban:
[code lang=”php”]
all:
enabled_modules: [default, tlsysEmbedderHelper, stb]
[/code]
Erre azért van szükség, mert az ajaxos hívást kiszolgáló action a pluginba került. Így azt sem kell állandóan újra és újra megírni. -
A lib/form/BaseFormPropel.class.php származtatása a pluginnban talalhato tlsysEmbedderFormból
[code lang=”php”]
abstract class BaseFormPropel extends tlsysEmbedderForm
[/code] -
A szükséges formokkban értéket kell adni a $tlsysEmbeddedForms protected változónak. Egy példa az előző bejegyzésemben található OsztalyFormra.
[code lang=”php”]
class OsztalyForm extends BaseOsztalyForm
{
# meg kell adni a beágyazni szándékozott osztály nevét, egyes és többesszámban
# a többesszám az, ahogy a propel hivatkozik rá
protected $tlsysEmbeddedForms = array(array(‘singular’=>’Tanulo’, ‘plural’=>’Tanulos’));
public function configure()
{
}
}
[/code]
Ezzel a 4 lépéssel ugyanazt értük el, mint az előző bejegyzésemben található litániával.
Symfony IV. rész – egy form embedder plugin bejegyzéshez a hozzászólások lehetősége kikapcsolva