по умолчанию код написанный в файле class.php в вашем модуле внуьри папки с шаблоном доступен и для лицевой части сайта и для административной. Посмотрите как в стандартных модулях происходит разделение макросов на админские и лицевые...
например в модуле каталог (/classes/modules/catalog/class.php)
public function __construct() {
parent::__construct();
if(cmsController::getInstance()->getCurrentMode() == "admin") {
$this->__loadLib("__admin.php");
$this->__implement("__catalog");
$this->__loadLib("__custom_adm.php");
$this->__implement("__custom_adm_catalog");
} else {
$this->per_page = regedit::getInstance()->getVal("//modules/catalog/per_page");
$this->__loadLib("__custom.php");
$this->__implement("__custom_catalog");
$this->autoDetectAttributes();
}
$this->__loadLib("__search.php");
$this->__implement("__search_catalog");
}
такую функцию можно добавлять и ваш файл для расширения функционала в папке с вашим шаблоном (см туже статью, блок "Распределение кода" (http://api.docs.umi-cms.ru/razrabotka_nestandartnogo_funkcionala/razrabotka_sobstvennyh_makrosov_i_modulej/novyj_format_rasshireniya_funkcionala/#separate))
а как определить какой сечас режим можно подсмотрев из кода выше ... if(cmsController::getInstance()->getCurrentMode() == "admin") {...