Перейти к содержимому


Копировать поле Фото


Сообщений в теме: 29

#1 serg777

    Активный участник

  • Пользователи
  • PipPipPip
  • 44 сообщений

Отправлено 17 Март 2013 - 09:15

В пределах одной таблицы нужно, чтобы было 2 поля:
1. Фото (тип - изображение, table=1&field=41)
2. Photo (копия поля фото)

Я сделал всё согласно инструкциям изложенным на этой странице: http://clientbase.ru...6/calculations/

1. создал поле Photo типа текст
2. поставил галочку: Применять HTML форматирование
3. создал вычисление для поля Photo

$data['Photo'] = "<a href='open_file.php?table=1&field=41&line=$ID&file=".$line['Photo']."'><img src='open_file.php?table=1&field=41&line=$ID&file=".$line['Photo']."&show=1&w=100&h=100' alt='' /></a>";

В чем ошибка?

#2 serg777

    Активный участник

  • Пользователи
  • PipPipPip
  • 44 сообщений

Отправлено 18 Март 2013 - 11:33

подскажите, пожалуйста

#3 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 18 Март 2013 - 12:57

Во-первых, присвоение слева должно быть не в $data, а в $line. Переменная $line - системная переменная, программа автоматически заносит ее значения в базу данных, а $data - это ваша собственная переменная, которая сама по себе ничего не обновит.

Во-вторых, раз вы копируете значения из поля "Фото", то и использоваться справа в ссылке должно поле Фото, а не Photo. Иначе у вас получается копирование поля само на себя.

Итого:
$line['Photo'] = "<a href='open_file.php?table=1&field=41&line=$ID&file=".$line['Фото']."'><img src='open_file.php?table=1&field=41&line=$ID&file=".$line['Фото']."&show=1&w=100&h=100' alt='' /></a>";

#4 serg777

    Активный участник

  • Пользователи
  • PipPipPip
  • 44 сообщений

Отправлено 18 Март 2013 - 13:20

Большое спасибо за подсказку, я попробовал, но картинка всё равно не отобразилась :(
Там на изображении видно, копируем из поля "Фото" в поле "Photo"

Прикрепленное изображение: Снимок.JPG

#5 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 18 Март 2013 - 14:42

Попробуйте так:

$line['Photo'] = "<a href='open_file.php?table=1&field=41&line=$ID&file=".urlencode($line['Фото'])."'><img src='open_file.php?table=1&field=41&line=$ID&file=".urlencode($line['Фото'])."&show=1&w=100&h=100' alt='' /></a>";

Пояснение: функция urlencode преобразует имя файла в корректную URL-кодировку.

И еще два замечания:
1. "table=1&" можно убрать, он не используется
2. У вас в ссылке отсутствует ""&show=1" - при нажатии на картинку, она будет загружаться как файл, а не отображаться на экран. Хотя, возможно вам именно это и надо?

#6 serg777

    Активный участник

  • Пользователи
  • PipPipPip
  • 44 сообщений

Отправлено 18 Март 2013 - 15:19

Цитата

2. У вас в ссылке отсутствует ""&show=1" - при нажатии на картинку, она будет загружаться как файл, а не отображаться на экран.

Да, спасибо большое, это ценно, я поправил.

Странно, но почему-то вместо файла всё равно отображается квадратик... хотя, скачивается и отображается на новой странице.
Когда я удалил вот эту часть "w=100&h=100", файл отобразился, но в натуральном размере.

#7 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 18 Март 2013 - 17:14

Действительно странно, у меня задание размера работает.

#8 serg777

    Активный участник

  • Пользователи
  • PipPipPip
  • 44 сообщений

Отправлено 18 Март 2013 - 17:24

Что можно с этим сделать? Отправить заявку в тех-поддержку?...

#9 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 18 Март 2013 - 17:54

Цитата

Отправить заявку в тех-поддержку?

Можно. Бэкап не забудьте приложить.

#10 serg777

    Активный участник

  • Пользователи
  • PipPipPip
  • 44 сообщений

Отправлено 22 Март 2013 - 08:57

тех поддержка молчит...

сколько не мучился, получилось только так:


$line['Photo'] = "<a href='open_file.php?table=1&field=41&line=$ID&file=".urlencode($line['Фото'])."&show=1'>
<img src='open_file.php?table=1&field=41&line=$ID&file=".urlencode($line['Фото'])."&show=1' alt='' width='100' height='100' />
</a>";

но так плющит картинку...

#11 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 357 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 22 Март 2013 - 09:53

$line['Photo'] = "<a href='open_file.php?table=1&field=41&line=$ID&file=".urlencode($line['Фото'])."&show=1'>
<img src='open_file.php?field=41&line=$ID&file=".urlencode($line['Фото'])."&show=1' style='max-width:100px;max-height:100px;' />
</a>";
не должно плющить

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#12 serg777

    Активный участник

  • Пользователи
  • PipPipPip
  • 44 сообщений

Отправлено 22 Март 2013 - 10:46

спасибо, а вот как сделать так, чтобы обрезало картинку и делало из неё квадратик 100 на 100?

#13 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 357 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 22 Март 2013 - 12:22

Просмотр сообщенияserg777 (22 Март 2013 - 10:46) писал:

спасибо, а вот как сделать так, чтобы обрезало картинку и делало из неё квадратик 100 на 100?
Стандартными вроде никак. Можно реализовать, написав свою функцию на основе imagecopyresampled, или поискать в инете. Наверняка уже есть аналоги.

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#14 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 22 Март 2013 - 12:56

Цитата

Стандартными вроде никак

Как это "никак", если выше есть пример с "w=100&h=100" ? Параметры должны работать, по крайней мере у меня - работает.

Цитата

тех поддержка молчит...

Техподдержка забыла передать мне файл видимо, я проверю сегодня.

#15 serg777

    Активный участник

  • Пользователи
  • PipPipPip
  • 44 сообщений

Отправлено 22 Март 2013 - 13:28

большое, спасибо

#16 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 357 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 22 Март 2013 - 20:03

Просмотр сообщенияCbCoder (22 Март 2013 - 12:56) писал:

Как это "никак", если выше есть пример с "w=100&h=100" ? Параметры должны работать, по крайней мере у меня - работает.
Проверил, у меня тоже работают параметры.

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#17 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 23 Март 2013 - 15:44

Проверка показала, что пережатие размеров картинки через open_file.php не работает именно на SaaS. Проблему исправим позже.

#18 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 25 Март 2013 - 10:55

Исправили, обновите ревизию.

#19 adminTF

    Участник

  • Пользователи
  • PipPip
  • 18 сообщений
  • Пол:Мужчина
  • Город:Москва

Отправлено 30 Август 2013 - 14:54

Добрый день. Столкнулся с двумя проблемами:
1. В таблице создал поле "фото" с типом- изображение table=251&field=8551
в этой же таблице создал поле "копия фото" с типом текст и включенным "Применять HTML форматирование"
для поля "копия фото" создал вычисление
$line['копия фото'] = "<a href='open_file.php?table=251&field=8551&line=$ID&file=".urlencode($line['фото'])."&show=1'>
<img src='open_file.php?field=8551&line=$ID&file=".urlencode($line['фото'])."&show=1' alt='' width='100' height='100' />
</a>";
с условием выполнять при сохранении. Вычисление работает, но если фотографии в поле "фото" нет, то в поле "копия фото" появляется квадрат, который не нужен. Если изменить условие выполнения фильтра на выполнять при изменении поля фото, тогда при добавлении фотографии она не копируется а получается пустой квадрат.
Что может быть не так?

2. Хочу чтобы фотография из из одной таблицы копировалась в другую.
создал во второй таблице поле "фото из фотографов" с типом текст и включенным "Применять HTML форматирование"
к нему добавил фильтр
$line['фото из фотографов'] = "<a href='open_file.php?table=251&field=8551&line=$ID&file=".urlencode($line['фото'])."&show=1'>
<img src='open_file.php?field=8551&line=$ID&file=".urlencode($line['фото'])."&show=1' alt='' width='100' height='100' />
</a>";
и при любом условии вычисления, в таблице появляется только пустой квадрат, а фотографии нет.
Как это исправить?
Кстати при кликаньй по этому квадрату появляется надпись "File doesn`t exists"

#20 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 02 Сентябрь 2013 - 12:27

Цитата

Что может быть не так?

Очевидно, "не так" - то что вы не проверяете наличие картинки перед тем как создать на нее ссылку, поэтому у вас и выходит пустой квадрат. Добавьте проверку в код.

Цитата

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

Вы в вычислении в другой таблице зачем то используйте поле из первой ($line['фото']), которого очевидно в этой другой таблице нет. Разумеется в итоге будет пустота.





Количество пользователей, читающих эту тему: 4

0 пользователей, 4 гостей, 0 анонимных