This question about Not sure...: Answered
How to implement 'optional' parameters for preference settings?
I'm trying to use something like the following
* Set cite = <cite%IF{"$id=''" then="" else=' id="%id%"'}%%IF{"$conref=''" then="" else=' conref="%conref%"'}%%IF{"$conrefend=''" then="" else=' conrefend="%conrefend%"'}%%IF{"$conaction=''" then="" else=' conaction="%conaction%"'}%%IF{"$conkeyref=''" then="" else=' conkeyref="%conkeyref%"'}%>
* Set zcite = </cite>
to be able to type something like this:
%cite{id="17" conref="23"}%Citation text 17%zcite%
%cite{id="23" conaction="mark"}%Citation text 23%zcite%
to get
<cite id="17" conref="23">Citation text 17</cite>
<cite id="23" conaction="mark">Citation text 23</cite>
but I get
<cite id="17" conref="23" conrefend="%conrefend%" conaction="%conaction%" conkeyref="%conkeyref%">Citation text 17</cite>
<cite id="23" conref="%conref%" conrefend="%conrefend%" conaction="mark" conkeyref="%conkeyref%">Citation text 23</cite>
Is there any possibility to implement such optional parameters via clever preference settings?
--
FranzJosefGigler - 13 Mar 2013
Here's what I would have expected to work - somehow -
* Set element = <element%IF{"defined attributeone" then=' attribute1="%attributeone%"' else=""'}%%IF{"defined attributetwo" then=' attribute2="%attributetwo%"' else=""}%%IF{"defined attributethree" then=' attribute3="%attributethree%"' else=""'}%>
* Set zelement = </element>
but it doesn't.
%element{attributeone="value1" attributetwo="value2"}%
should return
<element attribute1="value1" attribute2="value2">
but I get
<element>
Do I really have to use URLPARAM constructs in some combination with INCLUDE to get this correct?
--
FranzJosefGigler - 14 Mar 2013
Now I've get a working version, I think, allthough it's somewhat ugly.
* Set xmlelement = <xmlelement%IF{"defined xmlattribute1" then=' attribute1="%xmlattribute1%"' else=""}%%IF{"defined xmlattribute2" then=' attribute2="%xmlattribute2%"' else=""}%%IF{"defined xmlattribute3" then=' attribute3="%xmlattribute3%"' else=""}%>
* Set zxmlelement = </xmlelement>
%STARTSECTION{"xmlelement"}%%xmlelement{xmlattribute1="%xmlattribute1%" xmlattribute2="%xmlattribute2%" xmlattribute3="%xmlattribute3%"}%%ENDSECTION{"xmlelement"}%
Using
%INCLUDE{"%TOPIC%" section="xmlelement" xmlattribute2="value2" xmlattribute1="value3"}%Some element content.%zxmlelement%
gives the desired
<xmlelement attribute1="value3" attribute2="value2">Some element content.</xmlelement>
But there must be an easier and cleaner way.
--
FranzJosefGigler - 14 Mar 2013