Контекст
Предупреждение
Содержимое этой страницы устарело. Хотя функциональность всё ещё на месте, использование глобального контекста для определения вашей бизнес-логики является плохой практикой и сделает ваш код менее тестируемым и подверженным ошибкам.
В рамках фреймворка Elgg контекст может использоваться функциями вашего плагина для определения, должны ли они выполняться или нет. Вы будете регистрировать обратные вызовы для выполнения при запуске определённых событий. Иногда события являются общими, и вы хотите запускать свой обратный вызов только тогда, когда ваш плагин вызвал запуск события. В этом случае вы можете использовать контекст страницы.
Вы можете явно установить контекст с помощью set_context(). Контекст — это строка, и обычно вы устанавливаете его в имя вашего плагина. Вы можете получить контекст с помощью функции get_context(). Однако лучше использовать elgg_push_context($string) для добавления контекста в стек. Вы можете проверить, находится ли нужный вам контекст в текущем стеке, вызвав elgg_in_context($context). Не забудьте удалить (с помощью elgg_pop_context()) контекст после того, как вы его добавили и он больше не нужен.
Если вы не установите его, Elgg пытается угадать контекст. Если страница была вызвана через маршрутизатор, контекст устанавливается в первый сегмент текущего маршрута, например profile в profile/username.
Иногда представление будет возвращать разный HTML в зависимости от контекста. Плагин может воспользоваться этим, установив контекст перед вызовом elgg_view() на представлении, а затем восстановив контекст. Это часто делается с контекстом поиска.