[interchange-cvs] interchange - heins modified 11 files
interchange-core@icdevgroup.org
interchange-core@icdevgroup.org
Mon Aug 12 12:17:00 2002
User: heins
Date: 2002-08-12 16:16:19 GMT
Modified: . WHATSNEW
Modified: dist/lib/UI/locales es_ES.cfg nl_NL.cfg pt_BR.cfg sv_SE.cfg
Modified: dist/lib/UI/pages/admin menu_editor.html preferences.html
Modified: dist/lib/UI/vars UI_STD_FOOTER UI_STD_HEAD
Modified: lib/Vend Interpolate.pm Menu.pm
Log:
Update menu system some more.
* Put bottom menu (tables, quicklinks, etc.) in menu system
* Update preferences page so always have option of turning off meta links
* Update translations where possible to reflect string addition
* Make [area ....] pass through links that have a protocol, allows
javascript:, http:, etc. links in menuing system
* Place mv_ip and mv_increment pointers in rows for menus, so that
increment-based conditionals can be done
Revision Changes Path
2.34 +4 -4 interchange/WHATSNEW
rev 2.34, prev_rev 2.33
Index: WHATSNEW
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /var/cvs/interchange/WHATSNEW,v
retrieving revision 2.33
retrieving revision 2.34
diff -u -r2.33 -r2.34
--- WHATSNEW 6 Aug 2002 20:12:21 -0000 2.33
+++ WHATSNEW 12 Aug 2002 16:16:18 -0000 2.34
@@ -15,7 +15,7 @@
* New ability to run Interchange entirely inside Apache and mod_perl.
See POD documentation inside scripts/ic_mod_perl.PL for details.
=20
-* Add new cron facility:
+* Add new Jobs and Cron facility:
=20
- While we don't keep the time, and a scheduler will have to set the
execution time, it allows ITL to be run without the hassles of having
@@ -40,9 +40,9 @@
and the new tag [menu ...], which builds various types of DHTMl and
standard HTML menus based on browser type.
=20
- The menu editor can edit simple menus or tree-based menus. Eventually
- all UI menus will use this, and a simple menu component (i.e. a link lis=
t)
- can be placed in the public-facing catalog.
+ The menu editor can edit simple menus or tree-based menus.
+ All UI menus use this. A simple menu component (i.e. a link list)
+ and a tree-based list are provided for Foundation.
=20
* New support for database-native sequences for MySQL, PostgreSQL, and Ora=
cle:
=20
1.3 +3 -0 interchange/dist/lib/UI/locales/es_ES.cfg
rev 1.3, prev_rev 1.2
Index: es_ES.cfg
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /var/cvs/interchange/dist/lib/UI/locales/es_ES.cfg,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- es_ES.cfg 21 May 2002 22:16:53 -0000 1.2
+++ es_ES.cfg 12 Aug 2002 16:16:18 -0000 1.3
@@ -2491,6 +2491,9 @@
"Template Edit",
"Editar plantilla",
=20
+"Turn on meta links in database edit",
+"Activar temporalmente enlaces meta en la edición de Base de Datos",
+
"Temporarily turn on meta links in database edit",
"Activar temporalmente enlaces meta en la edición de Base de Datos",
=20
2.16 +3 -0 interchange/dist/lib/UI/locales/nl_NL.cfg
rev 2.16, prev_rev 2.15
Index: nl_NL.cfg
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /var/cvs/interchange/dist/lib/UI/locales/nl_NL.cfg,v
retrieving revision 2.15
retrieving revision 2.16
diff -u -r2.15 -r2.16
--- nl_NL.cfg 25 May 2002 10:04:59 -0000 2.15
+++ nl_NL.cfg 12 Aug 2002 16:16:18 -0000 2.16
@@ -2015,6 +2015,9 @@
"Template editor",
undef,
=20
+"Turn on meta links in database edit",
+"Tijdelijk inschakelen meta links bij bewerken database",
+
"Temporarily turn on meta links in database edit",
"Tijdelijk inschakelen meta links bij bewerken database",
=20
1.4 +3 -0 interchange/dist/lib/UI/locales/pt_BR.cfg
rev 1.4, prev_rev 1.3
Index: pt_BR.cfg
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /var/cvs/interchange/dist/lib/UI/locales/pt_BR.cfg,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- pt_BR.cfg 13 Nov 2001 11:27:33 -0000 1.3
+++ pt_BR.cfg 12 Aug 2002 16:16:18 -0000 1.4
@@ -2426,6 +2426,9 @@
"Template Edit",
"Editar Template",
=20
+"Turn on meta links in database edit",
+"Ativar links meta na edi=E7=E3o do banco de dados",
+
"Temporarily turn on meta links in database edit",
"Ativar temporariamente links meta na edi=E7=E3o do banco de dados",
=20
1.12 +3 -0 interchange/dist/lib/UI/locales/sv_SE.cfg
rev 1.12, prev_rev 1.11
Index: sv_SE.cfg
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /var/cvs/interchange/dist/lib/UI/locales/sv_SE.cfg,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- sv_SE.cfg 23 Feb 2002 19:27:03 -0000 1.11
+++ sv_SE.cfg 12 Aug 2002 16:16:18 -0000 1.12
@@ -2032,6 +2032,9 @@
"Template editor",
undef,
=20
+"Turn on meta links in database edit",
+"Aktivera meta länkar i databas editorn",
+
"Temporarily turn on meta links in database edit",
"Aktivera meta länkar temporärt i databas editorn",
=20
2.10 +3 -2 interchange/dist/lib/UI/pages/admin/menu_editor.html
rev 2.10, prev_rev 2.9
Index: menu_editor.html
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /var/cvs/interchange/dist/lib/UI/pages/admin/menu_editor.html,v
retrieving revision 2.9
retrieving revision 2.10
diff -u -r2.9 -r2.10
--- menu_editor.html 12 Aug 2002 00:49:07 -0000 2.9
+++ menu_editor.html 12 Aug 2002 16:16:18 -0000 2.10
@@ -6,6 +6,7 @@
[/if]
=20
[set page_title]Menu construction[/set]
+[tmpn dhtml_required]1[/tmpn]
[set ui_class]Design[/set]
[set page_banner]Menu constructor: Make a quick menu[/set]
[set page_perm]layout=3De[/set]
@@ -1768,8 +1769,8 @@
wid =3D [jsq]<input type=3Dtext name=3D"$nn" onChange=3D"form_changed=
(1);">[/jsq];
}
document.write([jsq]
- <tr onMouseOver=3D"show_title(1, '$helptext')" onMouseOut=3D"show_title(=
0)">
- <td class=3Dclabel>
+ <tr>
+ <td class=3Dclabel onMouseOver=3D"show_title(1, '$helptext')" onMouseOu=
t=3D"show_title(0)">
$lab
</td>
<td class=3Dcdata>
2.4 +17 -5 interchange/dist/lib/UI/pages/admin/preferences.html
rev 2.4, prev_rev 2.3
Index: preferences.html
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /var/cvs/interchange/dist/lib/UI/pages/admin/preferences.html,v
retrieving revision 2.3
retrieving revision 2.4
diff -u -r2.3 -r2.4
--- preferences.html 2 Aug 2002 04:46:12 -0000 2.3
+++ preferences.html 12 Aug 2002 16:16:18 -0000 2.4
@@ -56,27 +56,39 @@
=20
[/loop]
=20
-[if !variable UI_META_LINK]
+[if-mm super]
<tr>
<td bgcolor=3D__UI_C_INTBLOCKBAR__><img src=3D"bg.gif" width=3D__UI_MAIN_W=
IDTH__ height=3D1></td>
</tr>
=20
<tr>
<td bgcolor=3D__UI_C_INTBLOCK__>
- [if value ui_meta_force]
+ [if type=3Dexplicit compare=3D`
+ return
+ (! defined $Values->{ui_meta_force} and $Variable->{UI_META_LINK})
+ ||
+ $Values->{ui_meta_force};
+ `]
[page href=3D"@@MV_PAGE@@"
form=3D"
mv_action=3Dreturn
- ui_meta_force=3D0"][L]Turn off meta links in database edit[/L]</A></td>
+ ui_meta_force=3D0"][L]Turn off meta links in database edit[/L]</A>
+ [elsif variable UI_META_LINK]
+ [page href=3D"@@MV_PAGE@@"
+ form=3D"
+ mv_action=3Dreturn
+ ui_meta_force=3D1"][L]Turn on meta links in database edit[/L]</A>
+ [/elsif]
[else]
[page href=3D"@@MV_PAGE@@"
form=3D"
mv_action=3Dreturn
- ui_meta_force=3D1"][L]Temporarily turn on meta links in database edit[=
/L]</A></td>
+ ui_meta_force=3D1"][L]Temporarily turn on meta links in database edit[=
/L]</A>
[/else]
[/if]
+ </td>
</tr>
-[/if]
+[/if-mm]
=20
<tr>
<td bgcolor=3D__UI_C_INTBLOCKBAR__><img src=3D"bg.gif" width=3D__UI_MAIN_W=
IDTH__ height=3D1></td>
2.4 +18 -7 interchange/dist/lib/UI/vars/UI_STD_FOOTER
rev 2.4, prev_rev 2.3
Index: UI_STD_FOOTER
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /var/cvs/interchange/dist/lib/UI/vars/UI_STD_FOOTER,v
retrieving revision 2.3
retrieving revision 2.4
diff -u -r2.3 -r2.4
--- UI_STD_FOOTER 17 Apr 2002 17:55:49 -0000 2.3
+++ UI_STD_FOOTER 12 Aug 2002 16:16:18 -0000 2.4
@@ -35,13 +35,24 @@
[tmp window_name][tag time]%m%d%H%M%S[/tag][/tmp]
[if session logged_in]
<font size=3D"1">
- [if-mm advanced gentable]<a href=3D"[area __UI_BASE__/gentable]"><small>[=
msg]Tables[/msg]</small></A> - [/if-mm]
- <a href=3D"javascript:window.name =3D 'mainwindow[scratch window_name]';w=
indow.open('[area href=3D|admin/quicklinks| arg=3D|[scratch window_name]|]'=
,'Quicklinks[scratch window_name]','top=3D0,left=3D0,scrollbars,location=3D=
no,status=3Dno,toolbar=3Dno,resizable,fullsize=3Dno,width=3D170,height=3D70=
0'); void 0"><small>[msg]Quicklinks[/msg]</small></A> -=20
- [/if]
- [if-mm advanced reconfig]
- <A href=3D"[area __UI_BASE__/reconfig]"><small>[msg]Apply changes[/msg]</=
small></A> -=20
- [/if-mm]
- <A href=3D"[area __UI_BASE__/login]"><small>[msg]Log out[/msg]</sm=
all></A>
+[menu
+ name=3DBottom
+ ui_security=3Ddepends_on
+ superuser=3Dsuper
+ full_interpolate=3Dpage
+ localize=3D"name,description"
+ ]
+ {MV_IP?}- {/MV_IP?}<a href=3D"{HREF}" title=3D"{DESCRIPTION}" sytle=3D"fo=
nt-size: 9pt;">{NAME}</A>
+[menu-footer]
+[if-mm super]
+ [if scratch ui_meta_link]
+ <a
+ href=3D"[area href=3D'admin/menu_editor' form=3D'qmenu_name=3DBottom']"
+ style=3D"font-size: 7pt">edit</A>
+ [/if]
+[/if-mm]
+[/menu-footer]
+[/menu]
</td>
<td valign=3D"top" align=3D"right" nowrap>
<a href=3D"@_INTERCHANGE_URL_@"><img border=3D"0" src=3D"poweredby=
gif" align=3D"top"></a>
2.21 +22 -26 interchange/dist/lib/UI/vars/UI_STD_HEAD
rev 2.21, prev_rev 2.20
Index: UI_STD_HEAD
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /var/cvs/interchange/dist/lib/UI/vars/UI_STD_HEAD,v
retrieving revision 2.20
retrieving revision 2.21
diff -u -r2.20 -r2.21
--- UI_STD_HEAD 12 Aug 2002 00:37:57 -0000 2.20
+++ UI_STD_HEAD 12 Aug 2002 16:16:18 -0000 2.21
@@ -41,6 +41,11 @@
[/if]
[/if-mm]
[calc]
+ $Tag->tmpn('ui_meta_link');
+ $Scratch->{ui_meta_link} =3D defined $Values->{ui_meta_force}
+ ? $Values->{ui_meta_force}
+ : $Variable->{UI_META_LINK};
+
delete $Scratch->{no_login_required};
@parms =3D grep /^ui_class_/, keys %$Scratch;
my $last;
@@ -50,20 +55,8 @@
}=20
$last =3D~ s/ui_class_//;
$ui_tag =3D (delete $Scratch->{ui_class} || $last || 'None');
- my $sparams =3D <<EOF;
- fi=3D@_UI_MENU_TABLE_@
- st=3Ddb
- rf=3D*
- co=3Dyes
- tf=3Dmsort
-
- sf=3Dmgroup
- se=3D$ui_tag
- op=3Drm
-EOF
$Scratch->{ui_class} =3D $ui_tag;
$Scratch->{"ui_class_$ui_tag"} =3D 1;
- $Scratch->{ui_menu_sparams} =3D $sparams;
return;
[/calc]
[if scratch table_perm]
@@ -93,6 +86,20 @@
[bounce page=3D"__UI_BASE__/error"]
[/if-mm]
[/if]
+[if scratch dhtml_required]
+ [calc]
+ $regex =3D qr/MSIE [5-9].*Windows|Mozilla.*Gecko/;
+ if ($Session->{browser} =3D~ $regex) {
+ delete $Scratch->{old_browser};
+ }
+ else {
+ $Scratch->{old_browser} =3D 1;
+ $Scratch->{ui_error} =3D "Modern browser like Mozilla or MSIE 5 required=
for page accessed.";
+ }
+ return;
+ [/calc]
+ [bounce page=3D"__UI_BASE__/error" if=3D"[scratch old_browser]"]
+[/if]
<html[scratch ui_language_direction]>
<head>
<title>[scratch page_title]</title>
@@ -228,11 +235,7 @@
</td>
<td align=3Dright>
[if-mm super]
- [if type=3Dexplicit compare=3D`
- return $Values->{ui_meta_force}
- if defined $Values->{ui_meta_force};
- return $Variable->{UI_META_LINK};
- `]
+ [if scratch ui_meta_link]
<A HREF=3D"[area href=3D__UI_BASE__/menu_editor form=3D"qmenu_name=3DTo=
p"]"
style=3D"font-size: 7pt" class=3Dctitle>edit</A>
[/if]
@@ -260,21 +263,14 @@
<tr bgcolor=3D"__UI_C_TITLEBARBG__">=20
<td valign=3Dcenter nowrap><font face=3D"Verdana, Arial, Helvetica, sa=
ns-serif" size=3D"-1"><img src=3D"bg.gif" height=3D19 width=3D3 align=3Dmid=
dle alt=3Dx> [/menu-header]{NEXT_LINE?}</td><td></td=
></tr><tr bgcolor=3D"__UI_C_INTBLOCKBAR__"><td nowrap valign=3Dcenter><img =
src=3D"bg.gif" height=3D19 width=3D3 align=3Dmiddle alt=3Dx>
{/NEXT_LINE?}{PAGE?}<A
- HREF=3D"{HREF}"
+ href=3D"{HREF}" title=3D"{DESCRIPTION}"
style=3D"
{INDICATED?}color: __UI_C_TITLEBARTXT__; font-size: 10pt;{/INDICATED?}
{INDICATED:}color: __UI_C_TITLEBARCONT__; font-size: 10pt;{/INDICATED:}
">{NAME}</A>{/PAGE?}{PAGE:}{NAME}{/PAGE:} [menu-foo=
ter]
</td><td align=3Dright>
[if-mm super]
- [if type=3Dexplicit compare=3D`
- if (defined $Values->{ui_meta_force}) {
- return $Values->{ui_meta_force};
- }
- else {
- return $Variable->{UI_META_LINK};
- }
- `]
+ [if scratch ui_meta_link]
<A HREF=3D"[area href=3D__UI_BASE__/menu_editor form=3D"qmenu_name=3D[scr=
atch ui_class]"]"
style=3D"font-size: 7pt" class=3Dctitle>edit</A>
[/if]
2.104 +6 -2 interchange/lib/Vend/Interpolate.pm
rev 2.104, prev_rev 2.103
Index: Interpolate.pm
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /var/cvs/interchange/lib/Vend/Interpolate.pm,v
retrieving revision 2.103
retrieving revision 2.104
diff -u -r2.103 -r2.104
--- Interpolate.pm 10 Aug 2002 02:30:26 -0000 2.103
+++ Interpolate.pm 12 Aug 2002 16:16:18 -0000 2.104
@@ -1,6 +1,6 @@
# Vend::Interpolate - Interpret Interchange tags
#=20
-# $Id: Interpolate.pm,v 2.103 2002/08/10 02:30:26 mheins Exp $
+# $Id: Interpolate.pm,v 2.104 2002/08/12 16:16:18 mheins Exp $
#
# Copyright (C) 1996-2002 Red Hat, Inc. <interchange@redhat.com>
#
@@ -27,7 +27,7 @@
require Exporter;
@ISA =3D qw(Exporter);
=20
-$VERSION =3D substr(q$Revision: 2.103 $, 10);
+$VERSION =3D substr(q$Revision: 2.104 $, 10);
=20
@EXPORT =3D qw (
=20
@@ -3117,6 +3117,10 @@
=20
if ($opt->{search}) {
$page =3D escape_scan($opt->{search});
+ }
+ elsif ($page =3D~ /^[a-z][a-z]+:/) {
+ ### Javascript or absolute link
+ return $page;
}
elsif ($page eq 'scan') {
$page =3D escape_scan($arg);
2.6 +4 -2 interchange/lib/Vend/Menu.pm
rev 2.6, prev_rev 2.5
Index: Menu.pm
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /var/cvs/interchange/lib/Vend/Menu.pm,v
retrieving revision 2.5
retrieving revision 2.6
diff -u -r2.5 -r2.6
--- Menu.pm 11 Aug 2002 15:56:24 -0000 2.5
+++ Menu.pm 12 Aug 2002 16:16:18 -0000 2.6
@@ -1,6 +1,6 @@
# Vend::Menu - Interchange payment processing routines
#
-# $Id: Menu.pm,v 2.5 2002/08/11 15:56:24 mheins Exp $
+# $Id: Menu.pm,v 2.6 2002/08/12 16:16:18 mheins Exp $
#
# Copyright (C) 2002 Mike Heins, <mike@perusion.net>
#
@@ -21,7 +21,7 @@
=20
package Vend::Menu;
=20
-$VERSION =3D substr(q$Revision: 2.5 $, 10);
+$VERSION =3D substr(q$Revision: 2.6 $, 10);
=20
use Vend::Util;
use strict;
@@ -654,6 +654,8 @@
$row =3D \%line;
}
=20
+ $row->{mv_ip} =3D $opt->{mv_ip}++ || 0;
+ $row->{mv_increment} =3D ++$opt->{mv_incrmement};
#::logDebug("here's a row: " . ::uneval($row)) if $row->{debug};
=20
for(@{$opt->{_transform}}) {