Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Общие вопросы (http://forum.typo3.ru/forumdisplay.php?f=12)
-   -   Picture in new window for FCE (http://forum.typo3.ru/showthread.php?t=2094)

Pavel Antonov 27.02.2007 00:26

  1. В 4.1 уже можно достать размер картинки при обработке IMG_RESOURCE
  2. Про IMG_RESOURCE я такого помоему не говорил...
Я честно говоря уже не понимаю о чем идет речь... ведь была же рабочая версия?

Tod 27.02.2007 00:37

смотря о какой версии вы говорите))
код якобы рабочей версии был приведен, но ничего не происходит)
в свое время я остановился на полпути. сейчас ищу решение через джаваскрипт)) без размеров никак нельзя(
.. а скоро будет 4.1 офф релиз?) уже хочется проапдейтить, раз такое дело

Pavel Antonov 27.02.2007 14:37

Цитата:

Сообщение от Tod (Сообщение 10060)
.. а скоро будет 4.1 офф релиз?) уже хочется проапдейтить, раз такое дело

Как только... так сразу!
(Текущий релиз-кондидат вполне рабочий)

Andrey Grey 25.04.2007 16:03

Цитата:

Сообщение от Pavel Antonov (Сообщение 10057)
[list=1][*]В 4.1 уже можно достать размер картинки при обработке IMG_RESOURCE

Павел, а откуда Вы взяли информацию о имдж_ресурс в 4.1?
Хотелось бы почитать...

Pavel Antonov 25.04.2007 16:20

Цитата:

Сообщение от tonnazh (Сообщение 11523)
Павел, а откуда Вы взяли информацию о имдж_ресурс в 4.1?
Хотелось бы почитать...

Я нашел изменения в исходниках, так как сам занимался данным вопросом.
Кроме пары комментариев в исходниках, где еще посмотреть не знаю.
Возможно появится при обновлении документации (TSref)...

Tod 10.07.2007 21:34

В обновленной документации увы не нашел...
Так каким образом реально можно достать размеры картинки?

Tod 11.07.2007 01:37

Есть пока 2 идеи.
Первая просто для объекта IMAGE, стандартная по сути.

10 = IMAGE
10.file.import = uploads/tx_templavoila/
10.file.import.current = 1
10.file.import.listNum = 0
10.file.maxW = 149
10.file.mixW = 149

10.imageLinkWrap = 1
10.imageLinkWrap {
bodyTag = <BODY bgColor=white style="margin: 0px; padding: 0px;">
wrap = <A href="javascript:close();" title="Закрыть окно" > | </A>
enable = 1
title = Image
JSwindow = 1
JSwindow.newWindow = 1
JSwindow.expand = 0,0
}

В принципе, для фоток достаточно выравнивания по ширине, все остальное можно сделать с помощью шаблона ХМТЛ - то есть расположить небольшую фотку вцентре либо сверху.
НО - Мне нужно туда впихнуть копирайт на фотки, которые в новом окне... я как-то думал и мне очень кажется, что это нереально.

----------------------------------------------------------------------------

Вариант2. Тут в плане генерирования картинок полная свобода - хотиш добавить копирай - пожалуйста.
НО есть проблема1 - передать размеры картинки (опять же господа типо3 боги надеюсь на вашу помощь, не могу уже на гугл смотреть и немецкие карлючки)... Пока код что-то вроде:

20 = IMG_RESOURCE
20 {
file = GIFBUILDER
file {
XY = 140,115
offset = 140-[10.w]/2,115-[10.h]/2
transparentBackground = 1

10 = IMAGE
10 {
file.import = uploads/tx_templavoila/
file.import.current = 1
file.import.listNum = 0
file.maxW = 140
file.minW = 70
file.maxH = 115
file.minH = 57
}
}
}

20.stdWrap.wrap = <img src="|"

25 = IMG_RESOURCE
25 {
file = GIFBUILDER
file {
XY = [10.w],[10.h]
10 = IMAGE
10.file.import = uploads/tx_templavoila/
10.file.import.current = 1
10.file.import.listNum = 0
20 = IMAGE
20.offset = [10.w]-[20.w]/2,[10.h]-[20.h]/2
20.file = fileadmin/pictures/catalogue/logo.png
}
}
25.stdWrap.wrap = onClick="window.open('|','','width=900,height=650' )" title="" />

Проблема2 - не могу достать открывающееся окно дабы задать там отступы и стиль для BODY. подозреваю єто можно сделать через JavaScript, да?

Dutchak Vitaly 11.07.2007 02:13

через JavaScript подгони размер окна с картинкой.

void 11.07.2007 02:29

Через JS можно узнать и размер картинки (всё равно её грузить), и подогнать размер окна, и стили все задать.

Tod 11.07.2007 02:30

Я когда-то находил пример кода, подгоняющего картинку после загрузки окна, но этот код типа дважды грузил одно и то же окно - мне лично не особо нравилось((

НАШЕЛ!!! Интересная штука, позволяющая достать некоторую инфу по картинкам, в том числе размеры:

30 = TEXT
30.data = TSFE:lastImgResourceInfo|0
30.wrap = '|',

40 = TEXT
40.data = TSFE:lastImgResourceInfo|1
40.wrap = '|')" title="" />

зы. просто не силен в JS)

Tod 12.07.2007 01:26

Увеличение фотографий в FCE [Решение]
 
Ну вроде получилось то, что хотел... и с помощью TS. Не знаю пашет ли оно на ранних версиях TYPO3 и TV, я использовал 4.1.1 и 1.3.0.
Кроме того, фотка в новом окне отображается с логотипом в центре - типа копирайта, в качестве которого используется полупрозрачная png картинка.

Для этого мапим в шаблоне нужное место под будущую картинку, а потом в DS добавляем:

<TypoScript><![CDATA[

10 = IMG_RESOURCE
10 {
file = GIFBUILDER
file {
XY = [10.w],[10.h]
10 = IMAGE
10.file.import = uploads/tx_templavoila/
10.file.import.current = 1
10.file.import.listNum = 0
20 = IMAGE
20.offset = [10.w]-[20.w]/2,[10.h]-[20.h]/2
20.file = fileadmin/pictures/catalogue/logo.png
}
}
10.stdWrap.wrap = <a href="javascript:my_popup('|',

14 = TEXT
14.field = field_title
14.wrap = '|',

15 = TEXT
15.data = TSFE:lastImgResourceInfo|0
15.wrap = '|',

16 = TEXT
16.data = TSFE:lastImgResourceInfo|1
16.wrap = '|')">

20 = IMG_RESOURCE
20 {
file = GIFBUILDER
file {
XY = 149,125
offset = 149-[10.w]/2,125-[10.h]/2
transparentBackground = 1

10 = IMAGE
10 {
file.import = uploads/tx_templavoila/
file.import.current = 1
file.import.listNum = 0
file.maxW = 149m
#file.minW = 70
file.maxH = 125m
#file.minH = 57
}
}
}


20.stdWrap.wrap = <img src="|" title="" />

30 = HTML
30.value = </a>

]]></TypoScript>

Создаем файл popup_window.inc, куда пишем скрипт для отображение фотографии в новом окне:

<script>
function my_popup(img_scr,img_name,img_w,img_h) {
var generator=window.open('','name','width='+img_w+',h eight='+img_h+'');
generator.document.write('<html><head><title>'+img _name+'</title>');
generator.document.write('</head><body style="margin: 0px; padding: 0px;">');
generator.document.write('<a href="javascript:close()">');
generator.document.write('<img src="'+img_scr+'" style="border:0px;"/></a>');
generator.document.write('</body></html>');
}
</script>

Чтобы подключить его на сайт в настройках шаблона указываем:

page.headerData.20 = FILE
page.headerData.20.file = fileadmin/templates/popup_window.inc

зы. Огромное спасибо всем участвующем в решении проблемы!

Andrey Grey 04.10.2007 06:03

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

Тод, исправь пожалуйста ошибки в коде
в JS строчка:
Код:

var generator=window.open('','name','width='+img_w+',h eight='+img_h+'');
ну а вот мой интерпретированный вариант. он урезан. т.е. открывается не страница с кодом и указателем на картинку, а открывается просто картинка. соответственно закрытие по нажатию на картинку тоже отсутствует. но есть плюс. есть прямая ссылка на картинку, что и для пользователя и для поисковика всегда хорошо
и нет необходимости подключать дополнительный JS-код

Код:

5 = IMG_RESOURCE
5.file.import = uploads/tx_templavoila/
5.file.import {
        current = 1
          listNum = 0
}
5.stdWrap.wrap = &lt;a href="|" target="_blank" onclick="window.open(this.href,this.target,

7 = TEXT
7.data = TSFE:lastImgResourceInfo|0
7.wrap =  'width=|,

9 = TEXT
9.data = TSFE:lastImgResourceInfo|1
9.wrap = height=|,location=no,toolbar=no,menubar=no,status=no');return false;"&gt;       

        10 = IMAGE
        10.file.import = uploads/tx_templavoila/
        10.file.import.current = 1
        10.file.import.listNum = 0
        10.file.maxW = 215
        10.file.maxH = 161
        10.stdWrap.wrap = | &lt;/a&gt;


Tod 18.01.2008 17:39

Исправлял, форум не хочет:) Нет никаких пробелов или других символов

Grank 31.01.2008 22:24

generator.document.close(); ;-)


Часовой пояс GMT +4, время: 05:30.

Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot