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)

Tod 18.01.2007 02:26

Хм... эпопея с данной темой продолжается.
Путем эксперементов таки для себя понял, что "TemplaVoila дела нет до того каким TS будет отображаться поле, и тем более код который будет отображать поле никак не связан с тем, как поле отображается в BE."
Просто когда писал в TS некоторый код просто НЕПОДОЗРЕВАЛ, что TV его НЕ ОБРАБОТАЕТ!
Итак, например код для поля элемента FCE:
Цитата:

10 = COA
10 {
20 = LOAD_REGISTER
20.my = TEXT
20.my {
velue = some_text
}
30 = TEXT
30.data = register:my
}
отображает на сайте слово TEXT (с IMG_RESOURCE та же фигня)
Более того, если добавить в код строку
Цитата:

30.wrap = <b>|</b>
ничего вообще не отобразится... А теперь самое интересное. Когда я пытаюсь ее закомметнировать
Цитата:

#30.wrap = <b>|</b>
оно тоже НИЧЕГО не выводит!
[TYPO3 4.0, TV 1.1.1]

Pavel Antonov 18.01.2007 13:11

Цитата:

Сообщение от Tod (Сообщение 9271)
Хм... эпопея с данной темой продолжается.
Путем эксперементов таки для себя понял, что "TemplaVoila дела нет до того каким TS будет отображаться поле, и тем более код который будет отображать поле никак не связан с тем, как поле отображается в BE."
Просто когда писал в TS некоторый код просто НЕПОДОЗРЕВАЛ, что TV его НЕ ОБРАБОТАЕТ!
Итак, например код для поля элемента FCE:

отображает на сайте слово TEXT (с IMG_RESOURCE та же фигня)
Более того, если добавить в код строку

ничего вообще не отобразится... А теперь самое интересное. Когда я пытаюсь ее закомметнировать

оно тоже НИЧЕГО не выводит!
[TYPO3 4.0, TV 1.1.1]


Прочитайте внимательно документацию на LOAD_REGISTER! 20.my не является типом cObject, он text/stdWrap. Хотите присваиваейте ему сразу величины (потому TYPO3 и решила, что "TEXT" - это значение) или через stdWrap что-то делайте. Хотите иметь TEXT, то делайте
Код:

my.20.cObject = TEXT

Pavel Antonov 18.01.2007 13:18

Цитата:

Сообщение от Tod (Сообщение 9271)
ничего вообще не отобразится... А теперь самое интересное. Когда я пытаюсь ее закомметнировать
Код:

#30.wrap = <b>|</b>
оно тоже НИЧЕГО не выводит!
[TYPO3 4.0, TV 1.1.1]

Подозреваю, что код вносили непосредственно в XML?

Собственно, а чего же вы хотели? "<" и ">" являются управляющими в XML, код бьется по вашим <b>, "#" - комментарием для XML не является.

Замените "<" на &lt;, а ">" на &gt; или все обернуть в CDATA (смотрите документацию!)

Tod 18.01.2007 15:23

Спасибо, подправил чуток код и получилось что=то вроде:
Цитата:

10 = COA
10 {
10 = LOAD_REGISTER
10.image_url.cObject = IMG_RESOURCE
10.image_url.cObject {
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/
10.file.import.current = 1
10.file.import.listNum = 0
10.file.maxW = 140
10.file.minW = 70
10.file.maxH = 115
10.file.minH = 57
}
}

20 = TEXT
20.data = register:image_url
20.wrap = &lt;a href="#" onclick="myJsAction('|')"&gt;

30 = TEXT
30.data = register:image_url
30.wrap = &lt;img src="|" alt="" title="" /&gt;

40 = TEXT
40.value = &lt;/a&gt;
}
Но теперь в новом окне выводится такая же маленькая картинка как и на сайте(( как достать ссылку именно на файл, а не сгенерированный типо3 рисунок?

Pavel Antonov 18.01.2007 16:02

Цитата:

Сообщение от Tod (Сообщение 9290)
Но теперь в новом окне выводится такая же маленькая картинка как и на сайте(( как достать ссылку именно на файл, а не сгенерированный типо3 рисунок?

IMG_RESOURCE второй раз с нужными параметрами и без GIFBUILDER

Tod 19.01.2007 13:53

Чтобы я делал без вашей помощи)) Спасибо!
Теперь еще одна задача... как мне привязать к скрипту размеры картинки с помощью LOAD_REGISTER?.. никак не получается. Тут ведь нужно обратиться к свойству размеров IMAGE, не могу понять как это сделать?(

Pavel Antonov 19.01.2007 20:11

Цитата:

Сообщение от Tod (Сообщение 9327)
Чтобы я делал без вашей помощи)) Спасибо!
Теперь еще одна задача... как мне привязать к скрипту размеры картинки с помощью LOAD_REGISTER?.. никак не получается. Тут ведь нужно обратиться к свойству размеров IMAGE, не могу понять как это сделать?(

Ничего не понял. Можно код? Зачем вообще используется LOAD_REGISTER? В предыдущем коде он не нужен совершенно.

Tod 19.01.2007 21:33

На данном этапе код такой:
Цитата:

10 = COA
10 {
10 = LOAD_REGISTER
10.image_file.cObject = IMG_RESOURCE
10.image_file.cObject {
file.import = uploads/tx_templavoila/
file.import.current = 1
file.import.listNum = 0
}

20 = LOAD_REGISTER
20.image_url.cObject = IMG_RESOURCE
20.image_url.cObject {
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
}
}
}

30 = TEXT
30.data = register:image_file
30.wrap = &lt;a href="javascript:myJsAction('|',300,300)"&gt;

40 = TEXT
40.data = register:image_url
40.wrap = &lt;img src="|" alt="Подробнее" title="" /&gt;

50 = TEXT
50.value = &lt;/a&gt;
}
Так вот там где 300, 300 нужно как-то впихнуть размеры подгружаемой картинки.
А что касается использования LOAD_REGISTER, то все делаю по вашему советУ) походу...

Pavel Antonov 20.01.2007 20:34

Цитата:

Сообщение от Tod (Сообщение 9340)
На данном этапе код такой:

Так вот там где 300, 300 нужно как-то впихнуть размеры подгружаемой картинки.
А что касается использования LOAD_REGISTER, то все делаю по вашему советУ) походу...

С размерами к сожалению ничего не выйдет... простого способа я не вижу. Честно говоря никакого способа достать размеры я не вижу... Только свой код.

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

Tod 26.02.2007 23:43

Поскольку размеры картинки из TS достать нереально, прийдется писать код самому.
Товарищ void привел свой вариант решения:
Код:

10 = IMG_RESOURCE
10.file = GIFBUILDER
10.file {
XY = 110,192
10 = IMAGE
10.file.import = uploads/tx_templavoila/
10.file.import.current = 1
10.file.import.listNum = 0
10.file.maxW = 110
10.file.minW = 110
10.file.maxH = 192
10.file.minH = 192
}
10.stdWrap {
 postUserFunc = user_izvr->userimglinkwrap
 postUserFunc.imageLinkWrap{
  JSWindow = 1
 }
}

при этом код пхп.
Код:

class user_izvr{
function userimglinkwrap($content,$conf){
  $cObj = t3lib_div::makeInstance('tslib_cObj');
  $imgtag = $cObj->IMAGE(array('file'=>$content));
  return $cObj->imageLinkWrap($imgtag,$content,$conf['imageLinkWrap.']);
}
}

Pavel Antonov, заметил, что IMG_RESOURCE не зачем использовать... + в приведенном коде какая-то ошибка...
0. какая такая ошибка и что вместо IMG_RESOURCE
1. меня смущает точка в 'imageLinkWrap.' (см. код выше)
2. я что-то экспериментировал с приведенным кодом, но никаких результатов работы не увидел вообще. в пхп код передается код маленькой картинки, а смыслу с него никакого. хотя, стоит заметить, что ничего особенно в результате работы данного пхп. файла не происходит - никакого увеличения и т.п.
3. нужно ведь передавать ссылку на большую картинку, а на сайте отобразить превью, сделанное гиф-билдером
4. что самое удивительно искал, где типо3 используется imageLinkWrap чтобы как-то может код позаимствовать.. там где в админке устанавливается в элементах "только картинки" или "текст с картинками" - увеличения для картинок. нашел только в файле setup.txt))
5. пытаюсь пока сделать все с помощью приколов javascript, но там еще более темный лес)) куча нюансов с разными браузерами.. ужос!. получится - обязательно поделюсь кодом)


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

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