Forumlar / National / Russian / Модули и плагины / Attacher - релиз

<<<1234567>>>

asdanger
#46 2019-07-15 14:27

Добрый день!
Очень понравились Ваши плагины, но пока не могу разобраться - можно ли как-то напрямую обращаться к файлам по полу сортировки для добавления в цикл - как это сделано в данном примере?

<!-- IF {PRD_MAVATAR.1} -->
<div class="uk-thumbnail">
    <a data-uk-lightbox="{group:'my-group'}" href="{PRD_MAVATAR.1|cot_mav_thumb($this, 840, 450, crop)}">
        <img width="840" height="450" src="{PRD_MAVATAR.1|cot_mav_thumb($this, 840, 450, crop)}" alt="{PRD_SHORTTITLE} г.{PRD_CITY} - {PHP.L.Description_Market}" title="{PRD_SHORTTITLE} г.{PRD_CITY} - {PHP.L.Description_Market}"/>
    </a>
</div>
<!-- ENDIF -->
<!-- IF {PRD_MAVATARCOUNT} -->
    <div class="uk-grid-width-small-1-2 uk-grid-width-medium-1-2 uk-grid-width-large-1-4 uk-margin-top" data-uk-grid="{gutter: 10}" >
        <!-- FOR {KEY}, {VALUE} IN {PRD_MAVATAR} -->
        <!-- IF {KEY} != 1 -->
        <div>
            <a data-uk-lightbox="{group:'my-group'}" href="{VALUE|cot_mav_thumb($this, 840, 450, crop)}"><img src="{VALUE|cot_mav_thumb($this, 840, 450, crop)}" alt="{PRD_SHORTTITLE} г.{PRD_CITY} - {PHP.L.Description_Market}" title="{PRD_SHORTTITLE}  г.{PRD_CITY} - {PHP.L.Description_Market}"/></a>
        </div>
        <!-- ENDIF -->
        <!-- ENDFOR -->
    </div>
<!-- ENDIF -->

Или же как добавить в плагин highslide теги, 

{PRD_SHORTTITLE} {PRD_CITY}

используемые в данном примере.

Roffun
#47 2019-07-15 17:49

Здравствуйте,

для вывода в цикле есть готовые функции, в которых указывается 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

Bu konu Roffun tarafından düzenlendi(2020-02-18 00:12, 4 yıllar önce)
asdanger
#48 2019-07-16 02:38

Ну вот и замечательно!
Спасибо, всё заработало!

kushelbek
#49 2019-08-06 06:57

Добрый день, Roffun подскажите пожалуйста, перенос с модуля Files от Alex300,  в плагин Attacher есть ли такая возможность или все изображения по новой грущить нужно будет? Или же писать надстройку для переноса?

Заранее спасибо.

Добавлено 4 часа спустя:

Вроде перенес все фоты, на тестовой площадке полет нормальный. 

Добавлено 7 минут спустя:

Такой вопрос в плагине Indexnews условие

 <!-- IF {PAGE_ROW_ID|att_count('page',$this,'logo','images')} > 0 --> ... <!-- ENDIF -->

не выводитизображение, если условие убираю, то все норм.

Вывожу вот так: <img src="{PAGE_ROW_ID|att_get('page',$this,'logo')|att_thumb($this,370,310,'crop')}" alt="{PAGE_ROW_SHORTTITLE}">


Bu konu kushelbek tarafından düzenlendi(2019-08-06 11:47, 4 yıllar önce)
Roffun
#50 2019-08-06 12:17
#44340 kushelbek:

Добрый день, Roffun подскажите пожалуйста, перенос с модуля Files от Alex300,  в плагин Attacher есть ли такая возможность или все изображения по новой грущить нужно будет? Или же писать надстройку для переноса?

Заранее спасибо.

Добавлено 4 часа спустя:

Вроде перенес все фоты, на тестовой площадке полет нормальный. 

Здравствуйте,

чтобы не перезаливать,  нужно установить плагин attacher на тестовом сайте (чтобы создалась структура базы), затем скачать дамп таблицы модуля files, подкорректировать в нём параметры, и попытаться импортировать в созданную таблицу.

Затем нужно пройтись запросами по базе page, изменив структуру url изображений которые вставлялись в контент.

Переименовать оригиналы изображений в папке модуля и перенести в соответствующую папку плагина (любой программой для массового переименования).

 

#44340 kushelbek: Такой вопрос в плагине Indexnews условие

 <!-- IF {PAGE_ROW_ID|att_count('page',$this,'logo','images')} > 0 --> ... <!-- ENDIF -->

не выводитизображение, если условие убираю, то все норм.

Вывожу вот так: <img src="{PAGE_ROW_ID|att_get('page',$this,'logo')|att_thumb($this,370,310,'crop')}" alt="{PAGE_ROW_SHORTTITLE}">

Здесь пока ничего не могу сказать кроме того, что в условии четвертый параметр указан, а в выводе нет. Немного позже проверю и отпишу здесь.

Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
kushelbek
#51 2019-08-06 12:23
#44341 Roffun:
Здравствуйте,

чтобы не перезаливать,  нужно установить плагин attacher на тестовом сайте (чтобы создалась структура базы), затем скачать дамп таблицы модуля files, подкорректировать в нём параметры, и попытаться импортировать в созданную таблицу.

Затем нужно пройтись запросами по базе page, изменив структуру url изображений которые вставлялись в контент.

Переименовать оригиналы изображений в папке модуля и перенести в соответствующую папку плагина (любой программой для массового переименования).

 

#44340 kushelbek: Такой вопрос в плагине Indexnews условие

 <!-- IF {PAGE_ROW_ID|att_count('page',$this,'logo','images')} > 0 --> ... <!-- ENDIF -->

не выводитизображение, если условие убираю, то все норм.

Вывожу вот так: <img src="{PAGE_ROW_ID|att_get('page',$this,'logo')|att_thumb($this,370,310,'crop')}" alt="{PAGE_ROW_SHORTTITLE}">

Так и сделал, переименовал столбцы в таблице модуля под структуру вашего плагина, файлы не переносил в другую папку, Ващ плагин их от туда прекрасно забирает =)))

 

Добавлено 26 секунд спустя:

#44341 Roffun:

Здесь пока ничего не могу сказать кроме того, что в условии четвертый параметр указан, а в выводе нет. Немного позже проверю и отпишу здесь.

Спасибо!

Добавлено 4 минуты спустя:

Добавил 'images' В вывод изображения, все заработало, спасибо. Был не внимателен.

Roffun
#52 2019-08-06 13:23
#44342 kushelbek:

Так и сделал, переименовал столбцы в таблице модуля под структуру вашего плагина, файлы не переносил в другую папку, Ващ плагин их от туда прекрасно забирает =)))

Это потому что пути оригиналов не изменены. Я бы рекомендовал перенос оригиналов, миниатюры не нужно, они пересоздадутся. В модуле оригиналы лежат по адресу, указанному в настройках, а в плагине соответственно будут лежать по адресу указанному в настройках плагина. Если приставка или путь будут отличаться, то лучше перенести.

Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
kushelbek
#53 2019-08-06 13:33
#44343 Roffun:
#44342 kushelbek:

Так и сделал, переименовал столбцы в таблице модуля под структуру вашего плагина, файлы не переносил в другую папку, Ващ плагин их от туда прекрасно забирает =)))

Это потому что пути оригиналов не изменены. Я бы рекомендовал перенос оригиналов, миниатюры не нужно, они пересоздадутся. В модуле оригиналы лежат по адресу, указанному в настройках, а в плагине соответственно будут лежать по адресу указанному в настройках плагина. Если приставка или путь будут отличаться, то лучше перенести.

Понял, спасибо за совет. 

Вопрос в догонку, аватары так же можно выводить через плагин?

Roffun
#54 2019-08-06 13:46
#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
#55 2019-08-06 13:51
#44345 Roffun:
#44344 kushelbek:

Вопрос в догонку, аватары так же можно выводить через плагин?

Можно.

Теоритически можно даже элементы дизайна так выводить, например шапку. Если параметр area передать, например вывести для админа в header.tpl форму, где в качестве параметра передать произвольное имя и id.

Например шапка, и хотим ей присвоить id 1. Тогда форма загрузки будет :

{PHP|att_filebox('header', 1)}

А вызов:

{PHP|att_get('header',1) ..

 

Кайф! нужно пробовать, эксперементировать. Благодарю! =)

Добавлено 2 дня спустя:

Добрый день Roffun. Подскажите пожалуйста, если возможность вывода нескольких шаблонов под галереи? Имею ввиде attacher.gallery1.tpl и attacher.gallery2.tpl ?

Нужно для того, что бы на страницах портфолио выводилась своя галерея, а на всех остальных своя. 

Или нужно в файле attacher.function.php  добавить новую функцио под вторую галерею?

Спасибо.


Bu konu kushelbek tarafından düzenlendi(2019-08-09 12:49, 4 yıllar önce)
Roffun
#56 2019-08-09 13:22
#44346 kushelbek:
 

Добрый день Roffun. Подскажите пожалуйста, если возможность вывода нескольких шаблонов под галереи? Имею ввиде attacher.gallery1.tpl и attacher.gallery2.tpl ?

Нужно для того, что бы на страницах портфолио выводилась своя галерея, а на всех остальных своя. 

Или нужно в файле attacher.function.php  добавить новую функцио под вторую галерею?

Спасибо.

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

Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
kushelbek
#57 2019-08-09 13:32
#44348 Roffun:
#44346 kushelbek:
 

Добрый день Roffun. Подскажите пожалуйста, если возможность вывода нескольких шаблонов под галереи? Имею ввиде attacher.gallery1.tpl и attacher.gallery2.tpl ?

Нужно для того, что бы на страницах портфолио выводилась своя галерея, а на всех остальных своя. 

Или нужно в файле attacher.function.php  добавить новую функцио под вторую галерею?

Спасибо.

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

выводим типа так:

-первая галерея

<!-- 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 минуты спустя:

{PAGE_ID|att_gallery('page',$this,'folio','attacher.gallery')}

attacher.gallery - файл шаблона галереи, верно?

 

Добавлено 9 секунд спустя:

Вроде выводится как надо =)


Bu konu kushelbek tarafından düzenlendi(2019-08-09 14:06, 4 yıllar önce)
Roffun
#58 2019-08-09 14:09

Если установлен highslide, то можно использовать параметр data-att-group

А если нужно разные tpl, то замените attacher.gallery на свой и положите его в папку.

Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
kushelbek
#59 2019-08-12 07:09
#44350 Roffun:

Если установлен highslide, то можно использовать параметр data-att-group

А если нужно разные tpl, то замените attacher.gallery на свой и положите его в папку.

так и сделал. все прекрасно работает, благодарю :-)

Добавлено 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 ?


Bu konu kushelbek tarafından düzenlendi(2019-08-13 08:47, 4 yıllar önce)
Roffun
#60 2019-08-13 12:27
#44352 kushelbek:

В модуле files была возможность вывода так:

<img src="{PHP.usr.profile.user_avatar|cot_files_user_avatar_url($this)}" alt="{PHP.usr.profile.user_name}" />

Модуль files - это объединённые в один модуль 3 расширения:

  1. Attach2
  2. Userimages
  3. PFS

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

<<<1234567>>>