0

我想要两种不同的图像尺寸:一种用于普通浏览器,一种用于移动版本。我想我可以使用 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]

但我总是从普通版本中得到图片。我尝试使用会话变量,也尝试使用用户函数。即使我删除了这个条件,输出总是一样的......(大图)。我做错了什么?

4

3 回答 3

1

TYPO3 能够开箱即用地调整图像大小。您不需要额外的脚本。

把它放在你的主模板中,其中 page.10 < 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

于 2012-03-02T09:52:01.863 回答
0

这些条件([global]等)在 TV 数据结构中还不起作用。

但是您也许可以使用将“注入”到数据结构中的常量结合stdWrap条件来解决这个问题。

您可以像这样在常规 TypoScript 设置中设置 TV 常量:

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]

现在,在您的 TV 领域的 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?为什么不是另一个IMAGEcObject?
  • 然后,看看IMG_RESOURCE。它允许您仅使用图像 URL 而不是整个元素标记。以后可能比用RECORDS你那里的东西更容易把你的头包起来。

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

于 2012-03-01T15:26:28.067 回答
0

下面的 Dmitry Dulopev 几岁的帖子现在谈到了如何使用 Templa Voilla 添加移动模板。这就是你所追求的吗?

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

于 2012-02-22T11:24:09.390 回答