Вызов методов одного модуля внутри другого

Иногда возникает необходимость использования методов одного модуля внутри другого. Для этого нужно получить объект - экземпляр класса этого модуля, воспользовавшись методом getModule класса cmsController.
Функция module cmsController :: getModule((string) $moduleName) возвращает экземпляр модуля $moduleName, если модуль существует и установлен, в противном случае возвращает false.

Пример вызова:

<?php
    // получаем экземпляр модуля "users" 
    if ($oUsersMdl = cmsController::getInstance()->getModule("users")) { 
        // теперь доступны все public методы и свойства данного модуля 
        // проверяем, авторизован ли пользователь 
        if ($oUsersMdl->is_auth()) { 
            echo "Здравствуйте, " . $oUsersMdl->user_fullname . " (" .$oUsersMdl->user_login . ")"; 
        } 
        else { 
            echo "Вы гость"; 
        } 
    }
    else { 
        echo "Не удалось загрузить модуль"; 
    } 
?>

Примечание: Таким способом нельзя получить экземпляры модулей core, system, custom.

Чтобы получить доступ к методам этих модулей, используйте следующую конструкцию:

<?php
    if($macros['module'] == "core" || $macros['module'] == "system" || $macros['module'] == "custom") {
        $module = system_buildin_load($macros['module']);
        } 
    else {
        $module = cmsController::getInstance()->getModule($macros['module']);
    }
?>