Re: Macro using full variable path and value

Brandon Long <[email protected]> Wed, 8 Sep 2010 01:26:06 -0700
Newsgroups gmane.text.clearsilver.general
Message-ID <[email protected]>
--001636c5b0ffd04c43048fbb43bc
Content-Type: text/plain; charset=ISO-8859-1

There isn't currently a function for the full path.

If you could write your own strfunc, it would be easy to add, but if you're
in Java, that's not easy.  If all the vars were under something, it would be
fairly easy, you could do:

<?cs def:form.input(path) ?>
  <input type="text" name="<?cs var:path ?>" value="<?cs var:Query[value]
?>">
<?cs /def ?>

<?cs call:form.input("path.to.variable") ?>

For example...

Brandon

On Sat, Sep 4, 2010 at 8:37 PM, nevereatbabies <[email protected]>wrote:

>
>
>
> I'm trying to create a shortcut macro create form input boxes with values.
> I tried something like this:
>
> <?cs def:form.input(path) ?>
>   <input type="text" name="<?cs name:path ?>" value="<?cs var:path ?>">
> <?cs /def ?>
>
> <?cs call:form.input(path.to.variable) ?>
>
>
> ... but, of course, "name:path" puts in "variable" instead of
> "path.to.variable", which I need so that my program reads and writes similar
> paths.  (That is, my program expects to read form input from
> Query.path.to.variable and write back out to path.to.variable.)
>
> I tried a variety of set/evar/lvars to no avail.  I got excited when I saw
> the bracket operator, but I couldn't get that to work either.  I currently
> have this:
>
> <?cs def:form.input(path, value) ?>
>   <input type="text" name="<?cs var:path ?>" value="<?cs var:value ?>">
> <?cs /def ?>
>
> <?cs call:form.input("path.to.variable", path.to.variable) ?>
>
>
> ... but that's a lot of extra typing.
>
> Some background: I'm converting JSPs that use Spring form tags like this:
>
> <form:input path="path.to.variable">
>
>
> ... into ClearSilver templates.  The closer I can make my macro behave like
> the Spring form tags, the better, and I'd rather not have to manually
> cut/paste or retype the variable names because I could easily make a mistake
> and not notice until someone sees that a particular input box entries aren't
> sticking.  (Plus, it's a lot more boring work.)
>
> Any ideas on how I could fix this?
>
>
> 

--001636c5b0ffd04c43048fbb43bc
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable




<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/htm=
l4/strict.dtd">
<html>
<head>
</head>







<body style=3D"background-color: #fff;">
<span style=3D"display:none">&nbsp;</span>

<!--~-|**|PrettyHtmlStartT|**|-~-->
<div id=3D"ygrp-mlmsg" style=3D"position:relative;">
  <div id=3D"ygrp-msg" style=3D"z-index: 1;">
<!--~-|**|PrettyHtmlEndT|**|-~-->

    <div id=3D"ygrp-text" >
=20=20=20=20=20=20
=20=20=20=20=20=20
      <p>There isn&#39;t currently a function for the full path.<div><br></=
div><div>If you could write your own strfunc, it would be easy to add, but =
if you&#39;re in Java, that&#39;s not easy. =A0If all the vars were under s=
omething, it would be fairly easy, you could do:</div>
<div><br></div><div><font size=3D"1" face=3D"courier new">&lt;?cs def:form.=
input(path) ?&gt;</font><font size=3D"1"><br></font><font size=3D"1" face=
=3D"courier new">=A0 &lt;input type=3D&quot;text&quot; name=3D&quot;&lt;?cs=
 var:path ?&gt;&quot; value=3D&quot;&lt;?cs var:Query[value] ?&gt;&quot;&gt=
;</font><font size=3D"1"><br>
</font><font size=3D"1" face=3D"courier new">&lt;?cs /def ?&gt;</font><font=
 size=3D"1"><br><br></font><font size=3D"1" face=3D"courier new">&lt;?cs ca=
ll:form.input(&quot;path.to.variable&quot;) ?&gt;</font></div><div><font si=
ze=3D"1" face=3D"courier new"><br>
</font></div><div><font size=3D"1" face=3D"courier new">For example...</fon=
t></div><div><br></div><div>Brandon<br><br><div class=3D"gmail_quote">On Sa=
t, Sep 4, 2010 at 8:37 PM, nevereatbabies <span dir=3D"ltr">&lt;<a href=3D"=
http://yahoo.com">yahoo.com</a>@<a href=3D"http://ryan.xar.us">ryan.xar.us<=
/a>&gt;</span> wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"border-left:1px #ccc solid;">






=20=20=20=20=20=20=20=20




<div>





<br><br>




<br>I&#39;m trying to create a shortcut macro create form input boxes with =
values.=A0 I tried something like this:<br><br><blockquote><font size=3D"1"=
 face=3D"courier new">&lt;?cs def:form.input(path) ?&gt;</font><font size=
=3D"1"><br>
</font><font size=3D"1" face=3D"courier new">=A0 &lt;input type=3D&quot;tex=
t&quot; name=3D&quot;&lt;?cs name:path ?&gt;&quot; value=3D&quot;&lt;?cs va=
r:path ?&gt;&quot;&gt;</font><font size=3D"1"><br></font><font size=3D"1" f=
ace=3D"courier new">&lt;?cs /def ?&gt;</font><font size=3D"1"><br>
<br></font><font size=3D"1" face=3D"courier new">&lt;?cs call:form.input(pa=
th.to.variable) ?&gt;</font><br></blockquote><br>... but, of course, &quot;=
name:path&quot; puts in &quot;variable&quot; instead of &quot;path.to.varia=
ble&quot;, which I need so that my program reads and writes similar paths.=
=A0 (That is, my program expects to read form input from Query.path.to.vari=
able and write back out to path.to.variable.)<br>
<br>I tried a variety of set/evar/lvars to no avail.=A0 I got excited when =
I saw the bracket operator, but I couldn&#39;t get=20
 that to work either.=A0 I currently have this:<br><br><blockquote><font si=
ze=3D"1" face=3D"courier new">&lt;?cs def:form.input(path, value) ?&gt;</fo=
nt><font size=3D"1"><br></font><font size=3D"1" face=3D"courier new">=A0 &l=
t;input type=3D&quot;text&quot; name=3D&quot;&lt;?cs var:path ?&gt;&quot; v=
alue=3D&quot;&lt;?cs var:value ?&gt;&quot;&gt;</font><font size=3D"1"><br>
</font><font size=3D"1" face=3D"courier new">&lt;?cs /def ?&gt;</font><font=
 size=3D"1"><br><br></font><font size=3D"1" face=3D"courier new">&lt;?cs ca=
ll:form.input(&quot;path.to.variable&quot;, path.to.variable) ?&gt;</font><=
br></blockquote>
<br>... but that&#39;s a lot of extra typing.=A0 <br><br>Some background: I=
&#39;m converting JSPs that use Spring form tags like this:<br><br><blockqu=
ote><font size=3D"1" face=3D"courier new">&lt;form:input path=3D&quot;path.=
to.variable&quot;&gt;</font><br>
</blockquote><br>... into ClearSilver templates.=A0 The closer I can make m=
y macro behave like the Spring form tags, the better, and I&#39;d rather no=
t have to manually cut/paste or retype the variable=20
 names because I could easily make a mistake and not notice until someone s=
ees that a particular input box entries aren&#39;t sticking.=A0 (Plus, it&#=
39;s a lot more boring work.)<br><br>Any ideas on how I could fix this?<br>







<br>

=20=20=20=20
=20=20=20=20
<br>




<div width=3D"1" style=3D"color:white;"></div>



</div></blockquote></div><br></div>
</p>

    </div>
=20=20=20=20=20

    <!--~-|**|PrettyHtmlStart|**|-~-->
    <div style=3D"color: #fff; height: 0;">__._,_.___</div>

=20=20=20=20=20=20=20=20
=20=20
=20=20=20
    <div id=3D"ygrp-actbar" style=3D"clear: both; margin-bottom: 10px; whit=
e-space: nowrap; color: #666; padding-top: 15px;">
      <div>
        <a href=3D"mailto:[email protected]?subject=3DRe: Macro using full =
variable path and value" style=3D"margin-right: 0; padding-right: 0;">
	  Reply to <span style=3D"font-weight: 700;">sender</span></a> |
        <a href=3D"mailto:[email protected]?subject=3DRe: Macro u=
sing full variable path and value">
	  Reply to <span style=3D"font-weight: 700;">group</span></a> |
        	  <a href=3D"http://groups.yahoo.com/group/ClearSilver/post;_ylc=
=3DX3oDMTJwbTVrYjZpBF9TAzk3MzU5NzE0BGdycElkAzM1NjQxMzcEZ3Jwc3BJZAMxNzA3Mjgx=
OTQyBG1zZ0lkAzEzOTQEc2VjA2Z0cgRzbGsDcnBseQRzdGltZQMxMjgzOTM0Mzcw?act=3Drepl=
y&messageNum=3D1394">Reply <span style=3D"font-weight: 700;">via web post</=
span></a> |
            	<a href=3D"http://groups.yahoo.com/group/ClearSilver/post;_ylc=
=3DX3oDMTJlbTljdDRpBF9TAzk3MzU5NzE0BGdycElkAzM1NjQxMzcEZ3Jwc3BJZAMxNzA3Mjgx=
OTQyBHNlYwNmdHIEc2xrA250cGMEc3RpbWUDMTI4MzkzNDM3MA--" style=3D"font-weight:=
 700;">Start a New Topic</a>
      </div>

                <a href=3D"http://groups.yahoo.com/group/ClearSilver/messag=
e/1392;_ylc=3DX3oDMTM0dDUyam03BF9TAzk3MzU5NzE0BGdycElkAzM1NjQxMzcEZ3Jwc3BJZ=
AMxNzA3MjgxOTQyBG1zZ0lkAzEzOTQEc2VjA2Z0cgRzbGsDdnRwYwRzdGltZQMxMjgzOTM0Mzcw=
BHRwY0lkAzEzOTI-">Messages in this topic</a>
          (<span style=3D"font-weight: 700;">2</span>)
          </div>=20
<!------- Start Nav Bar ------>

<!-- |**|begin egp html banner|**| -->
<div id=3D"ygrp-vital" style=3D"background-color: #e0ecee; font-family: Ver=
dana; font-size: 10px; margin-bottom: 10px; padding: 10px;">
      <span id=3D"vithd" style=3D"font-weight: bold; color: #333; text-tran=
sform: uppercase; ">Recent Activity:</span>

    <ul style=3D"list-style-type: none; margin: 0; padding: 0; display: inl=
ine;">
            <li style=3D"border-right: 1px solid #000; font-weight: 700; di=
splay: inline; padding: 0 5px; margin-left: 0;">
      <span class=3D"cat"><a href=3D"http://groups.yahoo.com/group/ClearSil=
ver/members;_ylc=3DX3oDMTJmZnExMnU4BF9TAzk3MzU5NzE0BGdycElkAzM1NjQxMzcEZ3Jw=
c3BJZAMxNzA3MjgxOTQyBHNlYwN2dGwEc2xrA3ZtYnJzBHN0aW1lAzEyODM5MzQzNzA-?o=3D6"=
 style=3D"text-decoration: none;">New Members</a></span>
      <span class=3D"ct" style=3D"color: #ff7900;">1</span>
    </li>
                                              </ul>
=20=20=20=20
  <div style=3D"clear: both; padding-top: 2px; color: #1e66ae;">
    <a href=3D"http://groups.yahoo.com/group/ClearSilver;_ylc=3DX3oDMTJlb3V=
kdTIzBF9TAzk3MzU5NzE0BGdycElkAzM1NjQxMzcEZ3Jwc3BJZAMxNzA3MjgxOTQyBHNlYwN2dG=
wEc2xrA3ZnaHAEc3RpbWUDMTI4MzkzNDM3MA--" style=3D"text-decoration: none;">Vi=
sit Your Group</a>
  </div>
</div>

=20=20
<div id=3D"ft" style=3D"font-family: Arial; font-size: 11px; margin-top: 5p=
x; padding: 0 2px 0 0; clear: both;">
  <a href=3D"http://groups.yahoo.com/;_ylc=3DX3oDMTJkNGlmbm5mBF9TAzk3NDc2NT=
kwBGdycElkAzM1NjQxMzcEZ3Jwc3BJZAMxNzA3MjgxOTQyBHNlYwNmdHIEc2xrA2dmcARzdGltZ=
QMxMjgzOTM0Mzcw" style=3D"float: left;"><img src=3D"http://l.yimg.com/a/i/u=
s/yg/logo/us.gif" height=3D"15" width=3D"137" alt=3D"Yahoo! Groups" style=
=3D"border: 0;"/></a>
  <div style=3D"color: #747575; float: right;">Switch to: <a href=3D"mailto=
:[email protected]?subject=3DChange Delivery Format: =
Traditional" style=3D"text-decoration: none;">Text-Only</a>, <a href=3D"mai=
lto:[email protected]?subject=3DEmail Delivery: Digest" cl=
ass=3D"margin-rt" style=3D"text-decoration: none;">Daily Digest</a> &bull; =
<a href=3D"mailto:[email protected]?subject=3DUnsubsc=
ribe" style=3D"text-decoration: none;">Unsubscribe</a> &bull; <a href=3D"ht=
tp://docs.yahoo.com/info/terms/" style=3D"text-decoration: none;">Terms of =
Use</a></div>
</div>

<!-- |**|end egp html banner|**| -->

  </div> <!-- ygrp-msg -->

  <!-- Sponsor -->
  <!-- |**|begin egp html banner|**| -->
  <div id=3D"ygrp-sponsor" style=3D"width:160px; float:right; clear:none; m=
argin:0 0 25px 0; background: #fff;">

<!-- Start Recommendations -->
<div id=3D"ygrp-reco">
     </div>
<!-- End Recommendations -->



  </div>   <!-- |**|end egp html banner|**| -->

  <div style=3D"clear:both; color: #FFF; font-size:1px;">.</div>
</div>

  <img src=3D"http://geo.yahoo.com/serv?s=3D97359714/grpId=3D3564137/grpspI=
d=3D1707281942/msgId=3D1394/stime=3D1283934370/nc1=3D1/nc2=3D2/nc3=3D3" wid=
th=3D"1" height=3D"1"> <br>

<div style=3D"color: #fff; height: 0;">__,_._,___</div>
<!--~-|**|PrettyHtmlEnd|**|-~-->

</body>

<!--~-|**|PrettyHtmlStart|**|-~-->
<head>
  <style type=3D"text/css">
  <!--
  #ygrp-mkp {
  border: 1px solid #d8d8d8;
  font-family: Arial;
  margin: 10px 0;
  padding: 0 10px;
}

#ygrp-mkp hr {
  border: 1px solid #d8d8d8;
}

#ygrp-mkp #hd {
  color: #628c2a;
  font-size: 85%;
  font-weight: 700;
  line-height: 122%;
  margin: 10px 0;
}

#ygrp-mkp #ads {
  margin-bottom: 10px;
}

#ygrp-mkp .ad {
  padding: 0 0;
}

#ygrp-mkp .ad p {
  margin: 0;
}

#ygrp-mkp .ad a {
  color: #0000ff;
  text-decoration: none;
}
  #ygrp-sponsor #ygrp-lc {
  font-family: Arial;
}

#ygrp-sponsor #ygrp-lc #hd {
  margin: 10px 0px;
  font-weight: 700;
  font-size: 78%;
  line-height: 122%;
}

#ygrp-sponsor #ygrp-lc .ad {
  margin-bottom: 10px;
  padding: 0 0;
}

  a {
    color: #1e66ae;
  }

  #actions {
    font-family: Verdana;
    font-size: 11px;
    padding: 10px 0;
  }

  #activity {
    background-color: #e0ecee;
    float: left;
    font-family: Verdana;
    font-size: 10px;
    padding: 10px;
  }

  #activity span {
    font-weight: 700;
  }

  #activity span:first-child {
    text-transform: uppercase;
  }

  #activity span a {
    color: #5085b6;
    text-decoration: none;
  }

  #activity span span {
    color: #ff7900;
  }

  #activity span .underline {
    text-decoration: underline;
  }

  .attach {
    clear: both;
    display: table;
    font-family: Arial;
    font-size: 12px;
    padding: 10px 0;
    width: 400px;
  }

  .attach div a {
    text-decoration: none;
  }

  .attach img {
    border: none;
    padding-right: 5px;
  }

  .attach label {
    display: block;
    margin-bottom: 5px;
  }

  .attach label a {
    text-decoration: none;
  }
=20=20
  blockquote {
    margin: 0 0 0 4px;
  }

  .bold {
    font-family: Arial;
    font-size: 13px;
    font-weight: 700;
  }

  .bold a {
    text-decoration: none;
  }

  dd.last p a {
    font-family: Verdana;
    font-weight: 700;
  }

  dd.last p span {
    margin-right: 10px;
    font-family: Verdana;
    font-weight: 700;
  }

  dd.last p span.yshortcuts {
    margin-right: 0;
  }

  div.attach-table div div a {
    text-decoration: none;
  }

  div.attach-table {
    width: 400px;
  }

  div.file-title a, div.file-title a:active, div.file-title a:hover, div.fi=
le-title a:visited {
    text-decoration: none;
  }

  div.photo-title a, div.photo-title a:active, div.photo-title a:hover, div=
.photo-title a:visited {
    text-decoration: none;
  }

  div#ygrp-mlmsg #ygrp-msg p a span.yshortcuts {
    font-family: Verdana;
    font-size: 10px;
    font-weight: normal;
  }

  .green {
    color: #628c2a;
  }

  .MsoNormal {
    margin: 0 0 0 0;
  }

  o {
    font-size: 0;
  }

  #photos div {
    float: left;
    width: 72px;
  }

  #photos div div {
    border: 1px solid #666666;
    height: 62px;
    overflow: hidden;
    width: 62px;
  }

  #photos div label {
    color: #666666;
    font-size: 10px;
    overflow: hidden;
    text-align: center;
    white-space: nowrap;
    width: 64px;
  }

  #reco-category {
    font-size: 77%;
  }

  #reco-desc {
    font-size: 77%;
  }

  .replbq {
    margin: 4px;
  }

  #ygrp-actbar div a:first-child {
   /* border-right: 0px solid #000;*/
    margin-right: 2px;
    padding-right: 5px;
  }

  #ygrp-mlmsg {
    font-size: 13px;
    font-family: Arial, helvetica,clean, sans-serif;
    *font-size: small;
    *font: x-small;
  }

  #ygrp-mlmsg table {
    font-size: inherit;
    font: 100%;
  }

  #ygrp-mlmsg select, input, textarea {
    font: 99% Arial, Helvetica, clean, sans-serif;
  }

  #ygrp-mlmsg pre, code {
    font:115% monospace;
    *font-size:100%;
  }

  #ygrp-mlmsg * {
    line-height: 1.22em;
  }

  #ygrp-mlmsg #logo {
    padding-bottom: 10px;
  }

  #ygrp-mlmsg a {
    color: #1E66AE;
  }

  #ygrp-msg p a {
    font-family: Verdana;
  }

  #ygrp-msg p#attach-count span {
    color: #1E66AE;
    font-weight: 700;
  }

  #ygrp-reco #reco-head {
    color: #ff7900;
    font-weight: 700;
  }

  #ygrp-reco {
    margin-bottom: 20px;
    padding: 0px;
  }

  #ygrp-sponsor #ov li a {
    font-size: 130%;
    text-decoration: none;
  }

  #ygrp-sponsor #ov li {
    font-size: 77%;
    list-style-type: square;
    padding: 6px 0;
  }=20

  #ygrp-sponsor #ov ul {
    margin: 0;
    padding: 0 0 0 8px;
  }

  #ygrp-text {
    font-family: Georgia;
  }

  #ygrp-text p {
    margin: 0 0 1em 0;
  }

  #ygrp-text tt {
    font-size: 120%;
  }

  #ygrp-vital ul li:last-child {
    border-right: none !important;=20
  }=20
  -->
  </style>
</head>

<!--~-|**|PrettyHtmlEnd|**|-~-->
</html>
<!-- end group email -->


--001636c5b0ffd04c43048fbb43bc--