Roffun |
|
---|---|
Здравствуйте, для вывода в цикле есть готовые функции, в которых указывается tpl файл шаблона. Например: <!-- IF {PRJ_ID|att_count('projects',$this)} > 0 --> <div data-att-display="all"> <h3>{PHP.L.att_attachments}</h3> {PRJ_ID|att_display('projects', $this, '', 'attacher.display', 'all')} </div> <!-- ENDIF --> В этом случае содержимое цикла будет в файле attacher.display.tpl. Если используется плагин highslide, то для него есть свой шаблон: highslide.attacher.gallery.tpl, вызывается так: <!-- IF {PRJ_ID|att_count('projects', $this, '', 'images')} > 0 --> <div data-att-gallery="highslide" data-att-group="test"> <h3>{PHP.L.att_gallery}</h3> {PRJ_ID|att_display('projects', $this, '', 'highslide.attacher.gallery', 'images')} </div> <!-- ENDIF --> Чтобы не править в оригиналах, tpl файлы можно скопировать в одноименную папку в шаблоне, и в них править что нужно. Вообще вариантов много, в большинстве случаев достаточно использования функций плагина, при желании изменив код tpl шаблона. Для вызова первой прикрепленной картинки есть вариант вызова: {PRJ_ID|att_get('projects', $this, '', '', 'first')|att_thumb($this, 840, 450, crop)} Также можно при желании сделать не одну форму загрузки а несколько, передав параметр field. Например для первой картинки один загрузчик, для всех остальных второй, тогда не придётся выбирать первую или все кроме первой, достаточно будет вызвать обычный код с указанием имени поля. Нумерация, описания добавленные в форму загрузчика, всё доступно в tpl файлах вызываемых через функции плагина, но внутри них недоступны теги извне. Функция att_get() получает сырые данные для 1 файла (первый, последний, или случайный). Но если нужно именно в цикле получить данные с помощью конструкции FOR, понадобится массив, который можно получить функцией att_get_all(). Она предназначена именно для этих целей. Если перевести код который указан в вашем примере в конструкцию Аттачера, и применить функцию att_get_all(), код будет примерно таким: <!-- IF {PRJ_ID|att_count('projects',$this,'','images')} > 0 --> <div data-att-gallery="highslide" data-att-group="my-img"> <a href="{PRJ_ID|att_get('projects', $this, '', '', 'first')|att_thumb($this, 840, 450, crop)}" class="highslide" title="{PRJ_SHORTTITLE} г.{PRJ_CITY} - {PHP.L.Description_Market}"> <img width="840" height="450" src="{PRJ_ID|att_get('projects', $this, '', '', 'first')|att_thumb($this, 840, 450, crop)}" alt="{PRJ_SHORTTITLE} г.{PRJ_CITY} - {PHP.L.Description_Market}"> </a> </div> <div data-att-gallery="highslide" data-att-group="my-any-group"> <!-- FOR {KEY}, {VALUE} IN {PRJ_ID|att_get_all('projects',$this, '', '')} --> <!-- IF {KEY} != 1 --> <a href="{VALUE.att_id|att_thumb($this, 840, 450, crop)}" class="highslide" title="{PRD_SHORTTITLE} г.{PRD_CITY} - {PHP.L.Description_Market}"> <img src="{VALUE.att_id|att_thumb($this, 840, 450, crop)}" alt="{PRJ_SHORTTITLE} г.{PRJ_CITY} - {PHP.L.Description_Market}"> </a> <!-- ENDIF --> <!-- ENDFOR --> </div> <!-- ENDIF --> Только приставки {PRJ_ нужно поменять на {PRD_ если используется другой модуль (в примере конструкция для модуля projects). P.S. Скачайте обновлённую версию плагина из репозитория Github, в ней уже есть эта функция. Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
|
|
Відредаговано: Roffun (18.02.2020 00:12, 4 року тому) |