2012-02-21 2 views
0

Я хочу иметь два разных размера изображения: один для обычного браузера и один для мобильной версии. Я думал, что могу использовать timthumb для изменения размера изображения.масштабировать изображения с помощью timthumb через добавление typoscript к templavoila (обработка данных)

Поэтому я сопоставил в Templavoila a Image field, fixed W+H с номером <img src="xx" />. Под Data processing Я хочу ввести код Typoscript. С помощью этого кода я хочу иметь другое представление (масштабированное изображение).

10 = IMAGE 
10.file.XY = 1328,768 
10.file.import = uploads/tx_templavoila/ 
10.file.import.current = 1 
10.file.import.listNum = 0 
10.file.maxW = 2000 
10.file.minW = 1000 
10.file.maxH = 1000 
10.file.minH = 700 

[globalVar = TSFE:fe_user|sesData|mobileversion=1] 
20 = RECORDS 
20.source.current = 1 
20.tables = tt_content 
20.stdWrap.wrap = <img src="fileadmin/templates/php_scripts/timthumb.php?src=|&w=600" /> 
20.stdWrap.required = 1* 
[global] 

Но я всегда получаю изображение из обычной версии. Я попытался использовать переменную сеанса, и я также попытался использовать функцию пользователя. Даже если я удалю это условие, вывод всегда будет одним и тем же ... (большое изображение). Что я делаю неправильно?

ответ

0

Нижеприведенный пост от Дмитрия Дулопева, в то время как пара лет назад рассказывает о том, как вы можете использовать Templa Voilla, чтобы добавить мобильный шаблон. Это то, чем вы были?

http://www.dmitry-dulepov.com/2009/04/creating-mobile-version-of-web-site.html

+0

Я уже принял это за основу для мобильного сайта. В одном из моих полей я беру фоновое изображение и сопоставляю его с мобильным шаблоном. Это изображение для обычного браузера и, следовательно, большого. Теперь я хочу дать указание Templavoila уменьшить изображения (в моем случае с timthumb). Но я не могу заставить typoscript работать. – testing

0

Те рода условиях ([global] и т.д.) еще не работают в структурах ТВ данных.

Но вы, возможно, сможете обойти это, используя константы, которые вы «вводите» в структуру данных в сочетании с условиями stdWrap.

Вы можете установить ТВ константу в обычной установке TypoScript вроде этого:

plugin.tx_templavoila_pi1.TSconst.ismobile = hellno 

Здесь вы также можете использовать условие, конечно:

plugin.tx_templavoila_pi1.TSconst.ismobile = hellno 
[globalVar = TSFE:fe_user|sesData|mobileversion=1] 
plugin.tx_templavoila_pi1.TSconst.ismobile = yo 
[global] 

Теперь, при обработке данных TypoScript из ваших TV поле, вы можете сделать это:

10 = COA 

10.10 = IMAGE 
10.10 { 
    # Your regular image 

    stdWrap.if { 
     value = {$TSconst.ismobile} 
     equals = hellno 
    } 
} 

10.20 = IMAGE 
10.20 { 
    # Image for mobile version 

    stdWrap.if { 
     value = {$TSconst.ismobile} 
     equals = yo 
    } 
} 

несколько замечаний/вопросов:

  • Я не уверен, 20 даже обрабатывается в телевизионном поле. Я думаю, что он ищет только 10.
  • Почему вы используете timthumb? Почему не другой IMAGE cObject?
  • Затем взгляните на IMG_RESOURCE. Он позволяет работать с URL-адресом изображения вместо всего тега элемента. Позже было бы легче обернуть вокруг себя что-то, чем у вас есть RECORDS.

Отказ от ответственности: Не тестировал выше, так что берегитесь опечаток или тому подобное. (Я, конечно, использовал метод в проектах.)

1

TYPO3 способен изменять размеры изображений из коробки. Вам не нужен дополнительный скрипт.

Поместите это в Main-шаблон, в котором определен page.10 < plugin.tx_templavoila: странице.1 = LOAD_REGISTER странице.1.mobileversion = 0

[globalVar = TSFE:fe_user|sesData|mobileversion=1] 
    page.1.mobileversion = 1 
[end] 

Изменить код:

10 = IMAGE 
10.file.XY = 1328,768 
10.file.width = 1000 
10.file.width.override = 500 
10.file.width.override.if.isTrue.data = REGISTER:mobileversion 
10.file.height = 1000 
10.file.height.override = 500 
10.file.height.override.if.isTrue.data = REGISTER:mobileversion 
10.file.import = uploads/tx_templavoila/ 
10.file.import.current = 1 
10.file.import.listNum = 0 
[...snip...] 

наверняка не проверялось, но он должен работать даже с TemplaVoila.

Если вы используете GIFBUILDER.IMAGE-Object (потому что вы используете 10.file.XY), вы должны изменить свой код так:

10 = IMAGE 
10.file.XY = 1328,768 
10.file.XY.override = 600,300 
10.file.XY.override.if.isTrue.data = REGISTER:mobileversion 
10.file.import = uploads/tx_templavoila/ 
10.file.import.current = 1 
10.file.import.listNum = 0 
[...snip...] 

Но я думаю, вы перепутали GIFBUILDER.IMAGE и IMAGE.

+0

Нравится! Способ более эффективный, чем мой подход. – maryisdead