【问题标题】:Make GIFBUILDER Image and return the filepath制作 GIFBUILDER 图像并返回文件路径
【发布时间】:2018-01-17 12:54:21
【问题描述】:

我将 SVG 用于 TYPO3 网站上的页面图标。页面图标作为资源媒体存储在页面属性中。通常我也将它们用于开放图形和 Twitter 图像。但是 Open Graph 不支持 SVG。

现在我想使用 GIFBUILDER 将 SVG 转换为 PNG 并返回转换后的 GIFBUILDER-Image 的文件路径。我找不到任何提示,所以我请你帮忙。

Bsp:

headerData {
    60 = FILES
    60 {
        #gets image form media tab of page
        references {
           table = pages
           uid.data = page:uid
           fieldName = media
        }
**# This returns the path of the ressource media**
        renderObj = TEXT
        renderObj {
           typolink {
              parameter.data = file:current:publicUrl
              forceAbsoluteUrl = 1
              returnLast = url
           }
           wrap = |,
        }
        **# But I have SVGs so I have to convert them. Therefor empty         renderObj**
        renderObj >

    renderObj = GIFBUILDER
    renderObj {
       XY = 200,200
       format = png
       quality = 100
       10 = IMAGE
       10.file = file:current:publicUrl
    }
    stdWrap {
       listNum = 0
       # Use logo image if none is available
       ifEmpty.cObject = TEXT
       ifEmpty.cObject.typolink {
          parameter = {$defaultsocialimg}
          forceAbsoluteUrl = 1
          returnLast = url
       }
       wrap = <meta property="og:image" content="|">
    }
     }
}

有人有想法吗? 谢谢 马丁

修订版 1:

我改变了我的 TYPOSCRIPT 并结合了下面的答案(谢谢你们两个)并做了这个:

ogimage = IMG_RESOURCE
ogimage {
    10 = FILES
    10 {
        references {
           table = pages
           uid.data = page:uid
           fieldName = media
        }
        begin = 0
        maxItems = 1

        renderObj = TEXT
        renderObj {
           typolink {
              parameter.data = file:current:publicUrl
              forceAbsoluteUrl = 1
              returnLast = url
           }
        }
    }
    file = GIFBUILDER
    file {
        XY = 200,200
        format = png
        10 = IMAGE
        10.file.data = file:current:publicUrl
        10.file.forceAbsoluteUrl = 1
    }
    wrap = |
}

现在我真的得到了图像的路径。但是 1. 图像是空的/白色的,2. 尽管“forceAbsoluteUrl =”,但路径不是绝对的。 2.问题不大。但是第一个......我还尝试了一个 jpg-image 以防 GIFBUILDER 可能对 svg 有问题。

也许 file:current:publichUrl 在该位置不再有效(file.10.file)。我尝试了 LOAD_REGISTER,但无法真正想象该放置在哪里。

修订版 2:

好的,快完成了:新的 TS:

lib.ogimage = FILES
lib.ogimage {
    references {
        table = pages
        data = levelmedia: -1, slide
        fieldName = media
    }
    begin = 0
    maxItems = 1

    renderObj = COA
    renderObj {

        5 = LOAD_REGISTER
        5.imagepath.data = file:current:publicUrl

        #TEST if the path is correct
        10 = TEXT
        10.value.data = REGISTER:imagepath

        #20 = IMG_RESOURCE later for path-output
        20 = IMAGE
        20 {
            file = GIFBUILDER
            file {
                XY = 200,200
                format = png
                10 = IMAGE
                10.file.import.data = REGISTER:imagepath
            }
        }
    }
}

如果资源媒体是 svg,这会给我正确的图像。如果我的资源媒体是 SVG,我会收到此错误:

1476107295:PHP 警告:imagecreatetruecolor():/usr/www/users/abppjo/typo3/typo3_src-8.7.9/typo3/sysext/core/Classes/Imaging/GraphicalFunctions.php 第 2867 行中的图像尺寸无效(更多信息)

:´-(

【问题讨论】:

    标签: svg typo3 filepath typoscript


    【解决方案1】:

    GIFBUILDER 是在IMAGEIMG_RESOURCE ContentElement 下使用:

    lib.test = IMAGE
    lib.test.file = GIFBUILDER
    
    lib.testUrl = IMG_RESOURCE
    lib.testUrl.file = GIFBUILDER
    

    如果你想获得GIFBUILDER图像的路径,你必须使用IMG_RESOURCE

    【讨论】:

    • 谢谢勒内。真的,你说的。请看上面。也许wie可以破解坚果。
    • 尝试使用 renderObj = COA 并在 LOAD_REGISTER 中注册 file:current:publicUrl 并在您的 Gifbuilder 中使用此变量
    • 嗨勒内。很好,路径现在到达 GIFBUILDER 中的文件属性。尽管如此,问题还是出现了(见上文)。
    【解决方案2】:

    试试下面的排版。

    lib.image = IMAGE
    lib.image {
        10 = FILES
        10 {
            references {
               table = pages
               uid.data = page:uid
               fieldName = media
            }
            renderObj = TEXT
            renderObj {
               typolink {
                  parameter.data = file:current:publicUrl
                  forceAbsoluteUrl = 1
                  returnLast = url
               }
            }
        }
        file = GIFBUILDER
        file {
            XY = 200,200
            format = png
            10 = IMAGE
            10.file.data = file:current:publicUrl
            10.file.forceAbsoluteUrl = 1
        }
        wrap = |
    }
    

    【讨论】:

    • 您好 TYPO3 开发者,感谢您的帮助。我和 René 的 hin 一起检查了你的 TS。小问题仍然存在。谢谢你看:-)
    猜你喜欢
    • 2020-06-22
    • 1970-01-01
    • 2016-10-27
    • 1970-01-01
    • 1970-01-01
    • 2020-06-25
    • 1970-01-01
    • 1970-01-01
    • 2018-12-19
    相关资源
    最近更新 更多