Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 5 Ответов
  • 6614 Просмотров
*

Air

  • Новичок
  • 5
  • 0 / 0
Карусель в DatsoGallery
« : 26.01.2009, 02:06:07 »
В общем много было вопросов на эту тему. Ответа именно на этот вопрос я сам не нашел. Ставил разные слайдеры, которые работают красиво, в том числе Карусель от 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 строками.
Таким образом, между ними _перед_
Код
if ($ad_showdetail) {
вставляем код, оторванный из 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, то карусель грузиться не будет. Если когда не лень будет, можно в админке покопаться, чтобы через панель администрирования галочку ставить.




« Последнее редактирование: 26.01.2009, 02:14:30 от Air »
*

Air

  • Новичок
  • 5
  • 0 / 0
Re: Карусель в DatsoGallery
« Ответ #1 : 27.01.2009, 01:10:38 »
Карусель конфликтует с BB-кодами комментов.
Если карусель случается поверх slimbox-а, то проблема решается z-index-ами.
« Последнее редактирование: 27.01.2009, 02:50:50 от Air »
*

Air

  • Новичок
  • 5
  • 0 / 0
Re: Карусель в DatsoGallery
« Ответ #2 : 30.01.2009, 00:29:54 »
Если хочется не кликать на стрелки, а просто наводить мышку, то в код
Код
jQuery('#mycarousel').jcarousel({
        scroll: 2,
        start: $count_before
можно вставить строки
Код
                       buttonNextEvent: 'mouseover',
buttonPrevEvent: 'mouseover',
Чтобы получилось:
Код
jQuery(document).ready(function() {
    jQuery('#mycarousel').jcarousel({
        buttonNextEvent: 'mouseover',
buttonPrevEvent: 'mouseover',
scroll: 2,
        start: $count_before
    });
});
Хотя все эта конструкция не юзабилити, так как содержимое карусели двигается дискретами (scroll) и только дискретами, поэтому, чтобы прокрутить все содержимое карусели - нужно фактически постоянно двигать мышью над кнопкой. Для большего интереса можно добавить еще перед событиями кнопок параметр
Код
animation: 1000,
где цифра выражает скорость в миллисекундах.
*

astra_z

  • Новичок
  • 6
  • 1 / 0
Re: Карусель в DatsoGallery
« Ответ #3 : 22.11.2009, 17:02:55 »
Ваш вариант работает замечательно в Firefox, Opera и Chrome, но в IE (у меня IE8) отсуствует скролинг и картинки выводятся в столбик по центру страницы. Ставила на Joomla 1.5 и Datso Gallery 1.8.1.



Не знаете, в чем может быть проблема? Пробовала на разных темах Joomla, на joomle с удаленными CSS от темы, везде одно и тоже.
*

Peroon

  • Захожу иногда
  • 247
  • 11 / 1
  • http://textonix.ru
Re: Карусель в DatsoGallery
« Ответ #4 : 22.11.2009, 22:37:11 »
Для ИЕ нужно определять свои таблицы стилей.
*

astra_z

  • Новичок
  • 6
  • 1 / 0
Re: Карусель в DatsoGallery
« Ответ #5 : 23.11.2009, 16:02:20 »
Проверила этот же код в datsogallery 1.6 на joomle 1.0 работает одинаково нормально во всех перечисленных мной обозревателях и в IE8. Таблица стилей стандартная для всех.
Я пробовала подключать в datsogallery 1.8.1 на joomle 1.5 таблицу стилей для IE, ничего не меняется. Причем таблица для IE отличается от основной таблицы размером отступов в некоторых позициях на 2px, что несущественно. А у меня отсуствует скролинг, стрелки. Я думаю, что в IE происходит конфликт carusel с какими-то эффектами от DatsoGallery (slimbox, highslide, thickbox) или не работает этот скрипт <script type=\"text/javascript\">
                    jQuery(document).ready(function() {
                        jQuery('#mycarousel').jcarousel({
                            scroll: 2,
                            start: $count_before
                        });
                    });
                    </script> (но почему тогда он работает в другой версии Joomla и datso?)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Есть ли достойная замена для DatsoGallery?

Автор vbulletinX

Ответов: 5
Просмотров: 4946
Последний ответ 14.07.2022, 20:00:50
от marbert
В какую галерею перенести все фото из DatsoGallery?

Автор darkknight

Ответов: 5
Просмотров: 3298
Последний ответ 08.12.2021, 18:45:41
от sergeytolkachyov
[download] Datso Gallery (Download DatsoGallery free all version)

Автор beliyadm

Ответов: 354
Просмотров: 179937
Последний ответ 10.08.2018, 14:43:21
от pH43
cache заполняется DatsoGallery

Автор relat

Ответов: 3
Просмотров: 3623
Последний ответ 05.03.2018, 17:56:11
от beliyadm
DatsoGallery для Joomla 3.x

Автор vbulletinX

Ответов: 17
Просмотров: 6867
Последний ответ 17.06.2017, 11:05:19
от KisoN