Поле Изображение (Каскад) генерировать миниатюру

Установка движка, требования к ПО сервера, версии и модификации CMS.
Аватара пользователя
kpnemo
Завсегдатай
Сообщения: 24
Зарегистрирован: 25 июн 2015, 00:05
Откуда: www
Благодарил (а): 33 раза
Поблагодарили: 6 раз

Поле Изображение (Каскад) генерировать миниатюру

Сообщение kpnemo » 29 июн 2015, 23:17

Возможно ли при использовании "Поле Изображение (Каскад)" генерировать миниатюру (ссылку с превью) после загрузки изображения(ий)?
Через "Шаблон вывода поля в документе" или "Шаблон оформления рубрики"....

Аватара пользователя
M@dD3n
Администратор
Сообщения: 667
Зарегистрирован: 25 июн 2015, 09:20
Откуда: Russia
Благодарил (а): 31 раз
Поблагодарили: 101 раз
Контактная информация:

Поле Изображение (Каскад) генерировать миниатюру

Сообщение M@dD3n » 29 июн 2015, 23:30

Прямо мои мысли прочитал ))))) Мы только что обсуждали это поле. Возможностей у поля очень много. Большинство из них реализуется через tpl.

В tpl приходят:
{$field_id} ID поля
{$field_value} Данные поля (массив)
{$field_count} Кол-во элементов в массиве
{$rubric_id} ID рубрики
{$default} Значение по умолчанию

Так можно задать генерацию превью для 1го элемента

Код: Выделить всё

<a href="[tag:f700x700:{$field_value[0][0]}]" title="{$field_value[0][1]}">
   <img src="[tag:f298x298:{$field_value[0][0]}]" alt="{$field_value[0][1]}" width="298" title="{$field_value[0][1]}"/>
</a>


Творить можно что угодно, к примеру вывести 1е изображение крупно, а дальше мелкими превьюшками:

Код: Выделить всё

<a href="[tag:f700x700:{$field_value[0][0]}]" title="{$field_value[0][1]}">
   <img src="[tag:f298x298:{$field_value[0][0]}]" alt="{$field_value[0][1]}" width="298" title="{$field_value[0][1]}"/>
</a>

{* Если элементов больше, чем один *}
{if $field_count > 1}
   {foreach from=$field_value item=image}
   <a href='[tag:f700x700:{$image[0]}]' class='zoom' title='{if isset($image[1])}{$image[1]}{/if}'>
      <img src="[tag:f54x54:{$image[0]}]" width="54" height="54" alt="" />
   </a>
   {/foreach}
{/if}

Аватара пользователя
M@dD3n
Администратор
Сообщения: 667
Зарегистрирован: 25 июн 2015, 09:20
Откуда: Russia
Благодарил (а): 31 раз
Поблагодарили: 101 раз
Контактная информация:

Поле Изображение (Каскад) генерировать миниатюру

Сообщение M@dD3n » 29 июн 2015, 23:36

Так же поле позволяет загружать изображения в папки по ID документа. Возможность появляется ТОЛЬКО после ПЕРВОГО сохранения документа. Для этого достаточно прописать в значении по умолчанию путь, куда сохранят
Пример:
/articles/doc_%id

Все изображения для данного документа будут загружены в папку /uploads/articles/doc_ID документа

Аватара пользователя
kpnemo
Завсегдатай
Сообщения: 24
Зарегистрирован: 25 июн 2015, 00:05
Откуда: www
Благодарил (а): 33 раза
Поблагодарили: 6 раз

Поле Изображение (Каскад) генерировать миниатюру

Сообщение kpnemo » 29 июн 2015, 23:40

M@dD3n писал(а):Источник цитаты Мы только что обсуждали это поле. Возможностей у поля очень много. Большинство из них реализуется через tpl.

Спасибо, буду ковырять... (это я так понимаю можно через "Модуль управления полями" править?)
пока попробовал вывести через шаблон оформления рубрики

Код: Выделить всё

<a href="[tag:rfld:kartinki][img]" class="fancy"><img src="[tag:c300x200:[tag:fld:kartinki][img]]" style="float: left; margin-right: 15px;" alt="картинки" class="rounded"/></a>

что- то не генерируется миниатюра....А в админке на демке "shop b32" - такой код работает... может не подключен скрипт какой -то.....

M@dD3n писал(а):Источник цитаты /articles/doc_%id

Только хотел спросить - в демке увидел :)

Аватара пользователя
M@dD3n
Администратор
Сообщения: 667
Зарегистрирован: 25 июн 2015, 09:20
Откуда: Russia
Благодарил (а): 31 раз
Поблагодарили: 101 раз
Контактная информация:

Поле Изображение (Каскад) генерировать миниатюру

Сообщение M@dD3n » 29 июн 2015, 23:43

Если нужно сгенерировать сразу весь набор превьюшек, после сохранения документа, то это можно сделать через код рубрики. Перед сохранением документа:

Допустим поле имеет ID = 20

Код: Выделить всё

<?php
//Проверяем не пустое ли поле
if (! empty($data['feld'][20]))
{
   // Перебираем массив
   foreach($data['feld'][20] as $key => $image)
   {
      //f700x700
      $f700x700 = make_thumbnail(array('link' => $image['url'], 'size' => 'f700x700'));
      //f298x298
      $f298x298 = make_thumbnail(array('link' => $image['url'], 'size' => 'f298x298'));

      // Т.к. превью создает, только когда идет физическое обращение, делаем его
      $file = (CURL_file_get_contents('http://' . $_SERVER['HTTP_HOST'] . $f298x298));
      $file = (CURL_file_get_contents('http://' . $_SERVER['HTTP_HOST'] . $f54x54));
   }
}
?>


Можно совместить с наложением watermark

Допустим нужно сделать 4 превью
50х50
100х100
200х200
800х800

На первых трех, watermark не нужен и нужно их сгенерировать от исходного изображения

Код: Выделить всё

<?php
//Проверяем не пустое ли поле
if (! empty($data['feld'][20]))
{
   // Перебираем массив
   foreach($data['feld'][20] as $key => $image)
   {
      $f50x50 = make_thumbnail(array('link' => $image['url'], 'size' => 'f50x50'));
      $f100x100 = make_thumbnail(array('link' => $image['url'], 'size' => 'f100x100'));
      $f200x200 = make_thumbnail(array('link' => $image['url'], 'size' => 'f200x200'));
      $f800x800 = make_thumbnail(array('link' => $image['url'], 'size' => '800x800'));

      // Т.к. превью создает, только когда идет физическое обращение, делаем его
      $file = (CURL_file_get_contents('http://' . $_SERVER['HTTP_HOST'] . $f50x50));
      $file = (CURL_file_get_contents('http://' . $_SERVER['HTTP_HOST'] . $f100x10'));
      $file = (CURL_file_get_contents('http://' . $_SERVER['HTTP_HOST'] . $f200x200));

      //Первые превью мы создали, теперь можно накладывать watermark
      watermarks($image['url'], 'repeat', 50);

      // Делаем последнюю превью, но уже от исправленного файла
      $file = (CURL_file_get_contents('http://' . $_SERVER['HTTP_HOST'] . $f800x800));
   }

   unset($file);
}
?>

Аватара пользователя
M@dD3n
Администратор
Сообщения: 667
Зарегистрирован: 25 июн 2015, 09:20
Откуда: Russia
Благодарил (а): 31 раз
Поблагодарили: 101 раз
Контактная информация:

Поле Изображение (Каскад) генерировать миниатюру

Сообщение M@dD3n » 29 июн 2015, 23:45

kpnemo писал(а):Источник цитаты Спасибо, буду ковырять... (это я так понимаю можно через "Модуль управления полями" править?)

Да, можно через него

kpnemo писал(а):Источник цитаты что- то не генерируется миниатюра....А в админке на демке "shop b32" - такой код работает... может не подключен скрипт какой -то.....

Нужно смотреть, может кеш, а может и еще чего-то.

Кардинально в этом плане, ничего не менялось

Аватара пользователя
M@dD3n
Администратор
Сообщения: 667
Зарегистрирован: 25 июн 2015, 09:20
Откуда: Russia
Благодарил (а): 31 раз
Поблагодарили: 101 раз
Контактная информация:

Поле Изображение (Каскад) генерировать миниатюру

Сообщение M@dD3n » 30 июн 2015, 12:02

kpnemo писал(а):Источник цитаты что- то не генерируется миниатюра....А в админке на демке "shop b32" - такой код работает... может не подключен скрипт какой -то.....

kpnemo писал(а):Источник цитаты <a href="[tag:rfld:kartinki][img]" class="fancy"><img src="[tag:c300x200:[tag:fld:kartinki][img]]" style="float: left; margin-right: 15px;" alt="картинки" class="rounded"/></a>


[tag:rfld:kartinki][img]
[tag:c300x200:[tag:fld:kartinki][img]] - ошибка, [tag:rfld:kartinki][img] должно быть

Аватара пользователя
kpnemo
Завсегдатай
Сообщения: 24
Зарегистрирован: 25 июн 2015, 00:05
Откуда: www
Благодарил (а): 33 раза
Поблагодарили: 6 раз

Поле Изображение (Каскад) генерировать миниатюру

Сообщение kpnemo » 30 июн 2015, 12:15

M@dD3n писал(а):Источник цитаты ошибка, [tag:rfld:kartinki][img] должно быть

Спасибо! (Утро вечера мудренее.... слепота куринная : )
Исправил, но на выходе настранице:

Код: Выделить всё

<div class="col-md-12"><a href="/uploads/gallery/vsia_mebel/parapan_kitchen_07.jpg" class="fancy"><img src="[img]]" style="float: left; margin-right: 15px;" alt="" class="rounded"/></a></div>

Ссылка на картинку - Ок, а на миниатюру - вот как-то так "режется"
Этот же код в тизере Админки отлично срабатывает
Изображение

Аватара пользователя
M@dD3n
Администратор
Сообщения: 667
Зарегистрирован: 25 июн 2015, 09:20
Откуда: Russia
Благодарил (а): 31 раз
Поблагодарили: 101 раз
Контактная информация:

Поле Изображение (Каскад) генерировать миниатюру

Сообщение M@dD3n » 30 июн 2015, 12:23

Режется в документе?
Шаблона вывода поля в документе есть?

Аватара пользователя
kpnemo
Завсегдатай
Сообщения: 24
Зарегистрирован: 25 июн 2015, 00:05
Откуда: www
Благодарил (а): 33 раза
Поблагодарили: 6 раз

Поле Изображение (Каскад) генерировать миниатюру

Сообщение kpnemo » 30 июн 2015, 12:27

M@dD3n писал(а):Источник цитаты Режется в документе?
Шаблона вывода поля в документе есть?

режется в документе, шаблон поля - нет ничего (но пробовал и с [tag:parametr:0])
Ещё момент, при "Загрузить с компьютера [?]" получаю
Изображение
через "Выбрать изображение" - все добавляется...


Вернуться в «Общие вопросы»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость