Как сделать вывод изображений рандомом

Тема в разделе "Изменение шаблона (кастомизация)", создана пользователем Kozloff, 25.12.2007.

Статус темы:
Закрыта.
  1. Kozloff
    Offline

    Kozloff Недавно здесь

    Регистрация:
    14.11.2007
    Сообщения:
    7
    Симпатии:
    0
    Шаблон: jp_modern_desktop
    В него встроен модуль вывода изображений.
    Модуль выводит изображения по порядку. Как сделать чтобы он выводил изображения в случайном порядке?
    Вот файл конфигурации

    Код (PHP):
    1. window.addEventListener?window.addEventListener("load",so_init,false):window.attachEvent("onload",so_init);
    2.  
    3. var d=document, bilder = new Array(), zInterval = null, aktuell=0, pause=false; bilderAnzahl=3; bilderPfad="templates/jp_modern_desktop/slideshow/slideshow-"; geschwindigkeit=6000;
    4.  
    5. function so_init() {
    6.     if(!d.getElementById || !d.createElement)return;   
    7.    
    8.     // erstes Bild wird eingelesen
    9.     bild = d.getElementById("slideshow").getElementsByTagName("img");
    10.     bilder[0] = bild[0];
    11.     bilder[0].style.display = "block";
    12.     bilder[0].xOpacity = .99;
    13.  
    14.     bilder[1] = new Image();
    15.     bilder[1].src = bilderPfad + "002.jpg";
    16.     bilder[1].xOpacity = 0;
    17.     d.getElementById("slideshow").appendChild(bilder[1]);
    18.    
    19.     setTimeout(so_xfade,geschwindigkeit);
    20.     neuesBild();
    21. }
    22.  
    23. function so_xfade() {
    24.     cOpacity = bilder[aktuell].xOpacity;
    25.     nIndex = bilder[aktuell+1]?aktuell+1:0;
    26.     nOpacity = bilder[nIndex].xOpacity;
    27.    
    28.     cOpacity-=.05;
    29.     nOpacity+=.05;
    30.    
    31.     bilder[nIndex].style.display = "block";
    32.     bilder[aktuell].xOpacity = cOpacity;
    33.     bilder[nIndex].xOpacity = nOpacity;
    34.    
    35.     setOpacity(bilder[aktuell]);
    36.     setOpacity(bilder[nIndex]);
    37.    
    38.     if(cOpacity<=0) {
    39.         bilder[aktuell].style.display = "none";
    40.         aktuell = nIndex;
    41.         setTimeout(so_xfade,geschwindigkeit);
    42.         neuesBild();
    43.     } else {
    44.         setTimeout(so_xfade,50);
    45.     }
    46.    
    47.     function setOpacity(obj) {
    48.         if(obj.xOpacity>.99) {
    49.             obj.xOpacity = .99;
    50.             return;
    51.         }
    52.         obj.style.opacity = obj.xOpacity;
    53.         obj.style.MozOpacity = obj.xOpacity;
    54.         obj.style.filter = "alpha(opacity=" + (obj.xOpacity*100) + ")";
    55.     }  
    56. }
    57.  
    58. function neuesBild() {
    59.     // immer ein Bild vorausladen
    60.     if ( (aktuell < (bilderAnzahl-2)) && (bilder.length < bilderAnzahl) ) {
    61.         bilder[aktuell+2] = new Image();
    62.         bilder[aktuell+2].src =  bilderPfad + "0" + ((aktuell+3)<10 ? "0" + (aktuell+3) : (aktuell+3)) + ".jpg"
    63.         bilder[aktuell+2].xOpacity = 0;
    64.         d.getElementById("slideshow").appendChild(bilder[aktuell+2]);
    65.     }
    66. }
     
    Последнее редактирование модератором: 29.12.2007
  2.  
  3. Jkr
    Offline

    Jkr Группа поддержки

    Регистрация:
    04.08.2006
    Сообщения:
    464
    Симпатии:
    27
    Пол:
    Мужской
    Ответ: Как сделать вывод изображений рандомом

    а откуда берет изображения? из папки?
    bilder[1].src = bilderPfad + "002.jpg"; - вот эта строка так и задана? тут жестко прописано название одной картинки... она что, называется одинаково, но лежит в разных папках?
     
  4. Kozloff
    Offline

    Kozloff Недавно здесь

    Регистрация:
    14.11.2007
    Сообщения:
    7
    Симпатии:
    0
    Ответ: Как сделать вывод изображений рандомом

    Берет изображение из папки которая находится в /templates/jp_modern_desktop/slideshow
    Все картинки имеют вид slideshow-00*, где "*" - номер картинки, например:
    slideshow-001.jpg
    slideshow-002.jpg
    slideshow-003.jpg
    и так далее.
    В этой же папке лежит указанный выше файл конфигурации.
    И файл Readme со следующей информацией:
    Пример сайта можно посмотреть на http://antonkozloff.com/
     
  5. Jkr
    Offline

    Jkr Группа поддержки

    Регистрация:
    04.08.2006
    Сообщения:
    464
    Симпатии:
    27
    Пол:
    Мужской
    Ответ: Как сделать вывод изображений рандомом

    смотреть надо функцию function neuesBild(), а точнее, вот эту строчку:
    Код (CODE):
    1. bilder[aktuell+2].src =  bilderPfad + "0" + ((aktuell+3)<10 ? "0" + (aktuell+3) : (aktuell+3)) + ".jpg"


    вместо aktuell+3 надо подставлять случайное число... т.к. я в js не силен, я могу только подсказать алгоритм, а на практике придется доводить самостоятельно...
    1) для генерации случайного числа нашел функцию (второе попавшееся из яндекса):
    Код (CODE):
    1. function getrandom() {
    2.  
    3. var min_random = 0;
    4. var max_random = 10;
    5.  
    6. max_random++;
    7.  
    8. var range = max_random - min_random;
    9. var n=Math.floor(Math.random()*range) + min_random;
    10.  
    11. return n;
    12. }


    2) вставляем ее в начало нужной нам функции... задаем нужные границы, получаем что-то типа:

    Код (CODE):
    1. function neuesBild() {
    2. // immer ein Bild vorausladen
    3.  
    4. if ( (aktuell < (bilderAnzahl-2)) && (bilder.length < bilderAnzahl) ) {
    5.  
    6. var min_random = 1;
    7. var max_random = bilderAnzahl;
    8.  
    9. max_random++;
    10.  
    11. var range = max_random - min_random;
    12. var n=Math.floor(Math.random()*range) + min_random;
    13.  
    14.  
    15. bilder[aktuell+2] = new Image();
    16. bilder[aktuell+2].src = bilderPfad + "0" + ((n)<10 ? "0" + (n) : (n)) + ".jpg"
    17. bilder[aktuell+2].xOpacity = 0;
    18. d.getElementById("slideshow").appendChild(bilder[aktuell+2]);
    19. }
    20. }


    что-то подсказывает мне, что это не полное решение, но хотябы начать с этого и посмотреть, что получится ;)
    было бы проще, если бы знающие js на уровне выше "метода тыка" люди помогли (алгоритм-то простой)...
     
  6. Лат
    Offline

    Лат Звоните 8 (905) 778-52-44

    Регистрация:
    31.01.2007
    Сообщения:
    1 745
    Симпатии:
    113
    Пол:
    Мужской
    Ответ: Как сделать вывод изображений рандомом

    а что, слайдер изображений выводящий картинки рандомно сложно найти?
     
  7. Jkr
    Offline

    Jkr Группа поддержки

    Регистрация:
    04.08.2006
    Сообщения:
    464
    Симпатии:
    27
    Пол:
    Мужской
    Ответ: Как сделать вывод изображений рандомом

    ИМХО, правильнее было бы выложить ссылку на него, а не демонстрировать всем нелинейность своего мышления... иначе практического смысла в посте нет: только показать всем, какой я хороший.

    _http://www.rocketwerx.com/joomla/extensions/rokslideshow/ - вот например модуль (обращать внимание на пробел в ссылке). а не больше ли проблем будет с его встраиванием в шаблон? надеюсь, что нет.
     
  8. Kozloff
    Offline

    Kozloff Недавно здесь

    Регистрация:
    14.11.2007
    Сообщения:
    7
    Симпатии:
    0
    Ответ: Как сделать вывод изображений рандомом

    Всем спасибо, в результате выбрал слайдер стороннего разработчика.
     
  9. Лат
    Offline

    Лат Звоните 8 (905) 778-52-44

    Регистрация:
    31.01.2007
    Сообщения:
    1 745
    Симпатии:
    113
    Пол:
    Мужской
    Ответ: Как сделать вывод изображений рандомом

    Модулей слишком много подобной направленности, уважаемый. Я борюсь с привычкой тупо тыкать и говорить- это 1000% то что вам нужно. Я всегда анализирую и предлагаю варианты. В данный момент НЕ было вопроса
    Поэтому я внес рацпредложение путем наводящего вопроса. Но в режиме бесплатной поддержки у меня не так много времени для того чтобы отвечать на вопросы, которые могут быть гипотетически заданы после моего наводящего вопроса. Если бы меня спросили конкретно- я бы ответил( как я это делаю всегда- можете изучить мои сообщения).

    Убедительная просьба изучить правила.


    15. На Форуме запрещаются нецензурные выражения (маты) и оскорбления в любом виде и направленные по отношению к любому участнику форума. Вы понесете за это наказание, тем более если вы попытаетесь оскорбить администраторов или модераторов. Тут с вами поступят еще более жестко.

    19. Категорически запрещены пререкания с администрацией и модераторами.
    ------------------------------------------
    Еще более сильно мы не любим того, что вы ее игнорируете и пытаетесь сэкономить свое время и заставляя нас что-либо делать за вас. Помните - мы ничего вам не должны.



    P.S Да, я хороший.
     
    Последнее редактирование: 28.12.2007
  10. Jkr
    Offline

    Jkr Группа поддержки

    Регистрация:
    04.08.2006
    Сообщения:
    464
    Симпатии:
    27
    Пол:
    Мужской
    Ответ: Как сделать вывод изображений рандомом

    Ну, во-первых, если их и "слишком много" (слишком для чего? для того, чтобы вы их все просмотрели?), то все они собраны вот здесь: http://ext.joom.ru/slideshow.html - можно было хоть сюда ссылку указать.
    А во-вторых, если по ним пробежаться и отфильтровать те, у которых нет функции рандома, платные, те, у которых версия выше 0.0.1 alpha и которые обновлялись >300 дней назад, а для верности еще и проверить на extensions.joomla.org, то останется их крайне мало (а проще говоря, 3-4).

    я тоже. поэтому, я, во-первых, смотрю на сайт автора вопроса (если есть возможность), во-вторых, либо проверяю модуль у себя на тестовом сайте (если не сталкивался с ним до этого), либо оговариваю, что этот модуль "возможно (наверно, например, вероятно...), поможет".

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


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

    - это уже не совсем так. Из моего личного опыта, например: http://joomla-support.ru/thread/2627/. А еще вы как-то проигнорировали мое вам личное сообщение по поводу вопроса, достаточно специфического, чтобы не задавать его публично. Хотя, может, это касается только меня, в силу каких-то индивидуальных причин.

    я их великолепно знаю и читал уже ни один раз. если мой предыдущий пост похож на оскорбление или, тем более, на пререкание, то не меньше на оное похоже и ваше "а что, слайдер изображений выводящий картинки рандомно сложно найти?"
    или это было предупреждение, чтобы я не отвечал (т.е. не писал вот этот пост)? ну, уж извините, но таким образом меня заставить замолчать сложно...


    Это вообще к кому было обращение? Если ко мне, то:
    1) я потратил времени на поиск подходящих решений для топикстартера явно побольше вас;
    2) я никого ни к чему не принуждал;
    А вот конец: "Помните - мы ничего вам не должны." меня вообще убил:
    1) кто такие "мы" и "вы"? Вот уже одно это высказывание я могу считать очень большим оскорблением:
    - вариант а: "мы" - команда russian joomla team, "вы" - обычные юзеры. простите, но я тут вроде как не совсем простой пользователь... да, я не модератор, но мне не обязательно быть модом, чтобы помогать людям и тем самым способствовать популяризации joomla; я просто достаточно ответственно отношусь к таким вещам и понимаю, что я не отвечаю некоторым требованиям (например, частоте посещений - иногда, бывает, пропадаю на 3-4 дня)
    - вариант б: "мы" - профессиональные пользователи/гениальные люди/joomla-гуру, "вы" - ламера. тут, я думаю, объяснять не надо?
    2) Так я, вроде, ничего и не требовал. Я просто высказал, как, по моему скромному мнению, правильнее было бы поступить в сложившейся ситуации.

    P.S. Да я тоже ничего...
     
    Последнее редактирование модератором: 31.03.2014
  11. Лат
    Offline

    Лат Звоните 8 (905) 778-52-44

    Регистрация:
    31.01.2007
    Сообщения:
    1 745
    Симпатии:
    113
    Пол:
    Мужской
    Ответ: Как сделать вывод изображений рандомом

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

    P.S Я не обязан отвечать на форуме и на личное сообщение.
    P.P.S Вопрос относительно сложно найти был задан в контексте- если вам сложно найти- поищу я.
     
    Последнее редактирование: 28.12.2007
Статус темы:
Закрыта.

Поделиться этой страницей

Загрузка...