通过向templavoila添加typoscript缩小图像与timthumb(数据处理)

时间:2012-02-21 12:53:55

标签: mobile typo3 image-scaling typoscript

我希望有两种不同的图像尺寸:一种用于普通浏览器,另一种用于移动版本。我以为我可以用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 个答案:

答案 0 :(得分:1)

TYPO3能够开箱即用。您不需要额外的脚本。

将它放在主模板中,其中第10页&lt; plugin.tx_templavoila定义为:     page.1 = LOAD_REGISTER     page.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.IMAGEIMAGE

答案 1 :(得分:0)

Dmitry Dulopev的以下文章虽然已有几年历史,但现在谈论如何使用Templa Voilla添加移动模板。这就是你追求的目标吗?

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

答案 2 :(得分: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数据处理中,您可以这样做:

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那些东西更容易包围你。

免责声明:尚未测试以上内容,因此请注意拼写错误或类似的事情。 (我当然在项目中使用了这个方法。)