Уменьшать изображения с помощью Timthumb путем добавления опечатки в templavoila (обработка данных)
Я хочу иметь два разных размера изображения: один для обычного браузера и один для мобильной версии. Я думал, что смогу использовать timthumb, чтобы изменить размер изображения.
Поэтому я нанес на карту в Templavoila 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]
Но я всегда получаю картинку с нормальной версии. Я пытался использовать переменную сеанса, и я также пытался использовать пользовательскую функцию. Даже если я уберу это условие, результат всегда будет одинаковым... (общая картина). Что я делаю не так?
3 ответа
TYPO3 может изменять размеры ваших изображений из коробки. Вам не нужен дополнительный скрипт.
Поместите это в свой Main-Template, где определено page.10 Измените свой код: Конечно, не проверено, но оно должно работать даже с TemplaVoila. Если вы используете GIFBUILDER.IMAGE-Object (потому что вы используете Но я думаю, вы перепутали GIFBUILDER.IMAGE и IMAGE.[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...]
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...]
Такие условия ([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 вашего телевизионного поля вы можете сделать это:
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
объект контента? - Затем взгляните на
IMG_RESOURCE
, Это позволяет вам работать только с URL-адресом изображения вместо целого тега элемента. Позже может быть легче обернуть это вокруг, чем сRECORDS
вещи у вас там.
Отказ от ответственности: не проверял выше, так что остерегайтесь опечаток или подобных вещей. (Я, конечно, использовал метод в проектах.)
В приведенном ниже сообщении от Дмитрия Дулопьева, в то время как пару лет назад рассказывается о том, как вы можете использовать Templa Voilla для добавления мобильного шаблона. Это то, что вы были после?
http://www.dmitry-dulepov.com/2009/04/creating-mobile-version-of-web-site.html