Jump to main content Jump to doc navigation

Событие: OnLoadWebPageCache

Запускается после загрузки ресурса из кэша. Если Ресурс не кэшируется, это событие не сработает. ПРИМЕЧАНИЕ: это событие не особенно полезно до MODX 2.3 (смотри Issue 9841).

Служба: 4 - Cache Service Events Группа: Нет

Параметры события

Нет.

Заметки

This event is triggered inside the getResource() function in modrequest.class.php.

  • _content : содержит ресурс rendered (то есть его шаблон). Любые кешированные плейсхолдеры будут заменены значениями, а все некэшированные плейсхолдеры будут отображаться как есть.

В MODX 2.3 и более поздних версиях вы можете получить доступ к свойствам ресурса. (смотри Issue 9841):

// Override Output
$modx->event->params['resource']->_content = 'Overridden...';

Вы можете получить доступ к свойствам ресурса следующим образом:

// Override Pagetitle
$modx->event->params['resource']->pagetitle = 'My New Pagetitle';

TV хитрее. Они кэшируются как стандартный массив. Для чтения и переопределения значений, вы сосредоточитесь на элементе 1:

// Reading value of TV named "my_tv"
$my_tv = $modx->event->params['resource']->my_tv[1];
/*
// Where our array
array (
    0 => 'name_of_tv',
    1 => 'Value of TV Goes here',
    2 => 'default',
    3 => NULL,
    4 => 'text', // <-- TV type
)
*/

Такой плагин заменит pagetitle, значение ТВ и контента:

<?php
$eventName = $modx->event->name;
switch($eventName) {
    case 'OnLoadWebPageCache':
        $modx->event->params['resource']->pagetitle = 'Новый заголовок';
        // меняем значение ТВ
        $tv = $modx->event->params['resource']->price[1] = '128';
        /*
        // массив значений ТВ 
        array (
            0 => 'name', //название ТВ
            1 => 'значение', //значение ТВ
            2 => 'default', //параметры вывода ТВ
            3 => NULL,
            4 => 'text', //тип ТВ
        )
        */
        $modx->event->params['resource']->_content = 'Новый контент'.$tv;
        break;
}

Для дальнейшего обучения, посмотрите на кэшированные файлы, созданные внутри папки core/cache/resource/web/resources/.

Смотри также

Support the team building MODX with a monthly donation.

The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.

Backers

  • modmore
  • modmore
  • Jens Wittmann – Gestaltung & Entwicklung
  • Raffy
  • eydolan
  • Digital Penguin
  • Fabian Christen
  • Dannevang Digital
  • deJaya
  • Sepia River Studios
  • Following Sea
  • Anton Tarasov
  • Lefthandmedia
  • Nick Clark
  • Chris Fickling
  • Murray Wood
  • YJ
  • CrewMark
  • Richard

Budget

$305 per month—let's make that $500!

Learn more