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:
all: enabled_modules: [default, tlsysEmbedderHelper, stb]
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
abstract class BaseFormPropel extends tlsysEmbedderForm
-
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.
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() { } }
Ezzel a 4 lépéssel ugyanazt értük el, mint az előző bejegyzésemben található litániával.

Ide kérjük a választ!