TYPO3: Попытка добавить ссылку на изображение

На нашем сайте другие администраторы добавляют изображения через вкладку «Ресурсы» на главной странице. Эти изображения отображаются в виде баннеров в слайдере на главной странице. Однако теперь они хотят иметь возможность добавлять ссылки на определенные изображения.

Моя первая мысль по этому поводу (после получения некоторой помощи в создании цикла для добавления изображений на страницу) заключалась в том, чтобы, возможно, позволить им добавить ссылку либо в место «Заголовок», либо в «Подпись», которое я там видел. А позже, в функции «создать» ползунка, извлеките указанные данные из изображения и сделайте <a> обтекание изображения до того, как ползунок завершит построение. Я уже протестировал плагин слайдера с этой функциональностью, и он будет работать нормально, однако я не могу вытащить что-либо из «Заголовка» или «Подписи» и каким-либо образом добавить его к изображению.

Другой моей мыслью было бы, есть ли способ расширить серверную часть, чтобы дать им место для вставки ссылок на изображения, чтобы я мог вытащить это и обернуть изображение с помощью типоскрипта, или я могу вытащить из подписи и обернуть изображение в <a> "if" ссылка доступна.

Другими словами, есть ли у typoscript оператор типа «если»? То, что у меня есть до сих пор, благодаря maholtz, выглядит следующим образом:

#BANNER IMAGES LOOP BEGIN
page.10.marks.topimage = TEXT
page.10.marks.topimage {
    # retrieve data
    data = levelmedia: -1, "slide"
    override.field = media
    # we have some filenames in a list, let us split the list
    # and create images one by one
    # if there are five images selected, the CARRAY "1" will be executed
    # five times where current is loaded with only one filename
    split {
        # the images are separated via ","
        token = ,
        # you can do funny stuff with options split, f.e. if you want to give first
        # and last image a different class... but thats another topic;)
        # we just say, render every splitted object via CARRAY "1"
        cObjNum = 1 
        1 {
            # just render the single image, 
            # now there should be one filename in current only
            10 = IMAGE
            10 {
                file.import.wrap = fileadmin/user_upload/|
                file.import.current = 1
                border = 0
                file.height = 670
                file.width = 1800
                altText = Banner
                titleText = Banner
                #   attempt to add link to image if available
                caption.1.typolink.parameter.field = image_link
                caption.1.typolink.parameter.listNum.stdWrap.data = register:IMAGE_NUM_CURRENT
            }
        }
    }
    wrap = <div id="slides">|</div> 
}
#BANNER IMAGES LOOP END

Я думал, что, возможно, я мог бы сделать что-то вроде:

10 {
        file.import.wrap = fileadmin/user_upload/|
        file.import.current = 1
        border = 0
        file.height = 670
        file.width = 1800
        altText = Banner
        titleText = Banner
        #   attempt to add link to image if available
        caption.1.typolink.parameter.field = ???
        caption.1.typolink.parameter.listNum.stdWrap.data = register:IMAGE_NUM_CURRENT
}

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

Как упоминалось ранее, возможно, я мог бы сделать ОДНУ из двух вещей:

  1. Вытащите ссылку из «Заголовка» или «Подписи» и добавьте ее к дате IMAGE на выходе, чтобы я мог использовать эту клиентскую сторону для переноса изображения в соответствующий тег a, |ИЛИ|
  2. Вытяните ссылку оттуда и используйте typoscript, чтобы обернуть изображение в теги a

person SpYk3HH    schedule 26.07.2013    source источник
comment
Не все в TYPO3 нужно делать с помощью typoscript. Вы думали о расширении для этого? Это делает его гораздо более гибким, простым в редактировании и настройке (например, typo3.org /extensions/repository/view/flexslider). Могу порекомендовать, это просто.   -  person Michael    schedule 27.07.2013
comment
@Michael У меня есть, и до сих пор каждое расширение, которое я пытался создать, терпело неудачу и даже полностью приводило к сбою бэкэнда. Пока что это единственный простой способ сделать это без особого редактирования самого content.php. Честно говоря, я программист, несмотря на постороннюю помощь, чтение всей документации, просмотр часов видео (те, которые я смог найти на английском языке), я действительно вообще не понимаю эту вещь. И я единственный здесь, кто может заставить его работать. Мне нужно решение, которое соответствует тому, что я знаю, или содержит пошаговые инструкции. Баннер можно найти на странице @ mtmww.com.   -  person SpYk3HH    schedule 27.07.2013
comment
тем не менее, я мог бы просто сделать все это через php в файле содержимого, но это нежелательно для людей, владеющих сайтом, поскольку они хотят, чтобы как можно больше было сделано через бэкэнд, чтобы они могли в конечном итоге научиться делать это сами ...   -  person SpYk3HH    schedule 27.07.2013
comment
Попробуйте расширение flexslider, оно сделает именно то, что нужно в данном случае. Flexslider также отзывчив, поэтому я думаю, что это может быть решением для вас. Кстати: что вы имеете в виду под content.php?   -  person Michael    schedule 28.07.2013
comment
Какую версию TYPO3 вы используете? Где и как редактируются ссылки? Какая таблица/поле? Ваш пример кода выглядит нормально, но главный вопрос в том, в каком поле вы сохраняете ссылки? ИМХО основная проблема с расширениями в том, что они обычно пишутся ровно для одной задачи... которая никогда не подходит под ваши нужды на 100%...   -  person maholtz    schedule 28.07.2013


Ответы (1)


При доступе к ресурсам через levelmedia = slide вы не получаете прямой доступ к таблице FAL. Поэтому вам нужно загрузить его снова, чтобы получить доступ к нужным полям. Мы решили именно вашу проблему с помощью следующего кода. Вставьте его внутрь вашего 1 после 10 = ИЗОБРАЖЕНИЕ.

typolink{
    parameter{ 
        cObject                             = RECORDS
        cObject{
            source.current                  = 1
            tables                          = sys_file_reference
            conf.sys_file_reference         = TEXT
            conf.sys_file_reference.field   = #title or description
        }
    }
}
person Joschi Kuphal    schedule 29.07.2013