В общем много было вопросов на эту тему. Ответа именно на этот вопрос я сам не нашел. Ставил разные слайдеры, которые работают красиво, в том числе Карусель от yunoshev. Но моим задачам не соответствовало. А хотелось чего-то попроще, как в True Gallery (каковая у меня не работает по причине офигенного дублирования заголовков со js-скриптами на моем движке Joostina 1.2.0.RC [ RC 6 ]).
Ну и оторвал карусель от True и поставил в Datso. Для тех, кому некогда/не хочется/не можется писать что-то свое - должно подойти.
Для реализации:
Шаг 1. Копируем папку /components/com_true/js/carusel/ в папку /components/com_datsogallery/js/
То есть в datsо появляется еще одна папка /components/com_datsogallery/js/carusel/
Шаг 2. Вносим изменения в файл /components/com_datsogallery/sub_viewdetails.php
В двух местах.
Код 1. Ищем в коде кусок, где рисуется иконка загрузки файла (что по центру после среднего эскиза сразу) и далее рисуются детали изображения:
} else if ($ad_showdownload && ($ad_downpub)) {
echo "<div align='center'><a href='" . sefRelToAbs("$dgurl&func=download&file=$imgoriginalname") . "' onmouseover=\"dg_dsm('"._DG_SAVE_AS."');return document.dg_rv\">
<img src=\"$gallerypath/images/download.gif\" border='0' title='"._DG_SAVE_AS."' alt='' /></a></div>\n";
}
echo "<p />";
if ($ad_showdetail) {
В оригинале sub_viewdetails.php от Datso код надо вставить между 337 и 339 строками.
Таким образом, между ними _перед_
вставляем код, оторванный из True Gallery (с изменениями в контексте использования в datso):
/*=================КАРУСЕЛЬ============================*/
if ($ad_carousel_den)
{
//рисуем дополнительные изображения в виде карусели
//вытягиваем общее кол-во
$header5 = '';
$database->setQuery("SELECT count(id) AS count FROM #__datsogallery WHERE catid = '$row->catid' AND published = '1' AND approved = 1 ");
$count_pic = $database->loadResult();
$count_pic1 = round($count_pic/2);
//вытягиваем текущую позицию картинки
$database->setQuery("SELECT count(id) as count FROM #__datsogallery WHERE id < '$row->id' AND catid = '$row->catid' AND published = '1' AND approved = 1 ");
$count_before = $database->loadResult();
$header5 .= "<script type=\"text/javascript\">
jQuery(document).ready(function() {
jQuery('#mycarousel').jcarousel({
scroll: 2,
start: $count_before
});
});
</script>";
$mainframe->addCustomHeadTag($header5);
echo '<table align="center"><tr><td><ul id="mycarousel" class="jcarousel-skin-tango">';
//$prev_id = $row->id - '10';
//$next_id = $row->id + '10';
//$database->setQuery("SELECT * FROM #__datsogallery WHERE id BETWEEN '$prev_id' AND '$next_id' AND catid = '$row->catid' and published = '1' and approved = 1 ");
$database->setQuery("SELECT * FROM #__datsogallery WHERE catid = '$row->catid' AND published = '1' AND approved = 1 LIMIT 20 ");
$rows = $database->loadObjectList();
foreach($rows as $rows1) {
echo '<li class="jcarousel"><a href="'.sefRelToAbs("$dgurl&func=detail&catid=$rows1->catid&id=$rows1->id").'"><img src="'.$thumbnailpath.$rows1->imgthumbname.'" class="dt2" alt="" width="'.$ad_thumbwidth.'" height="'.$ad_thumbheight.'" /></a></li>';
}
echo '</ul></td></tr></table>';
}
/*===============================================*/
Код 2. После строки 13 (определение глобальных переменных):
global $my, $database, $mosConfig_absolute_path, $mosConf..................
вставляем код:
$ad_carousel_den = 1;
if ($ad_carousel_den) {
$header1 = '';
$header1 .= "<script type=\"text/javascript\" src=\"$mosConfig_live_site/components/com_datsogallery/js/carusel/jquery.js\"></script>\n";
$mainframe->addCustomHeadTag($header1);
$header4 = '';
$header4 .= "<script type=\"text/javascript\" src=\"$mosConfig_live_site/components/com_datsogallery/js/carusel/jcarousellite.js\"></script>\n";
$header4 .= "<link rel=\"stylesheet\" type=\"text/css\" href=\"$mosConfig_live_site/components/com_datsogallery/js/carusel/jquery.jcarousel.css\" />\n";
$header4 .= "<link rel=\"stylesheet\" type=\"text/css\" href=\"$mosConfig_live_site/components/com_datsogallery/js/carusel/skin.css\" />\n";
$mainframe->addCustomHeadTag($header4);
}
Что ВАЖНО: у меня сначала два куска кода были моноблоком в нижнем фрагменте. При этом slimbox успешно конфликтовал с каруселью. То есть если включена карусель, то падает slimbox. Кроме того, слайд-шоу datso тоже начинает работать криво. А при указанной подгрузке скриптов карусели все глюки исчезают.
Издевательства производились над:
Datsogallery 1.6.2
True Gallery 2.0.2.0
на платформе
Joostina 1.2.0.RC [ RC 6 ]
P.S.
Чуть не забыл: в Datso в sub_viewdetails.php глобальная переменная $ad_lightbox аж дважды определяется. Не знаю, на что енто влияет, но я убрал лишнее определение.
P.P.S.

))))))) Еще забыл. Соответственно новая переменная в верхнем фрагменте $ad_carousel_den если равна 0, то карусель грузиться не будет. Если когда не лень будет, можно в админке покопаться, чтобы через панель администрирования галочку ставить.