Převod textu z wysiwygu do vykonatelného latte příkazu

MikeLacroix
Člen | 60
+
0
-

Zdravím,

potřeboval bych na web udělat takovou funkcionalitku, ale nějak nevím, jak se toho chopit. O co jde?

Potřeboval bych, aby uživatelé mohli ve wysiwyg editoru zadat nějaký speciální kus kódu – třeba:

{product 542}

V šabloně, kde zobrazuji text z wysiwyg editoru, by se to pak vyhodnotilo jako:

{include '@product.latte' product => $product}

Kde $product je entita z modelu s ID = 542.

Tak nějak tuším, že product.latte budu muset převést na komponentu, a v šabloně pak bude něco jako {control product-542}, nicméně stále nevím, jak převést onen „speciální kód“ z wysiwyg editoru na latte kód tak, aby se vykonal. Nějaké tipy, nápady jak k tomuto celému přistoupit?

Martk
Člen | 656
+
+2
-

Použiješ preg_replace a v callbacku:

return (new ProductControl($productId))->renderString();

Edit: Předtím ještě string ošetřit a pak použit noescape po vložení html produktu.

Editoval Martk (28. 9. 2017 11:55)