asdanger |
|
||
---|---|---|---|
Добрый день!
Или же как добавить в плагин highslide теги,
используемые в данном примере. |
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
|
|
This post was edited by Roffun (2020-02-18 00:12, 4 years ago) |
asdanger |
|
---|---|
Ну вот и замечательно! |
kushelbek |
|
---|---|
Добрый день, Roffun подскажите пожалуйста, перенос с модуля Files от Alex300, в плагин Attacher есть ли такая возможность или все изображения по новой грущить нужно будет? Или же писать надстройку для переноса? Заранее спасибо. Добавлено 4 часа спустя: Вроде перенес все фоты, на тестовой площадке полет нормальный. Добавлено 7 минут спустя: Такой вопрос в плагине Indexnews условие
|
|
This post was edited by kushelbek (2019-08-06 11:47, 5 years ago) |
Roffun |
|
---|---|
#44340 kushelbek: Здравствуйте, чтобы не перезаливать, нужно установить плагин attacher на тестовом сайте (чтобы создалась структура базы), затем скачать дамп таблицы модуля files, подкорректировать в нём параметры, и попытаться импортировать в созданную таблицу. Затем нужно пройтись запросами по базе page, изменив структуру url изображений которые вставлялись в контент. Переименовать оригиналы изображений в папке модуля и перенести в соответствующую папку плагина (любой программой для массового переименования).
#44340 kushelbek: Такой вопрос в плагине Indexnews условие Здесь пока ничего не могу сказать кроме того, что в условии четвертый параметр указан, а в выводе нет. Немного позже проверю и отпишу здесь. Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
|
kushelbek |
|
---|---|
#44341 Roffun: Здравствуйте, Так и сделал, переименовал столбцы в таблице модуля под структуру вашего плагина, файлы не переносил в другую папку, Ващ плагин их от туда прекрасно забирает =)))
Добавлено 26 секунд спустя: #44341 Roffun: Спасибо! Добавлено 4 минуты спустя: Добавил 'images' В вывод изображения, все заработало, спасибо. Был не внимателен. |
Roffun |
|
---|---|
#44342 kushelbek: Это потому что пути оригиналов не изменены. Я бы рекомендовал перенос оригиналов, миниатюры не нужно, они пересоздадутся. В модуле оригиналы лежат по адресу, указанному в настройках, а в плагине соответственно будут лежать по адресу указанному в настройках плагина. Если приставка или путь будут отличаться, то лучше перенести. Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
|
kushelbek |
|
---|---|
#44343 Roffun:#44342 kushelbek: Понял, спасибо за совет. Вопрос в догонку, аватары так же можно выводить через плагин? |
Roffun |
|
---|---|
#44344 kushelbek: Можно. Теоритически можно даже элементы дизайна так выводить, например шапку. Если параметр area передать, например вывести для админа в header.tpl форму, где в качестве параметра передать произвольное имя и id. Например шапка, и хотим ей присвоить id 1. Тогда форма загрузки будет : {PHP|att_filebox('header', 1)} А вызов: {PHP|att_get('header',1) ..
Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
|
kushelbek |
|
---|---|
#44345 Roffun:#44344 kushelbek: Кайф! нужно пробовать, эксперементировать. Благодарю! =) Добавлено 2 дня спустя: Добрый день Roffun. Подскажите пожалуйста, если возможность вывода нескольких шаблонов под галереи? Имею ввиде attacher.gallery1.tpl и attacher.gallery2.tpl ? Нужно для того, что бы на страницах портфолио выводилась своя галерея, а на всех остальных своя. Или нужно в файле attacher.function.php добавить новую функцио под вторую галерею? Спасибо. |
|
This post was edited by kushelbek (2019-08-09 12:49, 5 years ago) |
Roffun |
|
---|---|
#44346 kushelbek: Можно любое количество выводить, для этого нужно указать имя tpl файла, а чтобы не подтягивала одна галерея изображения другой, используется атрибут data Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
|
kushelbek |
|
---|---|
#44348 Roffun:#44346 kushelbek: выводим типа так: -первая галерея <!-- IF {PAGE_ID|att_count('page',$this,'gallery','images')} > 0 --> < div data-att-gallery = "gallery1" > < h3 >{PHP.L.att_gallery}</ h3 > {PAGE_ID|att_gallery('page',$this,' gallery','attacher.gallery')} </ div > <!-- ENDIF --> -вторая галерея <!-- IF {PAGE_ID|att_count('page',$this,'folio','images')} > 0 --> < div data-att-gallery = "gallery2" > < h3 >{PHP.L.att_gallery}</ h3 > {PAGE_ID|att_gallery('page',$this,' folio','attacher.gallery')} </ div > <!-- ENDIF --> В папке themes/{PHP.theme}/plugins/attacher я создаю два tpl с шаблонами под каждую галрею, верно? У меня два загрузчика, один под галерею, второй под фолио. правильно я понял как это реализовывать?
Добавлено 32 минуты спустя:
attacher.gallery - файл шаблона галереи, верно?
Добавлено 9 секунд спустя: Вроде выводится как надо =) |
|
This post was edited by kushelbek (2019-08-09 14:06, 5 years ago) |
Roffun |
|
---|---|
Если установлен highslide, то можно использовать параметр data-att-group А если нужно разные tpl, то замените attacher.gallery на свой и положите его в папку. Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
|
kushelbek |
|
---|---|
#44350 Roffun: так и сделал. все прекрасно работает, благодарю :-) Добавлено 1 день спустя: Добрый день Roffun. Подскажите подалуйста по аватарам, не получается вывести через ваш плагин. В модуле files была возможность вывода так: <img src="{PHP.usr.profile.user_avatar|cot_files_user_avatar_url($this)}" alt="{PHP.usr.profile.user_name}" /> Есть теги {USERS_PROFILE_AVATAR} и {USERS_EDIT_AVATAR} модуль на их место выводит форму загрузки аватара пользователя. Я так понял, что для аватаров нужно использовать родной userimages ? |
|
This post was edited by kushelbek (2019-08-13 08:47, 5 years ago) |
Roffun |
|
---|---|
#44352 kushelbek: Модуль files - это объединённые в один модуль 3 расширения:
Attacher - это версия на основе Attach2, со своими улучшениями, поэтому при необходимости модуль PFS или плагин Userimages, можно использовать параллельно, они не конфликтуют. Специальной функции для аватаров в плагине на данный момент нет. Теория: так как прикрепить можно к любому объекту, загрузка изображения для аватара средствами плагина Attacher может быть такой: прикрепление в users.profile.tpl {USERS_PROFILE_ID|att_filebox('users_avatars',$this,'avatar','image',1)} вывод в users.details.tpl <img src="{USERS_DETAILS_ID|att_get('users_avatars',$this,'avatar')|att_thumb($this,280,180,'crop')}" alt="{USERS_DETAILS_NICKNAME}">
Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
|