# Package =TWiki::Compatibility Support for compatibility with old TWiki versions. Packaged separately because 99.999999% of the time this won't be needed. =end sub \_upgradeCategoryItem \{ my ( $catitems, $ctext ) = @\_; my $catname = ''; my $scatname = ''; my $catmodifier = ''; my $catvalue = ''; my @cmd = split( /\\|/, $catitems ); my $src = ''; my $len = @cmd; if( $len < '2' ) \{ # FIXME return ( $catname, $catmodifier, $catvalue ) \} my $svalue = ''; my $i; my $itemsPerLine; # check for [[CategoryName]]=CategoryValue parameter my $paramCmd = ''; my $cvalue = ''; # was$query->param( $cmd[1] ); if( $cvalue ) \{ $src = "$cvalue"; \} elsif( $ctext ) \{ foreach( split( /\\r?\\n/, $ctext ) ) \{ if( /$cmd[1]/ ) \{ $src = $\_; last; \} \} \} if( $cmd[0] eq 'select' || $cmd[0] eq 'radio') \{ $catname = $cmd[1]; $scatname = $catname; #$scatname =~ s/[^a-zA-Z0-9]//g; my $size = $cmd[2]; for( $i = 3; $i < $len; $i++ ) \{ my $value = $cmd[$i]; $svalue = $value; if( $src =~ /$value/ ) \{ $catvalue = $svalue; \} \} \} elsif( $cmd[0] eq 'checkbox' ) \{ $catname = $cmd[1]; $scatname = $catname; #$scatname =~ s/[^a-zA-Z0-9]//g; if( $cmd[2] eq 'true' || $cmd[2] eq '1' ) \{ $i = $len - 4; $catmodifier = 1; \} $itemsPerLine = $cmd[3]; for( $i = 4; $i < $len; $i++ ) \{ my $value = $cmd[$i]; $svalue = $value; # [[I18N]]: FIXME - need to look at this, but since it's upgrading # old forms that probably didn't use [[I18N]], it's not a high # priority. if( $src =~ /$value[^a-zA-Z0-9\\.]/ ) \{ $catvalue .= ", " if( $catvalue ); $catvalue .= $svalue; \} \} \} elsif( $cmd[0] eq 'text' ) \{ $catname = $cmd[1]; $scatname = $catname; #$scatname =~ s/[^a-zA-Z0-9]//g; $src =~ /(.\*)/; if( $1 ) \{ $src = $1; \} else \{ $src = ''; \} $catvalue = $src; \} return ( $catname, $catmodifier, $catvalue ) \}
## [[StaticMethod]] \*upgradeCategoryTable `($session,$web,$topic,$meta,$text) -> $text` Upgrade old style category table May throw TWiki::OopsException