Вызов методов одного модуля в другом — различия между версиями
Материал из Umicms
Yulia (обсуждение | вклад) (Новая страница: «Возникают задачи, когда необходимо воспользоваться функционалом модуля, находясь при это…») |
Vitaliks (обсуждение | вклад) |
||
(не показана 1 промежуточная версия 1 участника) | |||
Строка 1: | Строка 1: | ||
+ | |||
+ | '''Актуально для версии 20''' | ||
+ | |||
Возникают задачи, когда необходимо воспользоваться функционалом модуля, находясь при этом не в нем. В данном случае получить доступ к другому модулю можно через методы объекта экземпляра класса этого модуля. | Возникают задачи, когда необходимо воспользоваться функционалом модуля, находясь при этом не в нем. В данном случае получить доступ к другому модулю можно через методы объекта экземпляра класса этого модуля. | ||
Для получения такого объекта необходимо вызвать метод getModule класса cmsController: | Для получения такого объекта необходимо вызвать метод getModule класса cmsController: | ||
Строка 28: | Строка 31: | ||
Если модуль загрузить не удастся, то метод getModule вернет false. | Если модуль загрузить не удастся, то метод getModule вернет false. | ||
+ | [[Категория:API]] |
Текущая версия на 10:25, 8 мая 2019
Актуально для версии 20
Возникают задачи, когда необходимо воспользоваться функционалом модуля, находясь при этом не в нем. В данном случае получить доступ к другому модулю можно через методы объекта экземпляра класса этого модуля. Для получения такого объекта необходимо вызвать метод getModule класса cmsController:
if ($oUsersMdl = cmsController::getInstance()->getModule("users")) {
if ($oUsersMdl->is_auth()) {
echo "Здравствуйте, " . $oUsersMdl->user_fullname . " (" .$oUsersMdl->user_login . ")";
} else {
echo "Вы гость";
}
} else {
echo "Не удалось загрузить модуль";
}
В приведенном выше примере мы получили экземпляр модуля "users" и все доступные у него методы и свойства (в качестве примера проверили, авторизован ли пользователь).
Для вызова модулей core, system и custom следует использовать запись:
if($macros['module'] == "core" || $macros['module'] == "system" || $macros['module'] == "custom") {
$module = &system_buildin_load($macros['module']);
} else {
$module = cmsController::getInstance()->getModule($macros['module']);
}
Если модуль загрузить не удастся, то метод getModule вернет false.