[Plugin] MultiPhotos - прикрепляем к странице несколько фотографий

Бывает так, что нужно прикрепить некоторое неизвестное количество картинок к странице, а связываться со всякими галереями не хочется. Для этой цели я написал плагин на mootools под Evo, выглядит это так:



На случай организации мини-галереи здесь по 2 поля типа TV image в каждом блоке и одно для названия картинки. Превью выводится только для одного.

Как его устанавливать:
1. Добавляем TV тип textarea с именем, например, «photos»
2. Добавляем плагин MultiPhotos, копируем из файла конфигурацию:
&tvIds=TV Ids;text;&templ=Template;text;&role=Role;text;&resize=Resize: enable;list;true,false;false;&crop=Resize: cropping;list;true,false;true;&prefix=Resize: prefix;text;s_;&th_width=Resize: width;text;&th_height=Resize: height;text;&auto_big=Resize: auto big img;list;true,false;false;&auto_small=Resize: auto small img;list;true,false;false;&w=Preview: width;text;&h=Preview: height;text;&thumbUrl=PHPThumb URL;text;
В конфигурации прописываем TV Id. При желании можно указать id шаблона и другие параметры. События — OnDocFormRender и OnBeforeDocFormSave.
(Можно подключать плагин через require_once, для этого нужно раскомментировать там три строчки)

Для вывода картинок прилагается соответствующий сниппет с параметрами: &tvname — имя tv, &outerTpl и &rowTpl — чанки для вывода. Также есть: &fid — вывести картинку под этим номером, &random -вывести случайную картинку, &id — id документа, если вызов сниппета не на той странице, где фотки.

Блоки с сохранёнными картинками можно перетаскивать мышью, меняя их порядок.

Вывод маленьких картинок (первая) в ditto: (сниппет phx:mphoto)

<?php
$fotoArr=json_decode($output);
if ($fotoArr) return $fotoArr[0][0];
?>

В чанке дитто: [+photos:mphoto+]

Плагин требует php5 с json.

UPD. 4.11.10
В новой версии добавил автоуменьшение фото по типу TVimageResizer. Нужно не забыть отметить событие OnBeforeDocFormSave. Прозрачные png тоже можно уменьшать, а не как обычно :) Параметры:
Resize: enable — включить автоуменьшение (true)
Resize: cropping — если включено, картинка подгоняется точно под размеры по меньшей стороне, лишнее отрезается. Если нет — картинка уменьшается по большей стороне.
Resize: prefix — префикс для нового имени фото
Resize: width и Resize: height — размеры для ресайза
Resize: auto big img — если включено, и поле для большой картинки не заполнено, то имя перед ресайзом будет скопировано туда
Resize: auto small img — маленькая картинка будет создана из большой
Ну и старые параметры остались (необязательные):
Preview: width и Preview: height — размеры превью в админке
PHPThumb URL — путь к PHPThumb, если нужно сжимать превью в админке (для ресайза не используется)

UPD. 21.11.10
Добавил поддержку нескольких подключений на странице. Параметр tvid поменялся на tvIds (один или несколько id через запятую).
UPD. 23.11.10
Исправил баг в ресайзе без crop.
UPD. 13.02.11
Исправил отображение в Chrome
UPD. 07.03.11
Исправил ошибку в сниппете
UPD. 03.08.11
Добавил поддержку IE9
UPD. 12.08.11
Добавил проверку против размножения префикса
UPD. 21.02.12
Исправил ошибку «Undefined offset». Добавил возможность сохранять превью в подкаталог (префикс small/ ). В сниппете исправил вывод пустых галерей.
UPD. 26.02.12
Исправил критичную ошибку неработающего ресайза при подключении на разных шаблонах через разный id.
UPD. 05.03.12
Добавил пагинацию в сниппет. Параметры: &pagination (включить) и &display (количество элементов на странице).

файлы версии 1.2.6 + версия для php4

английский перевод с описанием

375 комментариев

avatar
При включённом ManagerManager не работает, блоки добавляються но не сохраняються.
При выключенном ММ работает, только порядок сортировки не сохраняется у меня.
avatar
Не сохраняются блоки, которые просто перемещались, не редактировались? Исправил, обновил файл.

Какие настройки MM? У меня с ММ нормально работает. Было заполнено хоть одно поле в блоке? Пустые блоки не должны сохраняться.
avatar
Спасибо. Всё работает:)
avatar
Черт возьми, я такого плагина 2 года ждал :)
avatar
Спасибо! =)

avatar
попробую, вместо монструозного maxigallery.
есть пара пожеланий:
1. сделать сохранение адреса заглавного изображения (напр., первого в списке) в отдельный tv-параметр (напр., cover) — очень удобно для вывода обложек в ditto;
2. сделать свой обработчик загрузки изображений — чтобы не приходилось через mcpuk каждую фотку отдельно загружать
avatar
Для ditto я пока такой сниппет использую:
(phx:mphoto)

<?php
$fotoArr=json_decode($output);
if ($fotoArr) return $fotoArr[0][0];
?>
В чанке дитто: [+photos:mphoto+]

Насчёт обработчика подумаю, что можно сделать.
avatar
Ой!
Не работает в Shopkeeper…
Есть варианты заставить работать в Shopkeeper?

В программировании не силён. :(
avatar
Работает с Shopkeeper 0.9.6.1 :)
avatar
Не знаю, у меня ли только такой глюк, но при назначении rowTpl и outerTpl в виде чанков — outerTpl вообще не выводился, а rowTpl — выводился один раз, несмотря на то, что картинок много, и без вставленных плейсхолдеров, в общем чистым.

Тогда я в самом сниппете заменил стандартные шаблоны на свои — и все стало работать нормально…

И еще TiP: Я для автоматического ресайза использую MiniPhoto, а для показа красивого прикрутил еще и fancybox, в итоге, rowTpl выглядит, примерно, так:

<a rel="add_group" href="[+url+]" title="[+title+]"><img class="shk-image" src="[[MiniPhoto? &file=`[+url+]` &width=`150` &height=`150` &quality=`95` &dir=`mini` &isclip=`0` &interlace=`0` &bgcolor=`ffffff`]]" alt="" /></a>


И мы получаем на выходе уже подготовленные фотки с fancybox эффектом и автоматическим превью.
Для тех, кто решит попробовать MiniPhoto — не забудьте ставить права на папку, где будут лежать превью на полную запись.
avatar
Я предпочитаю Php thumb вместо miniphoto
но эфект тот же
avatar
Такой глюк будет наблюдаться, если перепутать местами названия чанков rowTpl и outerTpl
avatar
Поставил multiphotos на сайт.
Понадобилось заменить поле «Ссылка» на поле «Описание» (textarea).
Получил интересный глюк — при клике на textarea фокус на этом элементе не ставится, вместо этого включается режим перетаскивания, как будто кликаешь на фон.
Заменял все аккуратно, в поле «Описание» все сохраняется и отображается. В чем может быть проблема?
avatar
сам разобрался.
Нужно было добавить:
this.box.getElements('textarea').addEvent('click',function(){this.focus();});
avatar
Можете поделиться получившимся кодом с полем textarea вместо ссылки? Я пробовал сам поменять, но не получилось.
avatar
Дополню, что вывод textarea вместо input в админке я сделал (благо — не трудно) и строчку для фокуса из сообщения в плагин вставил. осталось вопрос с сохранением информации из этого поля решить.
avatar
Вот бы тоже самое под Revo
avatar
Вот это кажется что-то похожее.
avatar
А такого бы родственника сделать, чтобы можно было прикреплять не фотографии, а файлы с описанием?
avatar
Выложу попозже. А пока сделал авторесайз для MultiPhotos.
avatar
Благодетель! Плюсую.
avatar
До свидания, милый Direct Resize.
avatar
Две недели минуло. Будет ли наглостью испросить у благодетеля, не готово ли тело «родственника» для выкладывания? :)
avatar
Да аврал по работе просто. Вот, написал плагин
MultiFiles
avatar
А что изменить что б вместо фоток можно было добавлять файлы?:)
avatar
А так же пытаюсь убрать 1 поле для вставки ссылки:

rowDiv.adopt(this.sp('{$lang['url']}'),this.br(),imgURL,bInsert,this.br());
rowDiv.adopt(this.sp('{$lang['title']}'),this.br(),imgName,bAdd);

Урезал код вот так но как понял что это повлекло:
вместо [«123»,«123»,«123»]
получил [«123»,«123»]

К сожелению в JS разбираюсь еще хуже чем в php:(
пните пожалуста в нужную сторону

avatar
а ну да в чем печаль и не написал

а в итоге ошибка что вместо названия получаю underfined
avatar
Это потому что индекс на единицу сдвинулся, вместо values[2] и v[2] будет values[1] и v[1]. Чтобы не копаться в коде, можно просто 'styles':{'display':'none'} для ненужных элементов указать.
А плагин для файлов я выложу после праздников, там всё то же самое будет в принципе.
avatar
Спасибо большое :)
avatar
Это очень хорошо. Но вот что было бы пользительно: чтобы можно было работать с несколькими TV. Например,
Договоры:
1. ссылка на файл договора
2. ссылка на файл договора
3. ссылка на файл договора
Приложение к договору:
1. ссылка на файл приложения к договору
2. ссылка на файл приложения к договору
3. ссылка на файл приложения к договору

avatar
Я под фото сделал копию плагина :) и все замечательно :) теперь нужные фото нарезает под нужный размер:)

Осталось решить вопрос как заменить direct resaze в контенте :)
avatar
Идея с созданием копии плагина, конечно, хороша :), но! не изящна.
avatar
не изящно — согласен
зато просто и работоспособно :)

avatar
Добавил поддержку нескольких подключений на странице.
avatar
Я совсем тупой что-то… Можете написать пример вывода этого сниппета?
avatar
[[MultiPhotos? &tvname=`gallery` &rowTpl=`mphotos`]]


ничего сложного :)
avatar
Наконец-то попробовал. Все супер, очень понравилось.
Возник вопрос, а можно ли прикрутить к каждому изображению ещё и textarea, для вывода расширенного описания фотки. Что-то мне подсказывает что это не супресложная задача.
avatar
Исправил баг с ресайзом.
avatar
Отличный плагин, респект!
Вот только у себя я в коде сниппета ввел доп параметр $id (страница откуда брать изображения) и заменил
$id=$modx->documentObject['id'];
$tvf=$modx->documentObject[$tvname];
if (!$tvf[1]) return;
$fotoArr=json_decode($tvf[1]);

на
if (isset($id)) {
    $id = $id;
    $tvf = $modx->getTemplateVar($tvname,'*',$id);
    $tvv = $tvf['value'];
} else {
    $id = $modx->documentObject['id']; 
    $tvf = $modx->documentObject[$tvname];
    $tvv = $tvf[1];
}

if (!$tvv) return;
$fotoArr=json_decode($tvv);


Так создав отдельную страницу с картинками, можно на любой странице сайта вывести эти картинки, а не только на той, где они цеплялись.
avatar
Есть ли плейсхолдеры для размеров изображения в чанке &rowTpl?
Руками прописывать размеры вроде как не сильно правильно…
<a id="thumb_[+num+]" href="[+link+]">
<img title="[+title+]" src="[+url+]" alt="" />
</a>
avatar
Нет, иначе пришлось бы размеры запрашивать каждый раз при редактировании, перебирая файлы с сервера, и потом хранить их где-то в скрытых полях. превьюшки обычно однотипные, так что оптимальнее прописать вручную.
avatar
Заметил вот такой казус:
При добавлении в несколько ресурсов одних и тех же картинок на каждый ресурс создается своя превьюшка но с доп приставкой…
пример: .thumb_s_s_s_s_s_s_s_woman_20ml-b.jpg а начально .thumb_s_woman_20ml-b.jpg это значит что картинку использовали в 7 ресурсах.
Это глюк или так задумано?
avatar
такого не должно быть
avatar
баг наблюдается при php4
avatar
Отличный плагин, очень удобный ))

Автоуменьшение по максимальной стороне это то, что не хватало мне в TVimageResizer, как-то не так он это делает — попробую у себя чуть переделать его ))

Обнаружились косяки в работе MultiPhotos: в данном случае внесение названия фото по русски выбивает работу плагина начисто. Кодировка админки и сайта cp1251 — виндоская, с этим связываю глюки. Как можно пофиксить?
avatar
Проще наверное всё-таки кодировку сайта поменять.
avatar
тем более что с 1251 глюки не только в multiphotos
avatar
спасибо!!!
отличный плагин
  • Jora
  • 0
avatar
Ой-ой-ой!
Не работает в Shopkeeper…
Есть варианты заставить работать в Shopkeeper?

В программировании не силён. :(
avatar
Работает с Shopkeeper 0.9.6.1 :)
avatar
думаю что установил все, как вы тут писали, это уже третий плагин который я пытаюсь установить, но ничего не работает. Не показывает мне всех этих возможностей. Мне всего лишь нужно динамически выводить краткое обозрение новостей с картинкой уменьшенной от той которая стоит на главной новостной странице. Ничего у меня не получается, все остановилось уже 4 дня бьюсь. Говорили везде модх самая легкая система все просто, а у меня все очень очень сложно. Пожалуйста умоляю помогите.
avatar
Киньте в личку доступ, посмотрю
avatar
на сайте был php4
avatar
Проблема при использовании AjaxSearch!

Использую phx для главной картинки, вызываю путем [+photos:mphoto+]

И хочу, чтобы при выводе результатов эта главная картинка показывалась.

Вот никак не удается завести, где проблема?..
avatar
Не появилось ни у кого решения подобной проблемы? Я тоже пока не мог решить. Может кто-то подскажет?
avatar
Значение tv photos режет функция defaultStripOutput. Можно сделать так:
В файле default.config.php прописываем

$dcfg['withTvs'] = 'photos';
$dcfg['stripOutput'] = 'myStripOutput';

В тот же файл добавить функцию:

if (!function_exists('myStripOutput')){
	function myStripOutput($text){
		if (strpos('[["',$text)!==false) $text = stripTags($text);
		$text = stripJscripts($text);
		$text = stripLineBreaking($text);
		$text = stripHTML($text);
		return $text;
	}
}

В result.tpl.html:
<img src="[+as.photos:mphoto+]" alt="" />
avatar
А не подскажите как получить общее количество фоток?

тоесть аналог countChild только для фоток:)
avatar
Утро вечера мудренее:

<?php
$fotoArr=json_decode($output);
if ($fotoArr) return count($fotoArr);
?>
avatar
Где получить, в сниппете? Там $num есть, если с нуля считать, то это будет общее количество. Ну или count($fotoArr)
avatar
Вопрос, можно ли как-то реализовать привязку контейнера с фотографиями и странички, как это сделано в MaxiGallery? Просто если много документов с фото, то под каждый надо создавать вручную папки и подпапки… При документах (напр. товарах) более 500 – это вообще нереально.

Сам плагин отличный и очень понравился. Если возможно, включите в след. релиз обозначенную опцию или намекните в какой стороне копать…
avatar
ну дык что значит контейнер с фотографиями?
тут он по умолчанию привязан к страничке:)
надо в товарах добавьте в товарах?
или объясните что именно нужно
avatar
При клике «выбрать фото» – мы выбираем его через файл-менеджер. В файл-менеджере по умолчанию все фотографии хранятся в одной папке. Если мы хотим сделать так, чтобы структура расположения фотографий соответствовала структуре документов сайта – нужно вручную создавать соответствующие папки.

Полагаю, если вы плагин ставили и использовали при большом количестве документов – должны знать о чём идёт речь.

В принципе, если и сейчас неясно что я имею ввиду – распишу совсем просто и подробно.
avatar
Подумал, что всё таки не очень ясно… Так как если речь идёт о том, что надо лучше писать схематично.

Задача такая:
1. При создании документа создавать папку в assets/images/docs/ путь как в дереве сайта / id документа
2. При клике на кнопку «Вставить» файл-менеджер должен открывать вышесозданную папку
3. Если документ ещё не сохранён в системе и у него нет ID – выводить специальное сообщение о необходимости сохранить документ или решить этот вопрос более сложно, со своим загрузчиком изображенией
avatar
Интересная особенность замечена у меня с этим плагином.
Стал нормально, фото добавляются, ресайзятся, но в бэк-энде при редактировании страницы не видно превью картинок. Появляются если по-перетаскивать блоки изображений. После сохранения документа и нового входа для редактирования ситуация повторяется. Может кто сталкивался с подобным и знает как сделать чтобы сразу превью работали? MultiPhotos 1.21, MODx 1.0.5.
avatar
Такая же трудность в MODX 1.0.4, MultiPhoto 1.21
Фото добавляется, ресайзится, но превью в менеджере не появляется — только если начать перетаскивать блок.
avatar
Это видимо был баг в Хроме, исправил стили.
avatar
Точно! Заработало, спасибо!

P.S. Это действительно был хром… обычно сам сайт проверяю под разными браузерами… а вот проверять админку под разными браузерами еще не привык )))))
avatar
Аналогично =)
avatar
Спасибо большое. Ожидание вознаградилось.
avatar
У меня по-прежнему в Хроме нет превью в менеджере.
Нет идей, как это можно исправить?
avatar
Интересно а на сколько лучше или хуже будет работать если донное решение переделать из плагина в customTV?

avatar
Тут ещё ресайз по OnBeforeDocFormSave есть.
avatar
Не работает. Tv Поле как было textarea так им и осталось. При этом js ошибок не выдает. Если посмотреть в firebug то и css и js прописанные в плагине подключаются. MODX Evo 1.02
avatar
Оказывается оно не трансформируется на страницах, которые уже были созданы с на момент подключения плагина, использующих шаблон в который добавляется tv photos
avatar
Настройки проверьте, напутали где-нибудь.
avatar
Вроде все нормально установил, прошу помочь разобраться с такими вопросами:
Блоки с сохранёнными картинками можно перетаскивать мышью, 
меняя их порядок.

Что за блоки, где они сохраняются?
Я создаю новый документ, внизу у меня появляется такое
плагин multiphotos
Потом сохраняю этот документ как любой другой в modx. Что записывать в содержимое документа, вызов сниппета [!multiphotos!]?

Теперь параметры сниппета:
&tvname — имя tv, &outerTpl и &rowTpl — чанки для вывода, 
также есть: &fid — вывести картинку под этим номером,
 &random -вывести случайную картинку.

&tvname — тут понятно photos;
&outerTpl и &rowTpl — эти чанки нужно создать или они уже есть в сниппете?
&fid и &random — тут мне понятно, что это параметры сниппета…

Самое главное я не пойму как организовать вывод картинок, у меня работает только если вставляю в содержимое документа [!MultiPhotos!], тупо выводит огромные фотографии во весь экран, хотя в настройках плагина стоит Resize: enable — true, Resize: cropping — true, Resize: auto big img — true, Resize: auto small img — true. Или обязательно нужно вручную вставлять сначала маленькую превью и во втором поле нормальное фото? Я так понял сначала нужно создать документ и внизу при помощи tv photos накидать много изображений, а потом в другом документе вызывать multiphotos… В общем не получается ни фига:( Люди, прошу объясните пожалуйста на примере как правильно использовать данные сниппет и плагин по шагам. Прошу простить если туплю:)
avatar
Блоки — это вот эти 2 прямоугольника. Если захочется их поменять местами — можно перетащить (после сохранения страницы)
Если &outerTpl и &rowTpl не заданы, используются чанки из сниппета.
Проверьте, прописаны ли размеры Resize: width и Resize: height
Чтобы работал ресайз должен быть задан хотя бы один из них.
avatar
Resize: width установлено 150, Resize: height установлено 100, но не ресайзит, огромные выводит:( Пробовал Direct resize отключал, не помогает, еще установлена Easy 2, что может быть?
avatar
Галочка на событие OnBeforeDocFormSave стоит?
avatar
Установил галку на OnBeforeDocFormSave — помогло, стало ресайзиться, спасибо.
avatar
ХМ это смотря чего вы хотите получить
как я делал галерею
avatar
Подтверждаю проблему с отображением превью в менеджере в MODx 1.0.5. Действительно они отображаются, только если перетаскивать блоки между собой. После сохранения или открытия ресурса то исчезают, то снова появляются. В чем может быть проблема?
avatar
спасибо за отличных два плагина… супер!

вопрос, все сделал настроил, но при увеличении картинки большая открывается просто в новом окне браузера

Вопрос: как прикрутить какую либо библиотеку? Например, входящую в состав directresize.

Кстати directresize тоже на странице работаетю
avatar
Нужно пойти на planetozh.com/projects/lightbox-clones/, выбрать подходящую библиотеку и следовать инструкции. Обычно бывает достаточно добавить в шаблон js и css файлы библиотеки и прописать что-то вроде rel=«lightbox» в ссылках на большую картинку (в чанке rowTpl)
В состав directresize входит несколько библиотек, нужно смотреть какая из них подключена.
avatar
Прикрутил к связке pikachoose+multiphotos fancybox, работает, но никак не могу побороть проблему, почему то в окне fancybox есть только одна кнопка «закрыть», стрелки навигации влево вправо не появляются, подскажите народ куда копнуть. Пример тут vizup.ru/5555.html Как прикрутить fancybox тут pikachoose.com/how-to-fancybox/
avatar
если IE то css путь к файлам поправить под IE
в остальных должно все норм работать
avatar
И в IE и во всех остальных браузерах стрелки не появляются. Сама fancybox находится здесь assets/js/fancybox/ В этой папке находится все, файл jquery.fancybox-1.3.4.pack.js, jquery.fancybox-1.3.4.css и все картинки. Соответственно адреса изображений в файле jquery.fancybox-1.3.4.css выглядят так
#fancybox-left-ico {
	background-image: url('fancybox.png');
	background-position: -40px -30px;
}

#fancybox-right-ico {
	background-image: url('fancybox.png');
	background-position: -40px -60px;


Как в данном случае поправить адреса изображений?

Для IE6 там почему то прописано так:
/* IE6 */
.fancybox-ie6 #fancybox-close { background: 
transparent; filter: progid:DXImageTransform.
Microsoft.AlphaImageLoader
(src='fancybox/fancy_close.png', sizingMethod='scale'); }
но IE6 меня беспокоит меньше всего…
avatar
Great Plugin! Can't wait to get it working. However, I'm stuck.

The TV is working correctly in the manager. I have inserted multiple images. However the snippet on the front-end is not producing any output. There is simply nothing displayed not even the snippet code. I've tried placing [!MultiPhotos!] directly in the template or in tinymce on the page. I've tried cache and uncached with no luck. I'm using the original version of the code.

Any help would be appreciated. Thank you!

Terry
avatar
Try the php4 version
avatar
Добрый вечер Гуру!
Помогите разобратся, плагин запустил сниппет тоже, ID TV прописал работет, но, как вывести и что прописывать в tplOuter и tplRow?
заранее спасибо!
avatar
в теме ж все написано :)
читайте внимательней:)
avatar
ага сори нету:) но можно глянуть в коде снипета там есть по умолчанию вид :)
avatar
I tried the php4 version but no change. TV works in manager, front-end does not produce output. My site is running php5 if that matters. Any other suggestions?
avatar
Я пробовал, как я понимаю, если не сипользовать чанки первичный и вотричный, то работать должно так?
А у меня не выводится картинка вообще, TV обрбатывается а вот вывода его нету, как нужно прописать чтобы он выводил без чанков?
[[MultiPhotos? &tvname=`photos`]] это же, как понял я и есть вызов. так?
А почему не выводит мне ничего?
avatar
Проверьте, работает ли вообще json. Нужна кодировка utf и php5.
avatar
php5 есть, как проверить JSON? не селен в программировании, так разобрался с modx без программинга
avatar
Плагин — просто находка, Temus — спасибо огромное!

У меня в процессе работы возникла необходимость выводить не все фотографии документа, а лишь одну из них. Для этих целей написал сниппет MultiPhotos_single.

Сниппет выводит путь к определенной фотографии из указанного документа. Можно выводить как превью, так и полноразмерное изображение

Держите, может кому пригодится:

<?php
/* вывод одной фотографии из данных MultiPhoto

Параметры: 
$id - id документа
$p_num - порядковый номер фотографии начиная с 0  (по-умолчанию 0)
$tvname - название TV-параметра (по-умолчанию - photos)
$fullsize - значения 1 или 0, показывать полноразмерное изображение или превью  (по-умолчанию 0)  
 */
$tvname = isset($tvname) ? $tvname : 'photos';
$p_num = isset($p_num) ? $p_num : 0;
$fullsize = isset($fullsize) ? $fullsize : 0;

$p_data = $modx->getTemplateVar($tvname,'*',$id);

$photos_all = explode('],[',$p_data['value']);
$photo = str_replace('[','',$photos_all[$p_num]);
$photo = str_replace('"','',$photo);
$photo_fin = explode(',',$photo);
echo "/".$photo_fin[0]; 
  
?>


Пример использования в шаблоне Ditto
<div style="background: url('[[MultiPhotos_single? &id=[+id+] &p_num=`0` &fullsize=`0`]]');">
</div>
avatar
В моем сниппете есть параметр &fid для тех же целей :)
avatar
Плагин замечательный, уже прикрутил greybox к нему. у меня возник вопрос по небольшому увеличению функционала: можно ли помимо &fid ввести еще, например, &cnt — сколько фотографий от &fid вывести. и чтобы &random при этом работал для вывода [&cnt] случайных фотографий (без повторений). Спасибо
avatar
Для Ditto лучше использовать phx-модификатор наподобие того, что в примере в посте, это сильно уменьшит число запросов в базу.
avatar
Плагин супер. Но у меня возник такой вопрос:
Вот я назагружал например 10 фоток. И мне приспичило удалить одну. Как это сделать? В полях нету кнопочки для удаления объекта. При этом мне нужно чтобы сама фотография осталась на серваке, т.к. данная фотография может загружаться на другой какой-нибудь странице.
  • Int
  • 0
avatar
Торможу)) есть же кнопка
avatar
Добрый день!
Поставил себе этот плагин и возник следующий вопрос.
Как сделать чтобы фотка ресайзилась до маленьких размеров и адрес маленькой фотки добавлялся в соответсующее поле(адрес), при добавлении фотографии в поле «сылка или большая картинка»

Сейчас настройки такие:
global $content,$default_template,$tmplvars;
$tvIds = isset($tvIds) ? $tvIds : 6;
$w = isset($w) ? $w : 160;
$h = isset($h) ? $h : 120;
$templ = isset($templ) ? explode(',',$templ) : false;
$role = isset($role) ? explode(',',$role) : false;
$style = (isset($w) || isset($h)) ? "'max-width':'{$w}px','max-height':'{$h}px','cursor':'pointer'" : '';
$site = $modx->config['site_url'];
$thumbUrl = isset($thumbUrl) ? 'url = (url != "") ? ("'.$thumbUrl.'?src="+escape(url)+"&w='.$w.'&h='.$h.'") : url; ' : 'url = (url != "" && url.search(/http:\/\//i) == -1) ? ("'.$site.'" + url) : url;';
$cur_templ = isset($_POST['template']) ? $_POST['template'] : (isset($content['template']) ? $content['template'] : $default_template);
$cur_role = $_SESSION['mgrRole'];
if (($templ && !in_array($cur_templ,$templ)) || ($role && !in_array($cur_role,$role))) return;

$resize = isset($resize)&&($resize=='true') ? 1 : 1;
$crop = isset($crop)&&($crop=='true') ? 1 : 1;
$prefix = isset($prefix) ? $prefix : 's_';
$auto_big = isset($auto_big)&&($auto_big=='true') ? 1 : 0;
$auto_small = isset($auto_small)&&($auto_small=='true') ? 1 : 1;


Всем заранее СПАСИБО!
avatar
Конфигурация — это строка после @properties
Её нужно скопировать в поле «Конфигурация плагина».
Чтобы поле для маленьких картинок всегда заполнялось из больших, должно быть включено Resize: enable и Resize: auto small img
avatar
Сделал как вы сказали, ве равно превью не создает и строка пустая остается(
avatar
PHPThumb URL прописал так:
xxxxxx.ru/assets/plugins/thumb
avatar
да, вот скрин настроек
avatar
Для ресайза нужно указать ширину или высоту маленькой картинки.
avatar
Спасибо! разобрался!
avatar
никак не могу разобраться как этото работает? как установить? объясните по подробнее пожалуйста… в МОДх новичек, а очень нужен этот плагин!!!

Как его устанавливать:
1. Добавляем TV тип textarea с именем, например, «photos» — это понятно
2. Добавляем плагин MultiPhotos, копируем из файла конфигурацию, в конфигурации прописываем TV Id. (какие TV id прописывать??? или нужно создать еще, например 5tv со значение image и их туда прописать? не понял и для чего?)
При желании можно указать id шаблона и другие параметры. (как?) События — OnDocFormRender и OnBeforeDocFormSave. (я как понял нужно поставить галочки… объясните пож. дял чего?)
(Можно подключать плагин через require_once, для этого нужно раскомментировать там три строчки) в это вообще не буду вдаваться дабы совсем не запутаться))

Для вывода картинок прилагается соответствующий сниппет с параметрами: &tvname — имя tv, &outerTpl и &rowTpl — чанки для вывода, также есть: &fid — вывести картинку под этим номером, &random -вывести случайную картинку.

ПОмогитееее пожалуйста, очень нужны картинки))))
  • Djuz
  • 0
avatar
TV Id — Id TV с именем «photos», цифра такая в скобочках
Другие параметры не обязательны (шаблон, роль, параметры ресайза и превью)
События — поставить галочки на вкладке «Системные события»
avatar
как написать просто photos в настройках? или &TV=photos ??
про галочки я понял…
а для ТВ photos назначить шабон где будет использоватся этот ТВ? а что там писать??? у меня строчка в которую можно вводить что нибудь а что туда вводить? просто я реально новичек)))
avatar
Конфигурация — это строка в тексте плагина после @properties, её надо скопировать в поле «Конфигурация плагина», тогда всё будет выглядеть как на скриншоте выше в комментах. А для tv photos конечно указывается шаблон, тут всё как обычно.
avatar
Уже не в первом проекте пользуюсь этим комплектом, всё отлично. Спасибо огромное! Но вот в последнем проекте возникли трудности. Все настройки проставил — но не ресайзит и не срабатывает auto big img. Сист. события проверил — оба чекбокса стоят. Полдня кручу верчу — не пойму где конфликтует. Стоит последняя версия, пробовал и предыдущие. Сайт расположен на том же хостинге что и другие проекты. так что с не в хостере проблема точно. Прошу помощи.
avatar
Обнаружил — несколько id (через запятую) не рабботают. Срабатывает только когда указан только один TV.
avatar
Пришлите в личку доступ, я посмотрю. Скорее всего ошиблись где-то в настройках, например перепутали id
avatar
Спасибо, уже разобрался, точнее так и не понял что было. Все заново переустановил, переназначил ТВ и т.д. — заработало.
Спасибо!
avatar
У меня почему-то не загружает фотографии.
При нажатии на кнопку «Вставить» открывается окно загрузчика, но не создаются папки, не загружаются фотки.
Где настраивается путь, куда открывается загрузчик?
  • w3d
  • 0
avatar
браузер файлов тот же, что в tv image. если стоит mcpuk смотрите права на папки, русские буквы в именах и другие его обычные проблемы
avatar
Да, с просто tv image также глючит.
Evo 1.0.5, сайт локально на Денвере.
Где-то про обычные проблемы mcpuk и как их чинить написано?
avatar
Все оказалось проще.
Инструменты/конфигурация/Интерфейс и представление в поле «путь к файлам» был указан не правильный путь.
avatar
Но теперь при ресампле создает черные прямоугольники, а не уменьшенные картинки.
Исходный файл *.jpg, размер 1Мб.
В чем может быть дело?
avatar
Разобрался, что-то не так с форматом фоток было, пересохранил их — все заработало
avatar
Как я понял речь идёт о прикреплялках, а мульти загрузчики есть?
avatar
Пробую использовать в связке с Ditto, для вывода по 1 фотографии с каждого документа:
[!Ditto? &startID=`49,54` &tpl=`2kolonki` &hideFolders=`1` &depth=`2` !]

Чанк 2kolonki:
<div id="ddd" style="width:48%;display:inline; float:left; border:1px solid;">
<h2><a href="[~[+id+]~]" title="[+pagetitle+]">[+pagetitle+]</a></h2>
[+number+][[mphotos? &fid=`1`]]
</div>

Почему-то не выводит фотографии.
В другом шаблоне использую просто
Фотографии: [[mphotos]] <br />

все выводится.
Что не так делаю?
  • w3d
  • 0
avatar
[+photos:mphoto+], код в топике
avatar
Ага, только долго соображал что значит "(сниппет phx:mphoto)" :)
Кстати, прикрутил заодно и фансибокс, получилось:
<div id="ddd" style="width:48%;display:inline; float:left; border:1px solid;">
<h2><a href="[~[+id+]~]" title="[+pagetitle+]">[+pagetitle+]</a></h2>
[+number+]
<a rel="example_group" href="[+photos:mphotoBig+]"><img src="[+photos:mphoto+]"></a>
</div>


содержимое mphotoBig:
<?php
$fotoArr=json_decode($output);
if ($fotoArr) return $fotoArr[0][1];
?>
avatar
Хочу вывести картинку «нет фото», если в ТВ нет картинки, делаю6
<?php
$fotoArr=json_decode($output);
if ($fotoArr)
{
 if ($fotoArr[0][0]=="")
 {
   $fotoArr[0][0]='assets/images/nofoto.gif';
 }
 return $fotoArr[0][0];
}
?>

но не работает.
Как нужно сделать?
  • w3d
  • 0
avatar
[+photos:mphoto:ifempty=`assets/images/nofoto.gif`+]
avatar
Когда пробую просто в адресной строке поставить: (http://p.isurgut.net/assets/images/nofoto.gif)
ERROR: Too many forward attempts!
The request could not be completed due to too many unsuccessful forward attempts.

адрес формируется, но не показывается. что опять не так?
avatar
Все работает, просто картинку забыл на сайт положить :)
avatar
Имею странный глюк.

При добавлении нескольких фотографий всегда игнорирует (не сохраняет) последнюю.
При этом, если добавить после последней фотки ещё одно поле (пустое) — сохраняет нормально. ПОХОЖЕ ЭТО СЕМЕЙНЫЙ ГЛЮК так как с подобной проблемой столкнулся один из сообщников в плагине Multi Files (о чем отписался в соответствующей линейке).
avatar
Надо смотреть, с чем конфликтует. У меня, например, такого не наблюдается.
avatar
Возможно ли вытащить это добавление в форму eForm, для добавления фото из фронтэнда?
  • w3d
  • 0
avatar
Имеется ввиду для менеджеров, редактирующих страницы по данным eform? Вполне возможно.
avatar
Для веб-юзеров, я делаю добавление страниц из фронтэнда
avatar
веб-юзерам лучше не давать доступ к файлам
avatar
Это будет специальная группа веб-юзеров, со строго ограниченными задачами.
Они будут заливать фотки на уже сформированные страницы, доступ к страницам из фронтэнда, поскольку из админки неудобно (позиций более 2000)
Кроме того, я не добился чтобы пункты меню, скрытые от всех кроме какой-то группы веб-юзеров — показывались для группы менеджеров.
в общем, решаемо ли это?
avatar
Это будет специальная группа веб-юзеров, со строго ограниченными задачами.
Они будут заливать фотки на уже сформированные страницы, доступ к страницам из фронтэнда, поскольку из админки неудобно (позиций более 2000)
Кроме того, я не добился чтобы пункты меню, скрытые от всех кроме какой-то группы веб-юзеров — показывались для группы менеджеров.
в общем, решаемо ли это?
Для более предметного разговора — вот пример странички куда веб-юзеры (не все подряд, а строго определенные) должны будут добавлять фотки p.isurgut.net/index.php?id=2306
avatar
Если из админки неудобно искать страницы, можно QuickEdit'om редактировать.
avatar
Как все-таки можно вывести добавление фоток в фронтэнд?
avatar
PHPThumb URL — путь к PHPThumb, если нужно сжимать превью в админке (для ресайза не используется)

Вот глянул и думаю а по чему бы не использовать и для ресайза?
avatar
Ресайз в плагине происходит своими средствами. А для ресайза на сайте конечно, если хочется, можно использовать и phpthumb.
avatar
Точно совсем забыл можно ж в шаблоне вывода прям ресайзить :)
через phptumb ) Спасибо за пинок в нужную сторону:)
avatar
Обновил сниппет, там была опечатка, из-за которой не работал недавно добавленный параметр $id для вызова на других страницах.
avatar
Я наверное глупый, подключил json, но у меня не выводит фото, сранно, но факт, если не использоват чанки ров и иннер, логически предположить, что в скрипте шаблоны есть по умолчанию так ли это?
Или чанки надо всеже делать
avatar
Если выбирать картинку из вложеной папки, url к миниатюре нормальный пишет/assets/images/qwe/s_test.jpg, а для полной картинки /assets/images/test.jpg, где править?
avatar
Проблема оказалась в том, что при изменении поля Адрес ссылка на большую картинку не обновлялась, как это можно реализовать?
avatar
Стереть адрес большой картинки. Он заполняется только при пустом поле (чтобы не потёрлось что-нибудь нужное)
avatar
А как в коде поменять, что бы переписывался адрес большой картинки?
avatar
if (empty($v[1]) && $auto_big) $v[1]=$v[0];
убрать первое условие
avatar
Огромное спасибо!
avatar
Не могу разобраться как запустить вывод первой картинки через Ditto, если на сайте работает YAMS. Помогите, пожалуйста.
avatar
Такая конструкция не срабатывает:
[*phx:input=`[+photos+]`:mphoto*]
avatar
Интересует вариант использования этого плагина с Ditto, но не как [+photos:mphoto+], а полностью. Задача стоит — вывести в полном размере содержание MultiPhoto (все прикрепленные картинки со ссылками) на странице где выводится список ресурсов.
Другими словами: вывести список ресурсов в виде: заголовок + картинки со ссылками добавленные к этим ресурсам.

Если возможность сделать такое с этим чудесным плагином-сниппетом?
avatar
хм, а вы пробовали его поставить и посмотреть? По умолчанию он так и выводит а уже потом допиливаешь как надо!
avatar
Я попробовал его поставить и посмотреть до того как задавать вопрос.
Вывожу Дитто с шаблоном:
<li>[+title+]
<span>
[[MultiPhotos? &outerTpl=`OuterTpl` &rowTpl=`RowTpl` ]]
</span></li>
На странице где идет вывод, получаю содержимое тайтла и пустое место вместо мультифотос.
Этим же [[MultiPhotos? &outerTpl=`OuterTpl` &rowTpl=`RowTpl` ]] на странице документа получаю нормальное содержимое.
В чем я ошибаюсь?
avatar
Ещё нужно добавить параметр &id=`[+id+]`
И использовать последнюю версию, я там исправлял ошибку с id.
avatar
Уж накатал я новый ответ на то, что не захотело оно работать после вставки &id=`[+id+]`. Но перед отправкой решил заново переписать все выводы и параметры сниппетов. Заработало как надо. Так и не понял где ошибка была. Спасибо за подсказку. Может в топике следует этот параметр к остальным приписать, чтобы кто-то так же как я не маялся?
avatar
Добавил.
avatar
Товарищи. Просмотрел всю ветку сообщений, но так и не понял где может быть ошибка.

Дитто:
[!Ditto? &tpl=`extrasItem` &parents=`3` &depth=`0` &filter=`tvextra,0,2` &randomize=`1`!]

Чанк `extrasItem`:
<li>[[MultiPhotos? &fid=`1` &id=`[+id+]`]]</li>


PHP 5.2, json есть, версия самого MP — последняя.
На месте где должна выводиться фотка — просто пустое место.
avatar
Будьте добры, подскажите…
Как реализовать с помощью этого плагина возможность генерации превью-картинок разного размера для разных страниц сайта?
avatar
В конфигурации плагина добавить новые поля (префикс, ширина, высота).
avatar
Поясните пожалуйста. Как это сделать?
avatar
Очевидно, чтобы организовать генерацию большего числа превью, нужно продублировать существующий функционал в плагин.

По шагам:
1. Добавляем новые поля в конфигурации, туда записываем параметры нового превью (ширина, высота, префикс).
2. При создании массива values добавляем в него еще один объект.
3. Добавить еще одну переменную для отображения поля схожим с imgURL образом (отображение картинки по событию уберите). Поле можно сделать hidden.
4. Добавить созданную переменную в инструкцию row.adopt();
5. Ниже (где инструкция switch) добавить код для еще одного ресайза (теперь уже по правилам, которые добавили в п.1) и сохранения.

Кстати, советую перед всеми ресайзами проверять наличие файла с именем, которое будет сгенерировано, в директории. Если он там есть, то ничего делать не нужно. В противном случае при каждом сохранении страницы, на сервере по новой будут генерироваться уже и так существующие превью.
avatar
Ужас! А если будет 10 видов страниц с различными параметрами (ширина/высота), то нужно дублировать 10 раз логику плагина!?
Нееет, лучше я его перепишу.
avatar
Если вариантов много, то код для ресайза можно вынести в отдельную функцию и ничего не дублировать.
avatar
А неужели нельзя в плагине через запятую указать необходимые значения параметра? К примеру, Id-ники TV.
avatar
В принципе, можно и в самом коде прописать, если делаете сайт не на заказ, или точно знаете, что меняться эти значения не будут.
avatar
Я имею в настройках плагина в админке.
Перечислить список id в поле TV ids, список значений ширины, высоты и т.д.
avatar
*имею ввиду
avatar
Если по-быстрому, то сделать несколько копий плагина с разными id шаблона и разными настройками. Если плагин подключать через require_once, то это не займет место в кэше. А если имеется в виду превью на страницах сайта, то можно сделать по размеру самого большого, а в остальных просто другие размеры прописать, качество не пострадает.
avatar
Качество не пострадает, но лаги возникнут — ресайзить браузером совсем не гуд.
avatar
Тема как то продвигается к моей мысли заданной давным давно…
Так может быть :) звучит как «До коле мы будем»
все таки стоит вывести настройки в поле… блин как же это сформулировать то…
1. Одно поле для ввода картинки при загрузке резайзится под заданный размер если не подготовлено;
2. Поставил галку появится поле для ввода ссылки;
3. Поставил галку и стала картинка активной (например в модальное окно)
4. Поставил галку появилось поле для задания размера привью, аналогично привью, аналогично привью;
Привью делается из большой картинки п1, например когда прописываешь ширину то высота автоматом проставляется и наоборот и при удалении/замене параметра, привью удаляется и создается заново

вот как то так… может это конечно блаж но в работе по мне так удобнее…
avatar
Не совсем понял, что значит «новые поля»…
перечислить через запятую разные значения для разных шаблонов?
avatar
Добрый день, подскажите почему не работает phx:phpthumb при выводе фоток?
код чанка RowTpl:
<img src="[+link:phpthumb=`w=302&zc=C`+]" alt="[+title+]" title="" />

Вызов: [!MultiPhotos? &tplRow=`RowTpl`!]
Результат работы:
<div class="thumbs">
<img src="" alt="1" title="">  
<img src="" alt="2" title="">  
<img src="" alt="3" title="">
</div>


  • muz
  • 0
avatar
Чтобы подключить phx, нужно заменить в сниппете

foreach ($fotoArr as $v) {
	$fields = array ('[+url+]','[+link+]','[+title+]','[+num+]');
	$values = array ($v[0],$v[1],$v[2],$num);
	$fotoRes[$num] = str_replace($fields, $values, $rowTpl);
	$num++;
}

на

if (!class_exists('PHxParser'))include_once(MODX_BASE_PATH.'assets/snippets/ditto/classes/phx.parser.class.inc.php');
foreach ($fotoArr as $v) {
	$phx = new PHxParser();
	$phx->setPHxVariable('url',$v[0]);
	$phx->setPHxVariable('link',$v[1]);
	$phx->setPHxVariable('title',$v[2]);
	$phx->setPHxVariable('num',$num);
	$fotoRes[$num] = $phx->Parse($rowTpl);
	$num++;
}
avatar
Добрый день, подскажите почему не работает phx:phpthumb при выводе фоток?
код чанка RowTpl:
<img src="[+link:phpthumb=`w=302&zc=C`+]" alt="[+title+]" title="" />

правильно писать [+link:phpthumbof=`w=302`+], muz запутал меня отсутствием окончания «of» в модификаторе, я себе голову сломал почему ресайз не работает)
avatar
Первую картинку в последовательности нельзя удалить (нету кнопки с минусом, даже если ее переместить на другую позицию).
avatar
Вообще я это специально сделал :)
avatar
Оригинально :)

Просто авторская задумка, или если удалить все картинки, то повылезают какие-нибудь ексепшены, а такой подход позволяет этого избежать?
avatar
Если поудалять все картинки, то не останется кнопки добавить новые, поэтому первый блок висит неудаляемым. А удалить первую можно либо очистив поля (тогда удалится при сохранении), либо перетащив, сохранив страницу и потом удалив.
Если хочется кнопки у первой картинки, нужно удалить в плагине
if (this.box.getElements('div.fotoitem').length>1)
avatar
Спасибо. Очищать поля не очень хороший вариант, т.к. хочется удалять все ассоциированные файлы (оригинал+превью) с сервера.
avatar
Плагин не удаляет ассоциированные файлы, это по сути расширение TV Image, а не галерея.
avatar
Я понимаю. Удаление файлов я собирался прописать сам.
avatar
Первый раз столкнулся с такой вот ошибкой:

MultiPhotos - OnDocFormRender
An error occurred while loading. Please see the event log for more information.

Parse error: syntax error, unexpected '&', expecting T_VARIABLE or '$' in /home/avtoklonda/avtoklondayk.ru/docs/manager/includes/document.parser.class.inc.php(746) : eval()'d code on line 158


От чего это может быть и как поправить?
avatar
А версия PHP какая?
avatar
Есть еще одно небольшое добавление/поправка в сниппет. Столкнулся, когда делал парочку магазинов.
Пример:
к товару плагином прицеплено какое-то кол-во фоток. На странице товара выводим первую (главную картинку), а ниже главной картинки цепляем миниатюры всех остальных. Все просто — 2 вызова сниппета, первый с fid=`1`, второй без fid выводит все картинки. Но появляется одно но. Мы цепляем на картинки скрипт для увеличения с возможностью мотать картинки влево-вправо (конкретно я цепляю fancybox) — первая картинка при перемотке будет попадать 2 раза. Для этого нужно
1. или не цеплять к главной картинке скрипт для увеличения и промотки (что мне кажется не совсем правильным)
2. или из списка картинок ниже главной убрать первую картинку.

Действовал по варианту номер 2. Ввел параметр eid=`номер картинки, кот. не нужно выводить`. Добавил вначале сниппета
$eid = isset($eid) ? $eid : 0;
и заменил
foreach ($fotoArr as $v) {
    $fields = array ('[+url+]','[+link+]','[+title+]','[+num+]');
    $values = array ($v[0],$v[1],$v[2],$num);
    $fotoRes[$num] = str_replace($fields, $values, $rowTpl);
    $num++; 
}
на
foreach ($fotoArr as $v) {
    if ($num!=$eid) {
        $fields = array ('[+url+]','[+link+]','[+title+]','[+num+]');
        $values = array ($v[0],$v[1],$v[2],$num);
        $fotoRes[$num] = str_replace($fields, $values, $rowTpl);
        
    }   
    $num++; 
}
avatar
Если внутри блока .fotoitem есть тег select, список не выпадает, а клик просто проваливается — как бы начинается перетаскивание. Подскажите, пожалуйста, как лечить?
avatar
можно попробовать this.box.getElements('select').addEvent('click',function(){this.focus();});
avatar
Спасибо, но не помогло :(
Во всяком случае, если писать это initialize
avatar
А кто сталкивался с вызовом MultiPhotos в Shopkeeper но не с помощью Ditto а с помощью CatalogView.
Смысл в том, что на странице товара нужно вывести галерею, там страницы товара, которые не является документами в дереве Modx выводится с помощью чанка catalogDesc_chunk.tpl
вызываю в этом чанке MultiPhotos, но не работает.
Причем при вызове на страницах из дерева, все работает, кто-то может сталкивался с этим, как решить?
avatar
Так и не должно работать. Посмотрите в код сниппета:
if (isset($id)) {
    $tvf = $modx->getTemplateVar($tvname,'*',$id);
    $tvv = $tvf['value'];
} else {
    $id = $modx->documentObject['id']; 
    $tvf = $modx->documentObject[$tvname];
    $tvv = $tvf[1];
}
Здесь все расчитано на стандартные документы и тв параметры. Измените этот кусок кода для получения тв параметров каталога товаров шопкипера, которые хранятся в отдельной таблице modx_catalog_tmplvar_contentvalues, и будет вам счастье.
avatar
Вопрос такой, [+url+] это плейсхолдер с маленьким изображением, он выводит миниатюру с префиксом, но мне нужно вывести большое изображение оригинальное, то которое я на сервер загружаю, как это сделать?
Я использую плагин галереи Slides, который выводит одну большую фотографии и внизу маленькие превьюшки, при нажатии на превьюшки большое изображение меняется (вот ссылка на него: slidesjs.com/examples/product/)

В этом плагине выводятся 2 блока, один с большими изображениями, второй с превьюшками
Я делаю так: вызываю 2 раза сниппет MultiPhotos
[[MultiPhotos? &tv=`photos`  &outerTpl=`slides_container` &rowTpl=`rowBig`]]
[[MultiPhotos? &tv=`photos` &outerTpl=`pagination` &rowTpl=`rowPagination`]]


первый вызов должен выводить большие изображения, второй превьюшки.

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

Если бы можно было вывести в первом вызове оригинальное большое изображение, то задача была бы решена. Как вывести кто подскажет? ;-)
avatar
Большую картинку нужно хранить во втором поле, [+link+]
Вываливать все большие картинки на странице не очень правильно, лучше поискать плагин получше, типа Galleriffic, тогда можно обойтись одним вызовом сниппета.
avatar
посмотри
еще вариант
avatar
при каждом Save — добавляет префикс у картинки /s_s_s_pic.jpg/
avatar
Какие настройки плагина и какие имена файлов забиты в первые два поля?
avatar
вот настройки — clip2net.com/s/16JnO
* может дело в том что я захотел префикс ".s_"
он мне больше подходит как скрытый файл

доп. скрин clip2net.com/s/16JoK
avatar
auto small надо отключить
avatar
добавил проверку на отсутствие большой картинки, теперь будет работать и при auto small (auto small — это копирование адреса для ресайза из второго поля)
avatar
раньше уже обсуждали у меня была подобная проблема
решение мега простое «надо быть внимательней»
выбирать главную картинку без префикса s_
avatar
Огромное спасибо автору! Скачал и установил версию для пхп4! Все работает!
avatar
Ребят у меня проблема при установки скрипта. На страничке к которой привязан параметр тв, никаких форм не отображается. Пхп 5*, в чем может быть дело? Айди тв прописал.
avatar
Подскажите, как сделать вывод [!MultiPhotos!]в списке? в тегах
<ul><li><li></ul>
как ни шаманил с шаблонами этого плагина, так ничего не получилось. Вывод происходит тупо вертикально. Пытаюсь вывести изображения в слайдер.
avatar
Для того, чтоб сниппетом в списке выводить выводить превью, а при клике увеличивать фото в 204 строке плагина заменил

$v[1]=$v[0]
на

$v[1]=$dirname.$filename


В данном случае решение не универсальное, по умолчанию нет такой функции? (или задачи у нас разные для плагина?)

включен ресайз и копирование адреса из первой строки во вторую
avatar
На 204 строке другой код, обновите плагин.
Первое поле ([+url+]) это превью, второе ([+link+]) — оригинальный размер.
Резайз — это автоматическое уменьшение фото из первого поля с добавлением префикса.
Если включено копирование из первого поля во второе, то во втором поле (если оно пустое) сохраняется первоначальное имя файла, без префикса. В коде менять ничего не нужно.
avatar
после этого в первой строке у нас лежит уменьшенное изображение, а во второй оригинальный размер
avatar
Зачем код ковырять?
у вас 2 шаблона есть же:
outerTpl =
    [+photos+]

и rowTpl = тут [+url+] [+link+] [+title+]

остальное дело за css

avatar
уф порезало теги:)
<ul>[+photos+]</ul>


<li> [+url+] [+link+] [+title+]</li>
avatar
спасибо автору за сниппет)

есть вопрос: как сделать вывод ширины и высоты изображения в теге
<img src="putin-durak.jpg" width="xxx" height="yyy" />
для превьюшки? подглючивает скрипт галерейки jquery.jcarousel, если высота и ширина не указаны
avatar
Можно подключить phx, добавить в phx.parser.class.inc.php пару модификаторов
case "imgwidth": list($width, $height, $type, $attr) = getimagesize($output); $output = $width; break;
case "imgheight": list($width, $height, $type, $attr) = getimagesize($output); $output = $height; break;
(или не добавлять, а отдельно создать сниппеты phx:imgwidth и phx:imgheight) и использовать [+url:imgwidth+] и [+url:imgheight+]
avatar
спасибо, пробую, чет пока не получается со сниппетами. попробую добавить модификаторы напрямую в файлик
avatar
Parse error: syntax error, unexpected T_CASE in Z:\home\blabla\www\assets\plugins\phx\phx.parser.class.inc.php(333): eval()'d code on line 2
avatar
Не в том месте наверное стоит, перед default: нужно
avatar
если делать это через сниппет phx:imgwidth, то у меня не работает (пишет ошибку выше), если добавить изменение в парсер.инк, то все встает на свои места.
спасибо :)
avatar
в сниппетах, разумеется, нужен код после case «imgwidth»:
avatar
1) Не планируется скрывать второе поле большой картинки, если включено если включено копирование из первого поля во второе?
2) Есть ли способы, как автоматом добавить несколько фото сразу или папкой, чтоб руками каждую не выбирать?
3) Сниппет крутой
avatar
Зачем скрывать — вдруг поменять захотят.
avatar
Решал вопрос дописываением пару строк кода в плагине:)

строки с содержанием:
style=«display:none;»

такм образом легко скрыть нужные элементы :)
ну и если надо легко вернуть :)
avatar
Dmi3y, поделись «парой строк» ?)

Temus, в текущем сайте для страниц добавляется по 30-100 фотографий. Логика галереи предусматривает простое увеличение фото при клике, т.е. поле «большое изобр.» только отвлекает и занимает место.

По юзабилити можно было решить так: если в настройках второе поле отключено, то вместо него добавляется кнопочка slideToggle для разворачивания/сворачивания второго поля.
avatar
style=«display:none;»

в ставить тем елементам которые нужно скрыть :)
avatar
Помогите разобраться. После переноса сайта на хостинг — при записи любой страницы — вылазит ошибка. :(((

MultiPhotos — OnBeforeDocFormSave
An error occurred while loading. Please see the event log for more information.

Warning: set_time_limit() has been disabled for security reasons in /var/www/
avatar
set_time_limit(0); уберите из плагина
avatar
В плагине есть настройки ресайза.
А если, к примеру, для разных шаблонов мне нужны разные размеры ресайза картинок?

Пока думаю о дублировании самого плагина(не самое лучшее решение наверное)
avatar
пропали все эти поля в TV с типом textarea. Просто поле textarea и всё. Хотя имело место быть раньше. Куда могло деться? подскажите плиз
avatar
на странице есть 2 ТВ которые используют MultiPhotos
хочу настроить различные для них подписи к полям и некоторые скрыть. что бы было понятнее/удобнее для меня.

как скрывать ненужное вроде разобрались, а вот как изменить надпись
например «ссылка или большая картинка»?

эти 2 тв параметра уменя обрабатываются 2мя копиями MultiPhotos с разными настройками, а переменные в плагинах задаются глобально. если я изменяю $lang['link'] в плагине который вызывается первым — то эти же изменения случаются и в остальных.
может я, что то упускаю? как сделать независимый вызов плагина?
avatar
а вы назовите
$lang1
и
$lang2

и будет вам счастие :) тоже нужно делать со всеми разными параметрами поидее
avatar
да переменных много менять пробовал но в силу слабых знаний в итоге у меня вообще переставал работать плагин.
думал может общественность подскажет способ «автономного» запуска без переименования всех переменных.
моя конечная цель — это изменение визуального отображения в админке при нескольких вызовах ТВ. где-то название поля изменить, где-то скрыть и т.д
avatar
Такая фишка — делал как говорил Temus для использования с AjaxSearch:
$dcfg['withTvs'] = 'photo'; /*у меня TV photo*/
$dcfg['stripOutput'] = 'myStripOutput';
if (!function_exists('myStripOutput')){
	function myStripOutput($text){
		if (strpos('[["',$text)!==false) $text = stripTags($text);
		$text = stripJscripts($text);
		$text = stripLineBreaking($text);
		$text = stripHTML($text);
		return $text;
	}
}

все ok, но почему-то при вводе определенного запроса виснет поиск. FireBug показывает
<br />
<b>Warning</b>:  strpos() [<a href='function.strpos'>function.strpos</a>]: Empty delimiter in <b>/usr/home/hosting/wt1001000/htdocs/assets/snippets/ajaxSearch/configs/default.config.php</b> on line <b>83</b><br />

и дальше идет вывод адекватного результата, но в браузер не выдает?
Заметил, что есть связь с определенными ресурсами, добавленными недавно. Может кто знает что может быть?
avatar
Переношу на Модх сайт с уже существующей базой изображений.
Строку для помещения в поле формирую
[["","assets/images/catalog/7_20091010122450.jpg",""],["","assets/images/catalog/7_20091010122605.jpg",""],["","assets/images/catalog/7_20091010122532.jpg",""],["","assets/images/catalog/7_20091010122420.jpg",""]]

но пока не зайдешь в ресурс и не сохранишь — превью и фотографии не показываются.
Вопрос в том, как заставить плагин автоматически обработать все ресурсы?
  • w3d
  • 0
avatar
такой же вопрос и у меня. я импортирую товары на сайт из csv файла, все поля без проблем: имя, описание, цена и др., а вот с тв-параметром photo трабла ) не нашли ещё решение? )
avatar
Сделал таки руками. Но все еще интересно как это можно сделать автоматом.
Подозреваю что надо посмотреть код плагина — что он делает при сохранении и взять оттуда нужное :)
avatar
Отличный плагин. Спасибо.

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

Помогите плз
avatar
Если нужно просто перемешать все картинки, то можно, например, добавить перед if ($output)
if (isset($shuffle)) {shuffle($fotoRes); $output = implode('',$fotoRes);}
и вызывать сниппет с параметром &shuffle=`1`
Чтобы не выводило одно и тоже, сниппет должен быть некэшируемым.
avatar
спасибо помогло
avatar
Поставил плагин всё нормально работает. Но вот как написать условие на phx чтобы было если параметр TV [*photos*] не пуст выводим галерею если пустой то ничего не выводиться.

по идее такая конструкция для других переменных TV у меня работает, а вот тут почему-то нет.
[+phx:if=`[*photos*]`:isnot=``:then=`[[MultiPhotos?  &outerTpl=`slides_container` &rowTpl=`rowBig`]]`:else=` `+] 


Может кто подскажет как сделать. Просто у меня слайдер стоит и стрелки выводятся даже там где нет фотографий.
avatar
Может скажу глупость, но в комменте за 13 апреля 2011, 23:47 Temus говорил как подключить PHx. Может попробовать условие написать уже в шаблоне вывода фотографий. Вроде как: либо вывести слайдер, либо вывести ничего? Не знаю, правда, получится ли…
avatar
В сниппете поменяйте
if (!$tvv) return;
на
if (!$tvv || $tvv=='[]') return;
и можно без phx
avatar
Есть ли что-то подобно под REVO?
avatar
А вы могли бы эту тему внимательней посмотреть: community.modx-cms.ru/blog/addons/1146.html#comment9273
avatar
Я для Рево использую MIGX! Это просто чудо компонент! Может очень многое, можно кол-во полей выбирать, картинки, richtext поля для текста и т.д.
У кого будут вопросы смогу подсказать как использовать
avatar
А системная ошибка вот такого вида из-за чего может возникать?

В логе, соответственно, ошибка.
avatar
Попробуйте заменить
$output = $matches[0];
на
$output = $matches ? $matches[0] : '';
Станет лучше?
avatar
Да, ошибка ушла, спасибо!
avatar
Temus, планируется ли добавить наложение водяного знака?
avatar
Для превью наверное смысла нет.
avatar
А на большую картинку? (:
avatar
Для большой картинки в принципе можно сделать, разве что надо будет какой-то префикс добавлять, чтобы отличать картинки с водяным знаком от картинок без оного. Только плагин станет в два раза больше :)
avatar
Дык с учетом того что можно использовать phx внутри то можно и так наложить водяной знак :)
avatar
подскажите, как наложить водяной знак при помощи phx?
Попробую стянуть наложение с ресайзера, незнаю получится или нет. Может кто уже пробовал?
avatar
ну выполняем внутри шаблона phpthumb с водяным знаком
и все будет
avatar
а подробнее можно? Я с phx еще не работала)) Буду очень благодарна
avatar
не нужен там phx просто снипет phpthumb
avatar
И только один человек мне написал, что не работает множественное подключение…
avatar
А можно ваш плагин-сниппет под себя видоизменить и использовать?
avatar
можно
avatar
Первый раз с этой ошибкой. что может быть?

Parse error: syntax error, unexpected '[' in /var/www/stripolskiy/data/www/smarteek.ru/djent/manager/includes/document.parser.class.inc.php(814) : eval()'d code on line 12


avatar
Правили что-то в сниппете?
avatar
Спасибо за плагин!

Как сделать чтоб он в TV не записывал ничего если ничего самостоятельно?

Сейчас после сохранения док-та в TV остаётся запись:
[]
avatar
У меня вообще форма для ввода изображений не появляется, просто пустое поле, подскажите, что я делаю не так?
avatar
Никак не могу понять что такое «сниппет phx:mphoto»?
avatar
Это пользовательский модификатор PHx, что-ли?
avatar
именно
avatar
Блин, а я перекопал документацию PHx! ))) А плагин — качественный, спасибо. Только с терминологией вы бы, все-таки, уточняли (не в обиду, конечно) :)
avatar
Пользовательский модификатор — это и есть сниппет с префиксом phx:
avatar
Буду знать. Благодарю.
avatar
О спасибо за обновление:) теперь и Пагинация есть :)
супер!
avatar
хочу использовать возможность сохранять превью в подкаталог с префиксом «small/» — не получается, куда его писать? пишу в настройках плагина тут напротив поля Resize: prefix

не создаёт папку и соотетвественно превью… в чем может быть дело. коды сниппета с модулем обновил. права 777. спасибо
avatar
Нужно создать папку самостоятельно, и плагин после этого будет нормально туда складывать превьюшки.
avatar
Помогите, пожалуйста, хочу вывести в шаблоне Ditto, превью первых изображений,

Вызов Дитто:

[!Ditto? &phx=`1` &tpl=`randItem` &parents=`31` &randomize=`1`!]


Чанк randItem:

<img src="[+photos:mphoto+]" alt="teaser img" />


Сниппет phx:mphoto

<?php
$fotoArr=json_decode($output);
if ($fotoArr) return $fotoArr[0][0];
?>


Вообщем все как по инструкции но изображения не выводятся (
Evo 1.0.6
avatar
какое имя у TV с изображениями?
avatar
photos

обычный вывод через [!MultiPhotos!] работает отлично
avatar
Тогда еще один банальный вопрос: phx присутствует и включен?
avatar
да, конечно, даже используется на этой странице
avatar
Банальные вопросы закончились. Теперь стало интереснее. Надо проверять детально что отрабатывает, а что — нет.
Я вообще мелкий сниппет без phx писал для одиночных фотографий, хотя это может и сам MultiPhotos делать.
avatar
Пришлите доступ в личку — посмотрю.
avatar
Спасибо за помощь Temus'у, вот его комментарий к проблеме

Не заполнено поле «путь» для превью (которое выводится через mphoto). Чтобы оно генерировалось автоматически из большой картинки во втором поле, нужно включить ресайз, auto small и указать хотя бы один размер.
avatar
Ну вы даете. )))
Я уж и не подумал о том что может быть не заполнено то, вы хотите вывести.
avatar
Можно ли как-нибудь расширить плагин, чтобы можно было вывести расширенное описание?
avatar
Можете для «совсем чайников» написать полную инструкцию по установке?

Я сделал плагин MultiPhotos — поместил в него файл MultiPhotos.plugin

Задал конфигурацию:
&tvid=TV Id;text;6 &templ=Template;text;6 &role=Role;text; &resize=Resize: enable;list;true,false;false &crop=Resize: cropping;list;true,false;true &prefix=Resize: prefix;text;s_ &th_width=Resize: width;text;200 &th_height=Resize: height;text;200 &auto_big=Resize: auto big img;list;true,false;false &auto_small=Resize: auto small img;list;true,false;false &w=Preview: width;text;120 &h=Preview: height;text; &thumbUrl=PHPThumb URL;text;

Сделал TV photos, указал его ID (6)

Сделал сниппет MultiPhotos из файла MultiPhotos.snippet

Про Ditto ничего не понял, поэтому пытаюсь сниппет вызвать со страницы:
[[MultiPhotos? &tvname=`[*photos*]`]]
Где photos TV параметр, в который пишу images/graphic1.jpg
Это место нахождения и название рисунка.
Ничего не работает :(

Просьба не обсуждать мои умственные способности, а просто помочь…

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

Можете помочь?
Использую MODx 1.0.6
avatar
Да просто [[MultiPhotos]]
Если TV параметр называется, например, myphotos, то [[MultiPhotos? &tvname=`myphotos`]]
Вместо TV параметра photos в админке должно быть то, что на скриншоте (если плагин правильно установлен).
avatar
Вероятно что-то глобально неправильно сделал — не появляется вместо TV параметра ничего, а если пытаюсь в TV параметр ввести images/graphic1.jpg например, появляется ошибка:
« MODx Parse Error »
MODx encountered the following error while attempting to parse the requested resource:
« PHP Parse Error »
PHP error debug
Error: Invalid argument supplied for foreach()
Error type/ Nr.: Warning — 2
File: .../manager/includes/document.parser.class.inc.php(814): eval()'d code
Line: 27

Поэтому и прошу подробную инструкцию по установке:
Надо ли какие-то файлы на сервер заливать, какую-нибудь папочку делать?
Что и куда вставлять…
avatar
Значит плагин не подключен. Попробуйте отключить плагин, удалить весь текст из TV-поля и включить снова. Также нужно проверить параметры: TV ID и события, остальное оставить по-умолчанию. Если ничего не выходит — пришлите доступ в личку, я посмотрю.
avatar
чтобы на одной странице была одна большая фотография, а под ней несколько маленьких, при нажатии на которые, изменялась бы большая фото на соответствующую.
MultiPhotos + Galleriffic (пример)
avatar
Круто!
Именно то, что надо.

Только с MultiPhotos еще не разобрался, поэтому с Galleriffic и не разбирался :(

Думаю, добьюсь, чтобы MultiPhotos заработал, потом и Galleriffic займусь.

Как я понял, Galleriffic можно и отдельно использовать?

Если с MultiPhotos обломаюсь, попробую отдельно Galleriffic встроить.
avatar
Здравствуйте! Есть хост ukraine.com.ua + установленный wMOD 0.4 (хотя и с 0.3 теже проблемы), multiphoto не подхватывает textarea.
Нашел проблему в строке 105 файла style.php wMOD 0.4 комментишь
$_style['icons_tooltip_over'] = $style_path.'icons/b02_trans.gif';
работает, заменяет textarea на то, что надо (прикрепление файлов.)
Очень странно, картинка есть, но с ней не работает. Видел только на этом хосте.
avatar
Спасите ламера! Как сделать так, чтобы в TV вместо(или вместе) Названия можно было ввести alt картинки?
avatar
Да вводите в это поле что хотите. А вывод уже шаблонами настраивайте.
<img src="[+url+]" alt="[+title+]" />
avatar
отлично, спасибо!
avatar
у меня проблема при подключенном плагине PHx. Если этот плагин подключен, то ТВ, к которому привязан плагин MultiPhotos становится пустым при выводе на сайт. стоит только отключить PHx, ТВ отображается нормально и сниппет выводить фотки как положено. Это конфликт плагинов? Как его исправить?
avatar
Подскажите а может ли этот плагин при использовании генерить не только 1 тюмб, я несколько тюмбов, два или три?

Извиняюсь за возможно повторение...
avatar
1. Плагин создал (конфигурацию прописал, события отметил);
2. Сниппет создал;
3. TV-параметр тоже создал.

В итоге вот что
avatar
А в конфигурации плагина указали ID вашего TV photos и ID шаблона к которому он прикреплен?
avatar
Уже указал :) Спасибо.
avatar
1.Достался сайт с версией 1.22. Превью в галерее ровняются по ширине и из-за этого все криво смотрится. Как сделать, чтобы на превью фото урезались по ВЫСОТЕ.
2.Можно ли организовать, чтобы все превью были одинакового формата(например, квадратные), не зависимо от соотношения сторон оригинала? (версия 1.22)
avatar
Пропишите ширину и высоту в настройках, и включите Resize: cropping.
Плагин можно смело обновлять на последнюю версию, там только баги исправлены.
avatar
А как поаккуратнее обновить? Просто заменить код в сниппете и плагине?
Пропишите ширину и высоту в настройках
Подскажите, где и как!
Если важно, вот содержание чанка &rowTpl
<div style='float:left;padding:2px 10px 10px 10px;'><a href="[+link+]" rel="lightbox[roadtrip]" title="[+title+]" onclick='displayMainImage(this.href, this.title);return false;' class="clickMe"><img src="[+url+]" alt="[+title+]" title="[+title+]" class="dopImage" /></a></div>
avatar
Просто заменить код, а конфигурация плагина в соседней вкладке.
avatar
Спасибо, все получилось
avatar
вывожу сниппет два раза на одной странице. Галлерея и главная картинка(через &fid=`1`). Вопрос, можно ли настроить для главной фото другой размер превью, чем для галлерее?
Еще обдумываю вариант создать плагин и сниппет с другим названием и задать другие параметры. Получится? Не будут ли они конфликтовать?
avatar
Для отдельного ресайза конкретной картинки можно использовать phx + phpthumbof
Также можно главную картинку положить в отдельное tv-поле и ресайзить плагином вроде TVimageResizer.
avatar
понадобилось вывести несколько случайных фоток: забил две строки (перед конечной)
if (isset($random_max)) {
   $dev = $fotoRes[array_rand($fotoRes,$random_max)];
   $output = implode('',$dev);
}

* но модкс пишет «document.parser.class.inc.php — Illegal offset type»
avatar
if (isset($random_max)) {
	shuffle($fotoRes);
	$fotoRes = array_slice($fotoRes,0,$random_max);
	$output = implode('',$fotoRes);
}
avatar
Подскажите в чем проблема:
не генерирует маленькую картинку, если в поле «Ссылка или большая картинка» указать ссылку на изображение со стороннего сайта.
avatar
Проблема в том, что это не предусмотрено.
avatar
Понят, спасибо, недавно пересмотрел код))
avatar
А как сделать чтобы выводились уменьшенные картинки — вызываю [[Multiphotos]]
avatar
Поставил себе этот плагин, замечательнейшая вещь! Большое спасибо автору!

Сейчас пока есть только одна мелочь над которой думаю, использую плагин для слайдера и интересно, как другие решают вопрос с навигацией в слайдере. То есть те самые точки. которые бывают под картинкой например.

Допустим я использую Sliderkit, но пока не понятно как в вот этой верстке:

<div class="sliderkit mainslider">
	<div class="sliderkit-nav">
		<div class="sliderkit-nav-clip">
			<ul>
				<li><a href="#" title="[+title+]"></a></li>
			</ul>
		</div>
	</div>
	<div class="sliderkit-panels">
		[+photos+]
	</div>
	<div class="sliderkit-outer"></div>
</div>

заставить автоматически генерироваться вот этот кусок:

<div class="sliderkit-nav-clip">
	<ul>
		<li><a href="#" title="[+title+]"></a></li>
	</ul>
</div>
avatar
Два раза сниппет вызывать с разными шаблонами, один раз для верхнего куска, другой — для нижнего.
avatar
Ага, спасибо.
Как раз вот экспериментальным методом пришел к такому варианту:


<div class="sliderkit mainslider">
		[[MultiPhotos? &outerTpl=`NavOuterTpl` &rowTpl=`NavRowTpl`]]
        <div class="sliderkit-panels">
                [+photos+]
        </div>
        <div class="sliderkit-outer"></div>
</div>
avatar
Как добавить еще одно текстовое поле, для прописывания alt картинки отдельно.
avatar
В плагине по аналогии с imgName. В сниипет добавить [+alt+] и $v[3]
avatar
1)
var imgName = new Element('input',{'type':'text','class':'imageField','value':values[2],'events':{
			'keyup':function(){this.setEditor();documentDirty=true;}.bind(this)
		}});

2)
rowDiv.adopt(this.sp('{$lang['alt']}'),this.br(),imgAlt,bAdd);
avatar
values[3]
avatar
Да, это я заметил, исправил. СПАСИБО.

С
undefined
можно что то сделать?
avatar
if (!values) values=['','',''];
замените на
if (!values) values=['','','',''];
avatar
Спасибо
avatar
Ребята, помогите, пожалуйста, все сделал как описано выше, даже варианты разные еще, ну никак не могу вывести еще одно поле.
Если есть готовый код — скиньте, плиз. Очень надо.
Спасибо.
avatar
В качестве значения в документе написано
undefined
avatar
Добрый день уважаемому собранию!

А как заставить AjaxSearch искать документ по названию фоток в нем, интегрированных через сей замечательный плагин?

То есть, у картинки в поле «Название» что-то вбито, соответственно в базе в таблице «modx_site_tmplvar_contentvalues» оно, как и все порядочные TV, присутствует.
Но AS нормально ищет по всем TV, кроме этого («photos») — его просто не видит.
В какую сторону копать?

Спасибо.
avatar
Не ищет или не выводит? Тут выше обсуждалось
avatar
Именно не ищет. Выводить нужно стандартно — просто заголовок страницы, описание.
Выше обсуждался вывод превью в результатах, насколько я понял.
avatar
Снова здравствуйте!
Путём тыка определил следующее.

Формат вывода TV (photos) такой:
[["Путь1","","Название1"],["Путь2","","Название2"],["Путь3","","Название3"]]

Так вот, если у данного вывода (в базе, к примеру) убрать наружные квадратные скобки:
["Путь1","","Название1"],["Путь2","","Название2"],["Путь3","","Название3"]

то AjaxSearch все прекрасно находит. Можно их даже заменить на ().
Но, соответственно, на странице вывода сниппета выдается ошибка.

Может есть у кого мысли, как обойти данную коллизию?
В AS подшаманить что?.. Заставить его игнорить внешние скобки или в MultiPhotos как-то поменять формат вывода?

Сам в PHP практически ноль ))
Спасибо.
avatar
Как сделать в подписи к картинке textarea вместо input?
Я поменял на textarea тут:
var imgName = new Element('input',.....

Но при сохранении они опустошились, потому что надо что-то дописать в
setEditor: function(){....

Но я не знаю, что, т.к. не знаком с прототипом
avatar
getElements('input[type=text]')
нужно везде заменить на
getElementsBySelector('input[type=text],textarea');
или
getElementsBySelector('.imageField')
avatar
Не получилось.
По клику куда-то улетает фокус
Нашел еще одно место, где забыл поменять селектор. Вроде работает
avatar
попробуйте поставить
github.com/Jako/multiTV

он вам поможет )
avatar
А нельзя ли как-то скрестить MultiPhotos и MultiFiles? Чтобы в первое поле загружалась картинка-превью, во второе — документ (файл pdf) ну и третье — само название? Очень нужно!!!
avatar
Уже скрестили:
github.com/Jako/multiTV
avatar
Супер!!! То что нужно!!!
avatar
Ребята выручайте! Все сделал как написано в инструкции, но маленькая картинка так и осталась прежнего размера, галочки OnDocFormRender и OnBeforeDocFormSave поставил, id tv указал, размеры тоже поставил, как можно решить вопрос, в чем загвоздка?
avatar
А есть ли тут вариант чтобы выводить не все картинки, а, допустим, только первые 6? Если просто ставить &display=`6` то все равно выводятся все…
avatar
Можно добавить в сниппет перед пагинацией
if (isset($limit)) $fotoRes = array_slice($fotoRes,0,$limit);

и использовать параметр &limit
avatar
Да — все супер!!! Получилось как и надо!!! Спасибо!!!
avatar
И еще один вопросик — а нельзя ли как-то поднять нумерацию страниц вверх галереи, чтобы сначала показывалась пагинация, а затем уже выводились картинки
avatar
$outerTpl = $tplPages.$outerTpl;
вместо $outerTpl .= $tplPages;
avatar
Спасибо!!! Все супер!!!
avatar
А вот вопрос — Limit работает, но фотографий много и они большие. Использую вместе с &shuffle в слайдере. Но «перемешиваются» фото только после выбора первых, к примеру 8 картинок. Т.е. из 20 имеющихся выводятся одни и те же 8, но в случайном порядке. Возможно ли сделать чтоб сначала фото «перемешивались» а потом брались первые 8?
avatar
Поставить код с shuffle перед кодом с limit
avatar
но Limit вы рекомендуете ставить перед пагинацией, а пагинация стоит до Random…
вот так не работает, выводит все картинки:
#####################################################
$output = $fid ? $fotoRes[$fid] : implode('',$fotoRes);
if (isset($random)) $output = $fotoRes[array_rand($fotoRes)];
if (isset($shuffle)) {shuffle($fotoRes); $output = implode('',$fotoRes);}
if (isset($limit)) $fotoRes = array_slice($fotoRes,0,$limit);
if ($output) return str_replace('[+photos+]',$output,$outerTpl);
?>
avatar
Всем привет!
Использую catalogView и отдельные таблицы (где хранятся товары и их TV). Где можно изменить (возможно запрос?) код, чтобы данный сниппет заработал в catalogView? Нужно для каждого товара просто организовать слайдер с n-нным числом картинок. А пока, соответственно в шаблоне catalogDesc_chunk.tpl вызов [[MultiPhotos? &tvname=`tovar_image_slider` &rowTpl=`sliderTpl_tovar`]] не работает =(. Посоветуйте что-нибудь пжл…
avatar
В общем решения не нашел и написал свой маленький и простой сниппет для вывода всех картинок в карточке товара сниппета catalogView (у шопкипера товары занесены в отдельную таблицу БД!). Полезно, когда в карточке товара необходимо вывести галерею или слайдер со всеми картинками. В общем вот код, может кому пригодится:


<?php
if(isset($_GET)) {
	$tmplvarid = 17; // id TV параметра изображений для MultiPhotos
	$select = "SELECT tmplvarid, contentid, value ";
	$from = "FROM ".$modx->db->config['table_prefix']."catalog_tmplvar_contentvalues";
	$where = " WHERE tmplvarid = ".$tmplvarid;
	$query = $select.$from.$where;
	$result = $modx->db->query($query);
	
	while ($res = $modx->db->getRow($result)) {
		if($res['contentid'] == $_GET['p']) {
			$output = json_decode($res['value']);
			foreach($output as $value) {
				$count++;
			}
			for($i = 0; $i < $count; $i++) {
				echo '<div class="carousel-block_product">';
				echo '<img src="'.$output[$i][0].'" alt="" />';
				echo '</div>';
			}
		}
	}
}
?>

1) Создаем сниппет с любым названием (напр. slider_tovar) и вставляем в него код, что выше. Сохраняем.
2) Идем в чанк карточки твоара/детального просмотра (по умолчанию у catalogView чанк лежит по адресу \assets\snippets\catalogView\chunks\catalogDesc_chunk.tpl) и вставляем туда наш сниппет [[slider_tovar]].
В результате получим вывод всех картинок, относящихся к просматриваему товару.

Удачи ;)
avatar
Здравствуйте,
<body style="background-image:url([!MultiPhotos? &tvname=`bg_site` &random=`1`  &outerNone=`1` &id=`2`!]);">


Вот такое на выходе:

как избавится вот от этого мусора.
Мне нужно просто рандомно выводить только урл к файлу, тоесть задача рандомить фон у сайта.
avatar
Что за outerNone? У меня только outerTpl есть. Проверьте то, что добавляли в код.
avatar
<body style="background-image:url([!MultiPhotos? &tvname=`bg_site` &random=`1`  &id=`2`!]);">

Ничего не поменялось
avatar
<body style="background-image:url([!MultiPhotos? &tvname=`bg_site` &random=`1` &outerTpl=`bg_site-outerTpl` &rowTpl=`bg_site-rowTpl` &id=`2`!]);">
bg_site-outerTpl
[+photos+]
bg_site-rowTpl
[+url+]
avatar
Большое спасибо) Работает. Красота получилась))
avatar
Народ подскажите в чем проблема,
[[MultiPhotos? &tvname=`photos`]] — фотографии выводятся, но при попытке вывести название фотографии
[[MultiPhotos? &tvname=`photos` &rowTpl=`[+title+]` ]] — все исчезает и ничего не выводится.

В чем проблема, как вывести название фотографии?
avatar
в rowTpl должно быть имя чанка
avatar
как должен выглядеть код в чанке для вывода названия изображения?
avatar
да так же
avatar
Не сохраняются фотографии, поля остаются пустыми, в чём может быть причина?
avatar
События к плагину при установке все указали?
avatar
Народ, вывожу большие фотки в ditto через
phx:mphotoBig с помощью следующего кода:
<?php
$fotoArr=json_decode($output);
    if ($fotoArr) {
        $MyFoto = "<a style='display: none;' class="fancybox-thumbs" data-fancybox-group="thumb"  href='".$fotoArr[0][1]."'> раз</a>"; 
        $countFoto = count($fotoArr) - 1;
        while ($MyX++<$countFoto){
            $MyA ="<a style='display: none;' class="fancybox-thumbs" data-fancybox-group="thumb"  href='".$fotoArr[$MyX][1]."'> раз</a>";    
            $MyFoto=$MyFoto.$MyA;
        }
        return $MyFoto;
    };
?>



В чанке дитто вот.
[+demo-foto-product:mphotoBig+]

Может может это как-то проще-изячней делаетцо? Подскажите как лучше. Так-то всё работает.
avatar
Нашел небольшой баг или не баг, а так фичу. Если в названии изображения присутствуют спец символы по типу %, по крайней мере в моем случае так было, не ресайзит и не делает маленькое превью, а просто выводит большую картинку. Modx Evo 1.10 чистая php 5.2.
И да огромное спасибо за плагин! Отличная штука.
avatar
Помогите разобраться.
Версия системы 1.0.10-d5.4R. Не выводится адрес миниатюр через [+photos:mphoto+].
Вызов Дитто:
[[Ditto? &parents=`4` &depth=`1` &orderBy=`publishedon DESC` &tpl=`folio-1`]]

Чанк folio-1:
<div class="grid_2 z">
<figure><a href="[~[+id+]~]"><img src="[+photos:mphoto+]" alt=""></a></figure>
<h3><a href="[~[+id+]~]">[+pagetitle+]</a></h3>
</div>


Есть сайт на этом же хостинге на 1.0.7, все работает хорошо. Все 5 раз перепроверил: события, конфиг, phx…
Что еще, подскажите? Может с чем-то конфликт именно в этой сборке (1.0.10-d5.4R)?
avatar
добавьте в ditto параметр &phx=`1` + проверьте наличия снипета phx:mphoto
а вообще по сборке Дмитрия лучше тут писать modx.im
так как на этом сообщесве он не появляется
avatar
&phx=`1` — помогло.
Спасибо!)
avatar
Вывод маленьких картинок (первая) в ditto: (сниппет phx:mphoto)
А можно как-то большие картинки аналогично вытащить?
avatar
$fotoArr[0][1]
avatar
Подскажите, пожалуйста, как сделать так, что бы мультифото искал фотографии по всем вложенным ресурсам?
Т.е. есть на сайте некий раздел фотогалерея с категориями. Как сделать сделать так, что бы на главной странице сайта выводились последние 9 добавленных фотографий.
Или хоты бы как сделать в этом параметре [+photos:mphoto+] вывод не первой фотки, а всех?
avatar
При добавлении картинки, почему то модуль падает
Не подскажите в чем дело?
avatar
разобрался, вместо textarea подключил image в tv из-за этого падал
avatar
можно как first class назначить первому фото?
avatar
При попытке загрузки большого количества изображений пакетно через Multiphotos вылетает 502 Bad Gateway. Хостинг говорит, что надо оптимизировать скрипт. Помогите, что же делать?)
avatar
Тут нет пакетной загрузки, наверное модификация какая-то. Загружайте частями, если это возможно. Для большого количества изображений удобнее галерею какую-нибудь использовать типа EvoGallery.
avatar
Спасибо большое!!!

Интересно можно ли в
<a href="[+link+]" id="thumb_[+num+]" rel="prettyPhoto[gallery2]" class="mphotoitem">
   <b style="font-size:14px;">[+title+]</b>
   <img src="[+url+]" alt="[+title+]" title="[+title+]" />
</a>

использовать phpthumb?
во всяком случае скоро узнаю — отпишусь здесь.
avatar
Можно!!!

Еще раз огромное спасибо.
avatar
Скажите, по какой причине может не работать сниппет phx:mphoto? У меня он имеет вид:
<?php
$fotoArr=json_decode($output);
if ($fotoArr) return $fotoArr[0][0];
?>

В результате не выводится ничего, проверка if ($fotoArr) не проходит. Сниппет MultiPhotos работает правильно, как и PHx. Как временное решение добавил в вызов MultiPhotos параметр mode и в зависимости от его значения либо делаю return $fotoArr[0][0] сразу после заполнения этого массива, либо все работает как обычно. Но все равно интересно по какой причине некорректно работает вызов phx:mphoto.
avatar
А PHx в Ditto включен, сниппет вообще запустился? В некоторых сборках он отключен по-умолчанию и его нужно включать через &phx=`1`
avatar
У меня такая же проблема, недавно обновился до сборки Дмитрия 1.0.14
phx установлен и ваш плагин, в дитто попробовал прописать &phx=`1`
не работает превью для первой картинки, выводит только описание к фото.


[+phx:if=`[+photos:mphoto+]`:ne=``:then=`

<a title="[+title+]" href="[~[+id+]~]"> <img src="[+photos:mphoto+]" alt="[+pagetitle+]" title="[+pagetitle+]" /></a> <br />

`+]
avatar
Может где-то и было, но не нашел…
А можно с помощью плагина создать несколько миниатюр разных размеров с разными префиксами для разных TV?
avatar
У меня в слайдере выводит ону фотографию только, а добавлено 7. Где и что нужно исправлять?

вывод:

<!------ Slider ------------>
		 <div class="slider">
	      	<div class="slider-wrapper theme-default">
	            <div id="slider" class="nivoSlider">
					[[MultiPhotos? &tvname=`photos` &rowTpl=`mphotos`]]
	            </div>
	       </div>
         </div>
  <!------End Slider ------------>


чанк mphotos
<img src="[+url+]" alt="[+title+]" />


Помогите, пожалуйста!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.