Вывод превью в Tickets

Есть ли возможность при выводе тикетов через mFilter2

[[!mFilter2?
    &element=`getTickets`
    &includeThumbs=`440x300`

Выводить загруженную картинку? Просто [[+thumb]] выводится только если вместо mFilter2 написать pdoPage.

И сразу спрошу, нет ли такой способности у TicketForm что бы загрузка картинок шла через ms2Gallery, то есть что бы открыл документ и видишь загруженные фото? ( но это так в дополнение к основному вопросу )
Константин
30 декабря 2014, 15:35
modx.pro
10
3 156
0

Комментарии: 10

Константин
30 декабря 2014, 21:28
0
Вообщем то есть одно решение, сделать просто сниппет (например: getThumb) с содержимым:

$q = $modx->newQuery( 'TicketFile', array( 'id' == $modx->resource->get( 'id' ) ) );
$q->limit( 1 );

$q->prepare();
$q->stmt->execute();
$res = $q->stmt->fetchAll( PDO::FETCH_ASSOC );

foreach ( $res as $thumb ) {
    return $thumb['TicketFile_thumb'];
}

И в каждом чанке вызвать

<img src="[[!getThumb]]" />

, и тогда будет показыватся первая загруженная фотка, НО, это же доп. запрос к базе. Выбрали 100 тикетов и помимо самих запросов тикетов в дополнение еще 100 запросов на выборку thumb. Данное решение работает нормально, но хотелось бы узнать есть ли возможность доставать этот thumb вместе со всей инфой.
    Василий Наумкин
    30 декабря 2014, 21:34
    0
    Далеко не факт, что присоединение таблицы картинок и выборка из неё будут работать быстрее, чем твой простой запрос из сниппета.

    Но ты можешь попробовать — параметр &leftJoin.

    нет ли такой способности у TicketForm что бы загрузка картинок шла через ms2Gallery
    Нет.

    У Tickets всё своё, потому что ms2Gallery — платный. Было бы неправильно заставлять покупать ms2Gallery всех желающих загружать файлы в Tickets.
Константин
30 декабря 2014, 23:19
1
0
На всякий случай выложу пример который я использую, может кто поправит, а если не требуется, то может кому пригодится.

$q = $modx->newQuery( 'TicketFile' );
$q->limit( 1 );
$q->where(array(
   'parent' => $input
));

$q->prepare();
$q->stmt->execute();
$res = $q->stmt->fetchAll( PDO::FETCH_ASSOC );

foreach ( $res as $thumb ) {
    return $thumb['TicketFile_thumb'];
}

Вызывается в чанке таким макаром:

[[+id:getThumb]]
    Василий Наумкин
    31 декабря 2014, 08:53
    2
    +2
    Вот так немного симпатичнее:
    $q = $modx->newQuery('TicketFile');
    $q->limit(1);
    $q->select('thumb');
    $q->where(array(
    	'parent' => $input
    ));
    if ($q->prepare() && $q->stmt->execute()) {
    	return $q->stmt->fetch(PDO::FETCH_COLUMN);
    }
      Михаил
      18 мая 2018, 13:07
      -1
      Подскажите пожалуйста!
      Как мне добраться к файлам определёно ресурса???
      Я просто делаю доску объявления и пытаюсь спарсить несколько сотен объявления, но появилась проблемка, а именно не получается присоединить фотки к тикету.
      Нужно что то типо такого (к сожалению не знаю как правильно это написать):
      $res = $modx->newObject('ticket');                        
      $res->set('file');
      $res->save();
      Дмитрий
      23 октября 2016, 19:49
      0
      Вывожу картинку таким способом [[+id:getThumb]]
      Но когда создаю новый тикет и загружаю новую картинку, то на всех тикетах картинка меняется на последнюю загруженну.
      Как это исправить?
      Rrp2010
      16 июля 2015, 09:42
      0
      А как создать условие, если нет фото, вставить заглушку?

      [[+id:getThumb:notempty=`тут если не пустое`:else=`тут когда пустое`]]

      Пробовал так, но так как передается ID то получается:
      <img src="id тикета">

        brioni
        27 февраля 2016, 11:50
        0
        Попробуй так
        [[+id:getThumb:default=`Заглушка.png`]]
          Rrp2010
          27 марта 2016, 10:05
          0
          [[+id:getThumb:default=`Заглушка.png`]]
          У меня выводит ID тикета

          Сделал так:
          [[+id:getThumb:lt=`1`:then=`[[+id:getThumb]]`:else=`Заглушка.png`]]
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        10