Up to [Local Repository] / interchange / code / Filter
Request diff between arbitrary revisions
Keyword substitution: kv
Default branch: MAIN
Fix incorrect license in headers GPL v2 -> GPL v2 "or later". Update copyrights.
Fix incorrect license in headers GPL v2 -> GPL v2 "or later". Update copyrights.
Big copyright and version number update to prepare for 5.3.2 release.
* Add descriptions to filters. Some descriptions for trivial, obsolete, or very complex filters were left commented out to not clutter a filter list with garbage. * Fix codedef:foo options callout to not be case sensitive. * Sort codedef:foo return lists by label.
uc and lc filters are now working according to the current locale, e.g. umlauts will now properly modified
moved filter aliases to corresponding filter files, use similar syntax as usertag aliases
* The great filter breakout! * All filters are now CodeDef definitions in code/Filter/*. * Besides plain move from Interpolate.pm, changes made to Filter/* include: * Adding/fixing header/license/cvsid line (all files) * Indenting (where needed) * Lowercasing output html (where needed) * Changes to Interpolate.pm: * Removed whole %Filter = ( ... ) I tested everything with the new eg/pcode script, and tried re-starting Interchange and running few filters on test page. Seems OK.
updated LINUXIA branch to 4.9 sources in order to use it as testbed again
* The great tag breakout!
* Almost all tags are now UserTag definitions. The only exceptions
are:
and bounce goto if label or unless
* New TagDir directive (default is VENDROOT/code) sets the
directory (or directories) which are searched for code definitions
set by UserTag and CodeDef.
* New TagGroup directive establishes groups of ITL tags which can
be included.
TagGroup :crufty "banner default ecml html_table onfly sql"
The default groups include :core, which contains all of the
ITL tags defined in 4.8/early 4.9. The groups are defined
in $Vend::Cfg::StdTags and can be undefined if desired
with "TagGroup :group".
* New TagInclude directive allows inclusion of tags (or groups
of tags). If a tag is defined as a core tag (with a .coretag
or .tag or .ct extension) and is not included, it will not
be compiled and placed in the tag map. This is for all catalogs,
so if *any* catalog uses a tag it must be included.
Examples:
# Include the base tags
TagInclude :core
# Not the commerce tags
TagInclude !:commerce
# But make sure item-list is included even though
# it is in :commerce
TagInclude item-list
## Double negatives are honored
TagGroup :foo "bar !baz buz"
## With the group above, the below is equivalent
## to TagInclude !bar baz !buz
TagInclude !:foo
* New CodeDef directive allows the setting of filters,
order checks, FormAction, ActionMap, ItemAction,
and LocaleChange.
## filters
CodeDef mixedcase Filter
CodeDef mixedcase Routine <<EOR
sub {
my $val = shift;
## [filter mixedcase]mixed case[/filter]
## outputs "MiXeD CaSe"
$val =~ s/(.)(.)/\u$1\l$2/g;
return $val;
}
EOR
## order checks
CodeDef mixedcase OrderCheck
CodeDef foo Routine <<EOR
sub {
my ($ref, $var, $val) = @_;
return (1,$var) if $val eq 'bar';
return (0,$var, "foo must be bar");
}
EOR
All work in catalog.cfg; LocaleChange and ItemAction are not
global. FormAction, ActionMap, and ItemAction directives
are equivalent to their CodeDef equivalents.