Go to main content

Textpattern CMS support forum

You are not logged in. Register | Login | Help

#1 2017-12-12 12:18:27

etc
Developer
Registered: 2010-11-11
Posts: 5,187
Website GitHub

Poll: useful 'escape' transforms

In 4.7 we have introduced a global escape attribute, which applies to all tags (core and plugins) that don’t treat it natively. Its value is a comma-separated list of “transforms” that will be applied to the content in the given order. For example,

<txp:variable name="code" escape="trim, textile">
    Hello, _world_!
</txp:variable>

<txp:variable name="code" escape="html" />

will output

<p>Hello, <em>world</em>!</p>

Currently (4.7-dev), the following transforms have been implemented:

  • html (default): encode special HTML characters ("'&<>);
  • json: JSON-encode, without the surrounding "" quotes;
  • textile: Textile the content;
  • number: output as numeric value (via PHP floatval);
  • intval: output as integer;
  • strip: strip tags;
  • upper, lower: upper-/lower-case;
  • trim, ltrim, rtrim: remove surrounding space (on the left/right)

The question is: are these names intuitive enough, and what other transforms could be added to the list? Hurry up before 4.7 is out!

Offline

#2 2017-12-12 12:42:51

Bloke
Developer
From: Leeds, UK
Registered: 2006-01-29
Posts: 11,445
Website GitHub

Re: Poll: useful 'escape' transforms

Move over smd_wrap, there’s a new kid in town.

All these seem reasonable to me. Is it worth considering some form of ucfirst and ucwords or do they not translate well to other languages? Wouldn’t have a clue what to name such transforms though.


The smd plugin menagerie — for when you need one more gribble of power from Textpattern. Bleeding-edge code available on GitHub.

Txp Builders – finely-crafted code, design and Txp

Offline

#3 2017-12-12 13:01:15

philwareham
Core designer
From: Haslemere, Surrey, UK
Registered: 2009-06-11
Posts: 3,564
Website GitHub Mastodon

Re: Poll: useful 'escape' transforms

Markdown?! ?

Offline

#4 2017-12-12 13:07:30

jakob
Admin
From: Germany
Registered: 2005-01-20
Posts: 4,726
Website

Re: Poll: useful 'escape' transforms

What about some of the sanitize options in smd_wrap, like url_title? Or fordb (doSlash), or is that already catered for with the regular escape case?

The classic thing that happens in conjunction with strip_tags is shortening to a number of words or characters. Not sure if that’s a candidate for an escape attribute, but perhaps a transform attribute.

The {liquid} templating tags have various string filters too…


TXP Builders – finely-crafted code, design and txp

Offline

#5 2017-12-12 13:13:54

jpdupont
Member
Registered: 2004-10-01
Posts: 752

Re: Poll: useful 'escape' transforms

All this seems perfect, and will allow to remove more and more plugins.
I do not know if this request falls under this attribute: “replace” str1 with str2 ???

Offline

#6 2017-12-12 13:49:38

etc
Developer
Registered: 2010-11-11
Posts: 5,187
Website GitHub

Re: Poll: useful 'escape' transforms

Bloke wrote #308270:

Move over smd_wrap, there’s a new kid in town.

No worries, there will always be a need to cut|200|20w|&hellip; :-)

Is it worth considering some form of ucfirst and ucwords or do they not translate well to other languages? Wouldn’t have a clue what to name such transforms though.

capitalize, camelcase? Some mb_ variant should be ok.

philwareham wrote #308271:

Markdown?! ?

In due course, admin side first :-)

jakob wrote #308272:

What about some of the sanitize options in smd_wrap, like url_title? Or fordb (doSlash), or is that already catered for with the regular escape case?

These are normally not used in core, but plugins are free to register their own global attributes for that.

The classic thing that happens in conjunction with strip_tags is shortening to a number of words or characters. Not sure if that’s a candidate for an escape attribute, but perhaps a transform attribute.

The {liquid} templating tags have various string filters too…

jpdupont wrote #308273:

I do not know if this request falls under this attribute: “replace” str1 with str2 ???

These require extra parameters (cut length, strings to replace, etc), dunno how they should look in an attribute. If we decide (later) on a syntax, sure, but atm plugins territory for me (example).

Offline

#7 2017-12-12 14:03:02

Algaris
Member
From: England
Registered: 2006-01-27
Posts: 552

Re: Poll: useful 'escape' transforms

+1 for Markdown please.

Offline

#8 2017-12-12 18:54:30

GugUser
Member
From: Quito (Ecuador)
Registered: 2007-12-16
Posts: 1,473

Re: Poll: useful 'escape' transforms

What do you mean about this two examples?

<txp:smd_wrap transform='replace|regex|/&#34;/|", textile'>

<txp:smd_wrap transform="textile,replace|regex|'<\/?p>'|">

Offline

#9 2017-12-13 07:50:06

etc
Developer
Registered: 2010-11-11
Posts: 5,187
Website GitHub

Re: Poll: useful 'escape' transforms

GugUser wrote #308276:

What do you mean about this two examples?

<txp:smd_wrap transform='replace|regex|/&#34;/|", textile'>...

That’s fine if one can replace the pipe | delimiter with another symbol when needed (certainly the case with smd_wrap). But in core we have no global delimiter attribute atm, though it could be introduced if the community agrees on the syntax. But then the comma , should be configurable too…

Offline

#10 2017-12-13 09:58:14

Bloke
Developer
From: Leeds, UK
Registered: 2006-01-29
Posts: 11,445
Website GitHub

Re: Poll: useful 'escape' transforms

I don’t like the pipe syntax, and separating out fields by a string is clunky anyway – see smd_if for a real-world example of how annoying this can be.

Right now, this is just about single simple transforms that can be performed for convenience in core without worrying about complicating things with extra arguments and delimiters. I’m fine with the ones Oleg’s already added. If there are any others, please add your thoughts here, but if it requires additional parameters, it won’t be considered (at least for now).


The smd plugin menagerie — for when you need one more gribble of power from Textpattern. Bleeding-edge code available on GitHub.

Txp Builders – finely-crafted code, design and Txp

Offline

#11 2017-12-13 11:37:43

uli
Moderator
From: Cologne
Registered: 2006-08-15
Posts: 4,306

Re: Poll: useful 'escape' transforms

Now that we’ll be able to even rtrim and ltrim white space, wouldn’t it be desirable to have the variable tag calculate in order to do some simple, user defined maths?

E.g.
var “current iteration-no.” plus 1
var “current iteration-no.” < n
var “image width” minus 90px
etc.


In bad weather I never leave home without wet_plugout, smd_where_used and adi_form_links

Offline

#12 2017-12-13 11:55:24

Bloke
Developer
From: Leeds, UK
Registered: 2006-01-29
Posts: 11,445
Website GitHub

Re: Poll: useful 'escape' transforms

uli wrote #308288:

Now that we’ll be able to even rtrim and ltrim white space, wouldn’t it be desirable to have the variable tag calculate in order to do some simple, user defined maths?

We do. :-) See example 1, for instance.


The smd plugin menagerie — for when you need one more gribble of power from Textpattern. Bleeding-edge code available on GitHub.

Txp Builders – finely-crafted code, design and Txp

Offline

Board footer

Powered by FluxBB