Diskuse

Téma: Přepsání funkcí systému

Ahoj všem, zkouším si upravit části SL8, abych mohl upgradovat ze starší verze. Snažím se to dělat už "pořádně" tak bych měl dotaz, zda jde nějak elegantně (plugin, extend, ...) přepisovat chování funkce systému.

Jde mi například o přepsání funkce "renderPreview", aby obsahovala jinou třídu v div a podobě. Nebo je jediná šance jak upravit tuto funkci prostě úprava souboru Article.php v /system/class?
postZaslat odpověď
Metodu renderPreview je možné kompletně přetížit pomocí extend události article.preview.

Toho lze dosáhnout pomocí vlastního extend pluginu. Viz dokumentace extend pluginů a events option.

Navázání skriptu na událost v plugin.json:
"events": [
    {"event": "article.preview", "script": "event/article_preview.php"}
]

Základ event/article_preview.php:
<?php

return function (array $args) {
    $args['output'] = 'Vlastní <b>HTML</b> výstup';
};
"Nebo je jediná šance jak upravit tuto funkci prostě úprava souboru Article.php v /system/class?"
Přímé zásahy do systému v žádném případě nedoporučuji. V osmé řadě systému je jen velmi málo míst, které se nedají nějak pluginem ovlivnit.
@Shira
Děkuji moc za nakopnutí, už s tím bojuju :-)

@Jirka
Právě proto se to snažím řešit pořádně, na předchozích verzích jsem to dělal přímým zásahem a každá aktualizace byla peklo...