На одном сайте требовалось провернуть некоторые манипуляции с данными для записей  некоторых категорий . Потому что перво наперво нужно было это получить id записи , и id  категории .

$catId = JFactory::getApplication()->input->getInt('catid', 0);
$idItem = JFactory::getApplication()->input->getInt('id', 0);

Но ,  как выяснилось не все записи имели категорию , но при этом в структуре сайта они были прикреплены к   категории .

Так как мы узнали что в джумле карта строится еще и по меню , то нам нужно было узнать категорию именно  через меню .

Для этого мы получили id элемента меню  к которой прикреплена запись

$menuItem = JFactory::getApplication()->input->getInt('Itemid', 0);

Далее написали рекурсивную функцию на получения  id  ,первой категории к которой принадлежит запись .

//рекурсивный перебор меню 
function getCategoryFromMenuElement($elementofMenu){
    
    $menu = JFactory::getApplication()->getMenu()->getItem($elementofMenu);
    if(isset($menu)){
        //echo '<!----' . print_r($menu, true) . "--->";
        if($menu->query["view"]=="article"){
            return getCategoryFromMenuElement($menu->parent_id);    
        }elseif ($menu->query["view"]=="category"){
            //echo '<!----' . print_r($menu->query['id'], true) . "--->";
            return $menu->query['id'];
        }else{
            return false;
        }       
    }
}