{"type":"rich","version":"1.0","provider_name":"phorkie","provider_url":"https:\/\/p.cweiske.de\/","title":"typo3 fluid: dynamic video tag attributes","author_name":"Christian Weiske","cache_age":86400,"width":900,"height":900,"html":"<!-- embedding all files of https:\/\/p.cweiske.de\/365 -->\n<link rel=\"stylesheet\" href=\"https:\/\/p.cweiske.de\/css\/embed.css\"\/>\n<div class=\"phork\" id=\"365\">\n    <div class=\"phork-file\">\n <div class=\"phork-content\">\n  \n<div class=\"document\">\n\n\n<p>&lt;NamelessCoder&gt; this works somewhat by accident and will stop working on 8.0 - basically it was never intended that one could define dotted variable names and internally it only works because ObjectAccess::setProperty seems to be used to set the property in the ArrayAccess TemplateVariableContainer. This is the class on v8 and up: https:\/\/github.com\/TYPO3\/TYPO3.CMS\/blob\/master\/typo3\/sysext\/fluid\/Classes\/Core\/Variables\/CmsVariableProvider.php<\/p>\n<\/div>\n\n <\/div>\n <div class=\"phork-meta\">\n  <a href=\"https:\/\/p.cweiske.de\/365\/rev-raw\/2a159b1d4ed21ef7233bf9643a371d4e8bf52136\/note.rst\" style=\"float: right\">view raw source<\/a>\n  <a href=\"https:\/\/p.cweiske.de\/365#note.rst\">note.rst<\/a>\n <\/div>\n<\/div>\n    <div class=\"phork-file\">\n <div class=\"phork-content\">\n  <style type=\"text\/css\">\/**\n * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann\n * (http:\/\/qbnz.com\/highlighter\/ and http:\/\/geshi.org\/)\n *\/\n.xml .de1, .xml .de2 {font: normal normal 1em\/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;}\n.xml  {font-family:monospace;}\n.xml .imp {font-weight: bold; color: red;}\n.xml li, .xml .li1 {color: #DDD;}\n.xml .ln {width:1px;text-align:right;margin:0;padding:0 2px;vertical-align:top;}\n.xml .es0 {color: #000099; font-weight: bold;}\n.xml .br0 {color: #66cc66;}\n.xml .sy0 {color: #66cc66;}\n.xml .st0 {color: #ff0000;}\n.xml .sc-1 {color: #808080; font-style: italic;}\n.xml .sc0 {color: #00bbdd;}\n.xml .sc1 {color: #ddbb00;}\n.xml .sc2 {color: #339933;}\n.xml .sc3 {color: #009900;}\n.xml .re0 {color: #000066;}\n.xml .re1 {color: #000000; font-weight: bold;}\n.xml .re2 {color: #000000; font-weight: bold;}\n.xml span.xtra { display:block; }\n<\/style><div class=\"code\"><table class=\"xml\"><tbody><tr class=\"li1\"><td class=\"ln\"><pre class=\"de1\">1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n<\/pre><\/td><td class=\"de1\"><pre class=\"de1\"><span class=\"sc3\"><span class=\"re1\">&lt;v:variable.set<\/span> <span class=\"re0\">name<\/span>=<span class=\"st0\">&quot;videoAtts&quot;<\/span> <span class=\"re0\">value<\/span>=<span class=\"st0\">&quot;{<\/span><\/span>\n<span class=\"sc3\"><span class=\"st0\"> &#160;controls: &#160; 'controls',<\/span><\/span>\n<span class=\"sc3\"><span class=\"st0\"> &#160;preload: &#160; &#160;'metadata'<\/span><\/span>\n<span class=\"sc3\"><span class=\"st0\">}&quot;<\/span><span class=\"re2\">\/&gt;<\/span><\/span>\n<span class=\"sc3\"><span class=\"re1\">&lt;f:if<\/span> <span class=\"re0\">condition<\/span>=<span class=\"st0\">&quot;settings.autplay&quot;<\/span><span class=\"re2\">&gt;<\/span><\/span>\n&#160; <span class=\"sc3\"><span class=\"re1\">&lt;v:variable.set<\/span> <span class=\"re0\">name<\/span>=<span class=\"st0\">&quot;videoAtts.autoplay&quot;<\/span> <span class=\"re0\">value<\/span>=<span class=\"st0\">&quot;autoplay&quot;<\/span><span class=\"re2\">\/&gt;<\/span><\/span>\n<span class=\"sc3\"><span class=\"re1\">&lt;\/f:if<span class=\"re2\">&gt;<\/span><\/span><\/span>\n<span class=\"sc3\"><span class=\"re1\">&lt;f:if<\/span> <span class=\"re0\">condition<\/span>=<span class=\"st0\">&quot;settings.poster&quot;<\/span><span class=\"re2\">&gt;<\/span><\/span>\n&#160; {v:content.resources.fal(field: 'settings.poster') -&gt; v:iterator.first() -&gt; v:variable.set(name: 'poster')}\n&#160; <span class=\"sc3\"><span class=\"re1\">&lt;f:if<\/span> <span class=\"re0\">condition<\/span>=<span class=\"st0\">&quot;{poster}&quot;<\/span><span class=\"re2\">&gt;<\/span><\/span>\n&#160; &#160; <span class=\"sc3\"><span class=\"re1\">&lt;v:variable.set<\/span> <span class=\"re0\">name<\/span>=<span class=\"st0\">&quot;videoAtts.poster&quot;<\/span> <span class=\"re0\">value<\/span>=<span class=\"st0\">&quot;{poster.url}&quot;<\/span><span class=\"re2\">\/&gt;<\/span><\/span>\n&#160; <span class=\"sc3\"><span class=\"re1\">&lt;\/f:if<span class=\"re2\">&gt;<\/span><\/span><\/span>\n<span class=\"sc3\"><span class=\"re1\">&lt;\/f:if<span class=\"re2\">&gt;<\/span><\/span><\/span>\n&#160;\n<span class=\"sc3\"><span class=\"re1\">&lt;v:tag<\/span> <span class=\"re0\">name<\/span>=<span class=\"st0\">&quot;video&quot;<\/span><\/span>\n<span class=\"sc3\"> &#160; &#160; &#160; <span class=\"re0\">id<\/span>=<span class=\"st0\">&quot;video-{record.uid}&quot;<\/span> <span class=\"re0\">class<\/span>=<span class=\"st0\">&quot;video-js vjs-default-skin&quot;<\/span><\/span>\n<span class=\"sc3\"> &#160; &#160; &#160; <span class=\"re0\">additionalAttributes<\/span>=<span class=\"st0\">&quot;{videoAtts}&quot;<\/span><span class=\"re2\">&gt;<\/span><\/span>\n&#160; <span class=\"sc3\"><span class=\"re1\">&lt;f:render<\/span> <span class=\"re0\">section<\/span>=<span class=\"st0\">&quot;Sources&quot;<\/span> <span class=\"re2\">\/&gt;<\/span><\/span>\n<span class=\"sc3\"><span class=\"re1\">&lt;\/v:tag<span class=\"re2\">&gt;<\/span><\/span><\/span>\n&#160;<\/pre><\/td><\/tr><\/tbody><\/table><\/div>\n <\/div>\n <div class=\"phork-meta\">\n  <a href=\"https:\/\/p.cweiske.de\/365\/rev-raw\/2a159b1d4ed21ef7233bf9643a371d4e8bf52136\/phork0.xml\" style=\"float: right\">view raw source<\/a>\n  <a href=\"https:\/\/p.cweiske.de\/365#phork0.xml\">phork0.xml<\/a>\n <\/div>\n<\/div>\n<\/div>\n"}
