В общем даже не знаю, зачем я столько времени тупил, ведь решение простое. Может кому и пригодится.
Итак, у нас есть шаблоны блога материалов, блога избранных материалов, пара модулей выводящих материалы. Нам нужно сделать у них одинаковый вывод блока материала. Пример в спойлере (хиты это блог избранных материалов, новые поступления - модуль последних). Писать каждый раз разметку и в случае изменений менять в трех местах нам не надо.
Пишем свою функцию function product_item($prod) в которой делаем всю нужную разметку.
На уровне вывода блога и хелпера модуля инклюдим файл с функцией и выводим ее в соответствующих файлах
\html\com_content\featured\default_item.php
\html\com_content\category\blog_item.php
\html\mod_articles_latest\default.php
В принимаемый параметр $prod функции передаем объект $this->item. Если нам нужны еще и условия из настроек меню - всегда можем добавить в функцию прием объекта параметров $params
Все, шаблонов и модулей много, разметка везде одна. Единственное но - в передаваемом объекте везде должны содержаться соответствующие принимаемые на уровне функции значения.
Решение простое как валенок, правду говорят что горе от ума, если же его нет все еще хуже.