Talán sokak számára ismerős az egyik legrégebbi és legjobb hírlevélküldő alkalmazás, a jNews. Lehet szeretni, nem szeretni, vannak hibái, de általában működik.
Az elődjében az Acajoom-ban volt egy olyan funkció, amivel cikket lehetett beszúrni a hírlevélbe. A beszúrás egy {contentitem} plugint szúrt be paraméterezve. Ha elmentettük a hírlevelet, a plugin lefutott, így ha visszatértünk a szerkesztésbe, a kész cikk várt ott, lehetett még utólag módosítani rajta, kiemelni, sort törni, hiszen a hírlevélben nem feltétlenül 100%-ig úgy jelenik meg minden, mint az oldalban.
Az új jNews-ban viszont már nem így van, a plugin csak küldéskor fut le, így ha beszúrjuk a címkét, elmentjük és visszatérünk szerkesztésbe, marad a {contentitem}
Ezt a funkciót hiányolta egy ismerősöm, így megoldottam neki, a következő módon:
Keressük meg a következő fájlt: /administrator/components/com_jnews/classes/class.mailing.php
Nekem most a 605. sor környékén csinálja meg a script, hogy lekérdezi az adatokat a hírlevél szerkesztés közbeni mentésekor. Itt van egy ilyen részlet:
$content = JRequest::getVar('jnewsContent', '', 'request','string', JREQUEST_ALLOWRAW);
$alt_content = JRequest::getVar('altbody', '', JREQUEST_ALLOWRAW );
Ez az, ami a $content változóba rakja a beszerkesztett hírlevélszövegünket, az $alt_content-be pedig az alternatív szöveget. Ez tartalmazza a plugin hívásokat is, így ezen kéne lefuttatni. Másoljuk be a két sor után a következő hármat:
$mainframe = JFactory::getApplication();
JPluginHelper::importPlugin( 'jnews' );
$bot_results=$mainframe->triggerEvent('jnewsbot_transformall', array(&$content, &$alt_content));
Ez a következőt csinálja:
- betölti az alkalmazás-objektumot
- betölti a jnews plugineket
- és le is futtatja őket
Ennyi, készen is vagyunk.
ps: mint minden ilyen jellegű változtatás, ez is el fog veszni, ha frissítjük a szoftvert, így legyen róla mentésünk!
Utolsó kommentek