brioni

brioni

С нами с 05 ноября 2015; Место в рейтинге пользователей: #154
brioni
23 февраля 2016, 12:20
2
0
Получилось с первого раза, тупо заменив параметр &input внутри вызова pthumb:
<img src="[[pthumb? &input=`[[pdoResources:default=`[[*image]]`? &class=`TicketFile` &where=`{"parent":[[+id]]}`  &sortby=`createdon`  &sortdir=`ASC`  &limit=`1`  &tpl=`@INLINE [[+url]]`]]` &options=`w=79,h=54`]]">
Рассчитывал на то, что придется создавать обрезанные превью для каждого размера фотки как описано здесь, а затем выводить их в нужных местах сайта — но оказалось всё гораздо проще. Чему я очень рад :)
brioni
21 февраля 2016, 21:02
0
На странице вывод нашел здесь
<img src="[[pdoResources:default=`/path/заглушка.png`? &class=`TicketFile` &where=`{"parent":[[+id]]}`  &sortby=`createdon`  &sortdir=`ASC`  &limit=`1`  &tpl=`@INLINE [[+url]]`]]" >
P.S. — при оформлении вопросов, как указано в блоке справа, подробнее, т.е максимум ключевых слов описывайте проблему. Ответ на свой вопрос найден по запросу: «Tickets has_files», что не совсем логично…

Далее отправляюсь на поиски вывода изображений в списке ресурсов через phptrumb/
Отпишусь по результату — новички оценят.
brioni
21 февраля 2016, 20:36
0
Ребята, как из кода ниже сделать вывод загруженного через TicketForm изображения ?

Все ветки обсуждений перелопачены и нигде нет короткого, но пипец важного примера, а тыкак-самотыкать я уже заколебался.
[[!pdoResources?
	&parents=`0`
	&class=`modResource`
	&loadModels=`ms2gallery`
	&leftJoin=`{
		"Image": {
			"class": "msResourceFile",
			"on": "modResource.id = Image.resource_id AND Image.parent = 0"
		},
		"Thumb": {
			"class": "msResourceFile",
			"on": "Image.id = Thumb.parent AND Thumb.path LIKE '%120x90%'"
		}
	}`
	&select=`{
		"modResource": "*",
		"Image": "Image.url as image",
		"Thumb": "Thumb.url as thumb"
	}`
	&showLog=`1`
	&sortby=`id`
	&sortdir=`ASC`
]]
Ясно, что удаляем &parents=`0`, &class=`modResource`заменяем на &class=`TicketFile`, а дальше всё — тупик.
brioni
21 февраля 2016, 19:24
0
Извините, но я так и не понял как вывести загруженное из фронтэнда изображение на странице тикета вне поля content.
Можно пример вызова [[!pdoResources?]] для этой цели?
brioni
21 февраля 2016, 16:59
0
Ушел по ссылке, спасибо.
brioni
21 февраля 2016, 16:53
0
А как через pdoResource вызвать изображение загруженное при создании тикета через фротэнд?
И будет ли вызов работать внутри сниппетов getTickets, mSearch, tagLister?
brioni
21 февраля 2016, 16:42
0
Сори, что вопросом на вопрос, но как из этой таблицы вытащить ссылку и привязать её к созданному ресурсу? Плейсхолдер [[+thumb]] работает только веутри сниппета TicketForm
brioni
21 февраля 2016, 16:01
-1
Подскажи как из коробки прицепить Изображение к TV?
brioni
21 февраля 2016, 15:46
0
Вот здесь есть решение:
<input type="file" name="photo">
Дальше, добавь enctype атрибут для формы.
<form method="post" enctype="multipart/form-data" action="[[~[[*id]]]]">
Дальше в плагине добавляем обработку загрузки изображения:
case 'OnDocFormSave':
      // Указываем путь, пробовал $modx->getOption('assets_url').'path/to/dir/';
      // получается со слэшем вначале: /assets/images/.
      $path = 'assets/images/'; 
      if($mode == 'new'){  // Режим создания документа
        if (!empty($_FILES)) {  // Проверка на пустоту массива $_FILES
          @mkdir($path, 0777, true); // Создаем папку для хранения изображений, с правами 0777, третий аргумент - рекурсивное создание папок.
          foreach($_FILES as $k => $v) {
            $name = $v['name'];
            $size = $v['size'];
            $tmp = $v['tmp_name'];

            $ext = pathinfo($name, PATHINFO_EXTENSION); //получаем расширение файла
            $hash = md5(time().$name.$size); // новое название файла
            $uploadfile = $path.$hash.$ext; // объединяем в конечный путь к файлу

            if (copy($tmp, $uploadfile)) { // копируем изображения из временной папки в нужное место
              $resource->set('photo', $uploadfile); 
              $resource->save(); // Сохраняем объект.
            }
          }
        }
      } else {
        //resource update
      }
но мне не удается даже загрузить файл на сервак…
Может кто спарвился?
brioni
21 февраля 2016, 15:27
0
Теме Up! Даешь готовое решение.
brioni
21 февраля 2016, 13:46
0
Можно добавить ролик с YouTube через текстовое поле:
<div class="form-group">
		<label for="ticket-img">Видео</label>
		<input type="text" class="form-control" placeholder="Вставьте ссылку ролика на YouTube" name="video" value="" maxlength="50" id="ticket-video"/>
		<span class="error"></span>
	</div>
Создаем TV [[*video]]
И выводим ролик в нужном месте:
<iframe src="[[*video]]" frameborder="0"></iframe>
HTML ссылку берем так:
brioni
21 февраля 2016, 13:16
0
Пожалуйста, добавь готовое решение.
brioni
21 февраля 2016, 12:19
0
пособом указанным выше — да. По другому не пробовал
brioni
21 февраля 2016, 01:18
0
Можно сделать проще:
tpl.Tickets.form.create
<div class="form-group">
		<label for="ticket-img">Метки</label>
		<input type="text" class="form-control" placeholder="Добавьте 3-5 ключевых слов через запятую" name="tags" value="" maxlength="50" id="ticket-tags"/>
		<span class="error"></span>
	</div>
Вывод тегов в любом месте, на любой странице
[[tagLister? &target=`id страницы вывода результатов` &limit=`20` &parents=`[[*id]]` &altCls=`` &cls=`categories` &weightCls=`` &tpl=`tpl-post-tags`]]
tpl-post-tags стандартный
<li><a class="[[+cls]]" href="[[+url]]">[[+tag]]</a></li>
Всё, что требуется — это установить GetPage & GetResource
brioni
21 февраля 2016, 00:27
0
А как эту самую превьюшку [[+thumb]] вытащить за пределы чанка tpl.Tickets.form.image?
brioni
21 февраля 2016, 00:15
0
Можно задать класс в поле ресурса «Атрибуты ссылки» и вывести в нужном тебе месте через
[[*link_attributes]]
brioni
20 февраля 2016, 23:57
0
Как будет время-настроение, оформи, пожалуйста, готовый плагин — толпа будет признательна 100%
brioni
20 февраля 2016, 23:37
0
Ясен, но признаюсь, что сам реализовать не смогу — в php деревянный
brioni
20 февраля 2016, 18:56
0
Вылечил: ошибка была из-за вывода в tpl чанке для mSearch плейсхолдера
[[+section.id]]
Видно не контачат они друг с другом.