[ic] delimiter for tag parameters
Ron Phipps
rphipps at reliant-solutions.com
Thu Oct 27 13:22:17 EDT 2005
> From: Kevin Walsh
> Sent: Thursday, October 27, 2005 12:22 AM
>
> Ron Phipps [rphipps at reliant-solutions.com] wrote:
> > Sorry to have so much issue with understanding this. I'm still
confused
> > how the two differ.
> >
> > We've determined that the following will result in incorrect syntax
when
> > the title contains quotes:
> >
> > [mytag title="[item-field title]"]
> >
> > Why does the following not result in incorrect syntax:
> >
> > [tmpn title][item-field title][/tmpn]
> > [mytag title="[scratch title]"]
> >
> > Does Interchange handle [item-field title] and [scratch title]
> > differently?
> >
> > Perhaps [item-field title] is simply replaced with its value and
> > [scratch title] actually passes it's value differently?
> >
> Yes - that's right. The [item-field title] is just a marker
> that's replaced by the looping tag with a regex. [scratch title]
> is a "proper" tag that's interpolated. The replacement could lead
> to syntax errors in the subsequent interpolation run, as you fount.
>
> Using the value 'Kevin says "hello"', I'll try to show you what
> each of the two examples does:
>
> Example #1: Using [item-field] as a parameter:
>
> [mytag title="[item-field title]"]
>
> The above gets parsed to this, during the marker replacement run:
>
> [mytag title="Kevin says "hello""]
>
> The interpolator will find a syntax error in there.
>
> Example #2: Using the [tmpn] workaround:
>
> [tmpn title][item-field title][/tmpn]
> [mytag title="[scratch title]"]
>
> The above gets parsed to this, during the marker replacement run:
>
> [tmpn title]Kevin says "hello"[/tmpn]
> [mytag title="[scratch title]"]
>
> The first line now gets interpolated ok and sets up the "title"
> temporary scratch. We use [tmpn] because no Interpolation of the
> tag body is required.
>
> On the second line, the interpolator sets the title argument to
> (literally) [scratch title]. The interpolator spots that the
> argument contains a '[' character and runs a sub-interpolator on
> the argument value. The value passed into the [mytag] UserTag is
> now the same as the value set in the scratchpad variable and
> everyone's happy.
>
Excellent and I understand :) Thanks again for your detailed
information.
-Ron
More information about the interchange-users
mailing list