Просмотр слайдов с одного узла


11

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


ИМО для узла на изображение является IMO предпочтительным способом сделать это, поскольку он более гибкий. Вы можете публиковать / отменять публикацию узлов, добавлять заголовок / текст описания / ссылки на узлы, которые можно использовать в слайд-шоу, очередь узлов можно использовать для организации сортировки и т. Д. И т. Д. Вы должны добавить проблемы, с которыми вы фактически сталкиваетесь, в одном узле. подход слайд-шоу, что вы пробовали, что случилось, что сломано и т. д. Также это Drupal 6 или 7? Какой модуль слайд-шоу вы используете?
googletorp

@googletorp Я использую модуль «Слайд-шоу просмотров» с Drupal 7. Это будет простая слайд-шоу / вводная страница, и мне больше ничего не нужно, кроме простого слайд-шоу изображений без заголовка, описания, кнопок навигации и т. д. Я настроил вид так: формат : Слайд-шоу, шоу: поля, контент: вступление (это мой тип контента для этого узла). Теперь он показывает изображения по одному в одном ряду.
смог

Ответы:


10

В настройках поля изображения в разделе « Настройки нескольких полей» есть флажок «Показать все значения в одной строке», который установлен по умолчанию. Если снять этот флажок, каждое изображение будет помещено в новый ряд, и оно будет работать так, как вам нужно. Я знаю, что представления имели эту функцию по крайней мере со второй версии, но в старых версиях ее можно было бы назвать немного иначе.

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


7

Модуль Field Slideshow - именно то, что вам нужно. Все изображения содержатся внутри узла (без раздувания узла), и он использует цикл jquery (так же, как слайд-шоу видов) для создания динамической галереи и слайд-шоу.


2

Недавно я создал сайт с простыми галереями, и я вообще не использовал дополнительные модули для слайд-шоу. Все, что мне было нужно, это jQuery Cycle и небольшой javascript, добавленный в мою собственную тему. Этот сайт имеет тип контента 'photo' и словарь 'album' для назначения фотографий различным альбомам. Представление создает список фотографий, отфильтрованных по альбому. В моей теме у меня есть файл js, который выглядит следующим образом:

(function($){

Drupal.behaviors.myAlbumSlideshow = {
  attach: function(){
    var slideshowContent = $('.view-fotoalbum.view-display-id-page_1>.view-content');

    slideshowContent.before('<div id="slideshow-prev">&lt;</div><div id="slideshow-next">&gt;</div>');

    slideshowContent.cycle({
      fx:       'scrollHorz',
      next:     '#slideshow-next',
      prev:     '#slideshow-prev',
      timeout:  0
    });

    var slideshowHeight = slideshowContent.height() + 'px';
    $('#slideshow-prev, #slideshow-next').css('lineHeight', slideshowHeight);
  }
}

})(jQuery)

Прикосновение CSS завершает это:

.view-fotoalbum {
  width: 710px;
  margin-right: 10px;
}

.view-fotoalbum #slideshow-prev {
  color: #808080;
  border-right: 1px solid #808080;
  cursor: pointer;
  float: left;
  line-height: 300px;
  margin-left: -40px;
  text-align: center;
  width: 30px;  
}

.view-fotoalbum #slideshow-next {
  color: #808080;
  border-left: 1px solid #808080;
  cursor: pointer;
  float: right;
  line-height: 300px;
  margin-right: -40px;
  text-align: center;
  width: 30px;
}

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


2

Вы можете рассмотреть возможность использования модуля Galleria . Он использует один узел и отображает изображения из него в виде слайд-шоу.


Да, я знаю этот модуль и использую его на том же сайте, что и галерея. Но трудно получить простое слайд-шоу без каких-либо кнопок навигации и т. Д. Но это не имеет значения, я остаюсь с изображением на систему узлов. Также модуль galleria не работает, когда я включаю сжатие js в конфигурации >> производительность; /
smogg

2

Я обнаружил хороший способ иметь несколько изображений и несколько ссылок на изображение в одном узле:

Что вы хотите сделать, так это убедиться, что для полей типа изображения и ссылки установлено неограниченное количество типов контента. При создании представления также убедитесь, что «Отображать все значения в одной строке» НЕ отмечен. Добавьте дельта-поле для вашего изображения и для вашей ссылки. Добавьте фильтр Global: PHP и установите код фильтра следующим образом: return (! $ Row-> delta == $ row-> delta_1);

Это должно сделать это. Вам нужно будет установить PHP-модуль Views, чтобы использовать PHP в качестве фильтра.


2

Чтобы отобразить несколько изображений одного узла в слайдере, используйте модуль блока динамического отображения и прочитайте настройку конфигурации. В этом случае, когда вы создаете представление для показа блока слайдера, пожалуйста, не устанавливайте флажок при добавлении изображения с «Показать настройки нескольких полей», если оно уже отмечено, затем снимите этот флажок.



1

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

По сути, я искал способ отобразить в слайд-шоу несколько различных полей - все они прикреплены к одному узлу. Эти поля включали как графические, так и текстовые поля. Итак, для отображения всех полей, прикрепленных к одному узлу в слайд-шоу:

  1. Создайте вид для вашего слайд-шоу. Используйте формат «Неформатированный список».
  2. Установите представление для отображения только одного элемента, чтобы иметь дело только с одним узлом (или использовать контекстный фильтр: NID)
  3. Добавьте все поля, которые вы хотите отобразить в слайд-шоу. Исключить все поля из отображения.
  4. Добавьте настраиваемое поле (убедитесь, что это поле отображается после всех полей, исключенных из отображения). Здесь вы создадите базовую разметку для слайд-шоу. Используя доступные шаблоны замены, установите каждое доступное поле внутри liэлемента следующим образом:
    
    <ul id="slider">
    <li>[text_field_1]</li>
    <li>[image_field_1]</li>
    <li>[text_field_2]</li>
    <li>[image_field_2]</li>
    </ul>
    
    
  5. Затем вы можете запустить предпочитаемый слайдер jQuery. Если вы уже установили плагин jQuery Cycle , вы можете легко запустить его на слайдере. Просто убедитесь, что плагин загружен на страницу с вашим ползунком, а затем запустите его на только что созданном ul:
    
    (function ($, Drupal, window, document, undefined) {
    
        $(document).ready(function() {
            $('#slider').cycle({
            // choose your options
        });
        });
    
    })(jQuery, Drupal, this, this.document);
    
    

И тебе должно быть хорошо идти.


0

Существует модуль https://www.drupal.org/project/field_slideshow, который предназначен для создания слайд-шоу из одного узла.

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.