I am trying to convert some data to json format using Movable Types template tags and so far I have below code. This code is coming up with blank results. I am not very knowledgeable with this template code so any help would be appreciated.
<mt:SetVar name="entries" function="undef">
<mt:Tags>
<$mt:TagName trim_to="1" upper_case="1" setvar="current_index"$>
<mt:SetVar name="e" function="undef">
<mt:SetHashVar name="e">
<mt:if name="current_index" ne="$last_index"><mt:getvar name="current_index"></mt:if>
<mt:TagName setvar="name">
<mt:setvarblock name="url">https://www.foo.com/tags/<$mt:TagName encode_url="1"$></mt:setvarblock>
</mt:SetHashVar>
<$mt:var name="current_index" setvar="last_index"$>
<mt:SetVar name="entries" key="$last_index" value="$e">
</mt:Tags>
<mt:Var name="entries" to_json="1">
Here is what I am expecting
{
"A": [
{
"name": "Abrand",
"url": "#"
},
{
"name": "Abrand",
"url": "#"
},
{
"name": "Abrand",
"url": "#"
}
],
"B": [
{
"name": "Bbrand",
"url": "#"
},
{
"name": "Bbrand",
"url": "#"
}
],
"C": [
{
"name": "Cbrand",
"url": "#"
{
"name": "Cbrand",
"url": "#"
},
{
"name": "Cbrand",
"url": "#"
}
]
}
Try this:
<mt:Tags sort_by="name" sort_order="ascend" limit="1">
<$mt:TagName trim_to="1" upper_case="1" setvar="current_index"$>
<$mt:SetVar name="last_index" value="$current_index"$>
</mt:Tags>
<mt:Tags sort_by="name" sort_order="ascend">
<$mt:TagName trim_to="1" upper_case="1" setvar="current_index"$>
<mt:SetHashVar name="e">
<mt:TagName setvar="name">
<mt:SetVarBlock name="url">https://www.foo.com/tags/<$mt:TagName encode_url="1"$></mt:SetVarBlock>
</mt:SetHashVar>
<mt:if name="current_index" eq="$last_index">
<$mt:SetVar name="hold" function="push" value="$e"$>
<mt:else>
<$mt:Var name="entries{$last_index}" value="$hold"$>
<$mt:SetVar name="last_index" value="$current_index"$>
<$mt:SetVar name="hold" value=""$>
<$mt:SetVar name="hold" function="push" value="$e"$>
</mt:if>
</mt:Tags>
<mt:Var name="entries" to_json="1">
(I tested it on MT 6.2.2, but should work on 5.x)