Потратил часок досуга, сделал для компонента контактов. По-аналогии просто сделать для любого другого компонента или сразу для нескольких просто дополнив JOIN`ом запрос:
1. Чтобы ничего не похерилось при апдейтах, воспользуемся оверрайдом: копируем из
components\com_jcomments\tpl\default\ в
templates\шаблон\html\com_jcomments\default\ файл
tpl_tree.php (делал на примере древовидных комментов).
2. В нём в начале, например после…
$i = 0;
$count = count($comments);
$currentLevel = 0;
…вставляем:
//Получаем id зарегистрированных комментаторов…
foreach ($comments as $comment) {
if ($comment->userid !== '0') {
$userid[] = $comment->userid; //…и в массив
}
}
$userid = array_unique($userid); //удаляем повторы
$userid = implode(", ", $userid); //собираем в строку
//Выбираем из таблицы контактов фотки юзеров
$query='select c.user_id, c.image from #__contact_details as c where c.user_id in ('.$userid.')';
$db = JFactory::getDBO();
$db->setQuery($query);
$itembd= $db->loadObjectList();
//Дополняем объект $comments фотками
foreach ($comments as $comment) {
foreach ($itembd as $dblist) {
if ($dblist->user_id == $comment->userid){
$comment->userimg = $dblist->image;
}
}
}
//Делаем тумбочки. За подробный мануал спасибо Дяде Фёдору Власенко.
foreach ($comments as $comment) {
$imgsrc = $comment->userimg;
if ($imgsrc) {
$h = 50; //Новая высота изображения
$w = 50; //Новая ширина изображения
$path_parts = pathinfo($imgsrc);
$file_thumb = $path_parts['dirname'].'/'.$path_parts['filename'].'_'.$h.'_'.$w.'.'.$path_parts['extension'];
if (!file_exists($file_thumb) || filemtime($file_thumb) <= filemtime($imgsrc))
{
$image = new JImage($imgsrc);
$new_image = $image->resize($w, $h, true, JImage::SCALE_INSIDE );
$properties = $image->getImageFileProperties($imgsrc);
switch ($properties->mime)
{
case 'image/jpeg':
$type = IMAGETYPE_JPEG;
break;
case 'image/png':
$type = IMAGETYPE_PNG;
break;
case 'image/gif':
$type = IMAGETYPE_GIF;
break;
}
$new_image->toFile($file_thumb, $type);
}
$attr = getimagesize(JURI::base().$file_thumb);
//Дополняем объект $comments уже готовыми тумбочками. Здесь свобода творчества верстальщику.
$comment->userthumb = '<a href="'.$imgsrc.'" class="jc_user_thumb">'.
'<img src="'.$file_thumb.'" />'.
'</a>';
}
}
3. Далее ищем
$comment->html (вывод тела коммента) и вставляем перед ним:
echo $comment->userthumb;
На этом всё. Можно выбирать из разных таблиц картинки и выводить в определённом приоритете, например, если есть профиль в CB, то оттуда, иначе из контактов. В общем свобода творчества.