Utvikler cookbook

4.22. Custom listener

Eksempel på en listener klasse som legger til requirement i side cache


I Easypublish har du muligheten til å lytte til spesielle hendelser og få kjørt egendefinert kode ved disse hendelsene.

Dette gjøres ved å legge til en listener klasse i message-manageren i EP.
I eksempelet under legger vi til en egendefinert URL parameter for håndtering av cache av en side.

 

Følgende kode er blitt lagt til nederst i "inc/site_settings.php" for et domene i EP.

class MySiteListener {
    function __construct() {
        require_once($_SERVER['EP_ROOT_DIRECTORY'] . '/inc/class.epcore_messagemanager.php');
        MsgMan::addListener('events_' . SYS_EVENTS, $this);
    }

    static function onPageCollectionOpen() {
        $cacheMatch = isset($_GET['mycustomparam']) ? $_GET['mycustomparam'] : '!*';
        CacheManager::addRequirement('uri.in.mycustomparam', $cacheMatch);
    }
}

new MySiteListener();

 

Her opprettet vi en klasse som i constructoren legger til seg selv hos MsgMan i EP.
Klassen har en statisk funksjon "onPageCollectionOpen" som vil bli kalt når EP oppretter cache for en side.
I funksjonen legger vi til en egendefinert cache requirement som vil lagre en unik cache for siden ved unik verdi i parameteren.

Til slutt oppretter vi en instans av klassen for å legge den til. 

 

NB: Husk å tøm cache for siden først slik at nye requirements vil bli lagret sammen med side cachen.

 

Todo: - list all events

04.09.15

Hjelp / support

Jeg finner ikke det jeg leter etter

Vår dokumentasjon er stadig under utvikling. Vi endrer og legger til nye kapitler og bøker etter hvert som EasyPublish CMS endrer og vokser. Skulle du likevel ikke finne det du leter etter så ta kontakt med oss via support@escio.no.

Jeg har funnet en feil

Hvis du har funnet en feil i vår dokumentasjon så ønsker vi å rette på den. Send oss et hint til support@escio.no.

Translate

You can translate this documentation by using Google Translate. Select your language:

×