X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FMoreCommon.pm;h=dfc5a7d8002d63c7aa637efab70fc25f07b09824;hb=e0811efeffea10076fc8ab4db310b4c5187ef293;hp=bb31f2defb3f73c98c9bc0320cd40d42fc617de5;hpb=af16cfe65e669bd9ab1535c9ef6639753cfae7d0;p=kivitendo-erp.git diff --git a/SL/MoreCommon.pm b/SL/MoreCommon.pm index bb31f2def..dfc5a7d80 100644 --- a/SL/MoreCommon.pm +++ b/SL/MoreCommon.pm @@ -4,7 +4,7 @@ require Exporter; our @ISA = qw(Exporter); our @EXPORT = qw(save_form restore_form compare_numbers any cross); -our @EXPORT_OK = qw(ary_union ary_intersect ary_diff listify ary_to_hash); +our @EXPORT_OK = qw(ary_union ary_intersect ary_diff listify ary_to_hash uri_encode uri_decode); use List::MoreUtils qw(zip); use YAML; @@ -161,6 +161,27 @@ sub ary_to_hash { return zip(@indexes, @values); } +sub uri_encode { + my ($str) = @_; + + $str = Encode::encode('utf-8-strict', $str) if $::locale->is_utf8; + $str =~ s/([^a-zA-Z0-9_.:-])/sprintf("%%%02x", ord($1))/ge; + + return $str; +} + +sub uri_decode { + my $str = $_[0] // ''; + + $str =~ tr/+/ /; + $str =~ s/\\$//; + + $str =~ s/%([0-9a-fA-Z]{2})/pack("C",hex($1))/eg; + $str = Encode::decode('utf-8-strict', $str) if $::locale->is_utf8; + + return $str; +} + 1; __END__ @@ -171,7 +192,7 @@ SL::MoreCommon.pm - helper functions =head1 DESCRIPTION -this is a collection of helper functions used in Lx-Office. +this is a collection of helper functions used in kivitendo. Most of them are either obvious or too obscure to care about unless you really have to. The exceptions are documented here. @@ -180,6 +201,7 @@ The exceptions are documented here. =over 4 =item save_form + =item restore_form A lot of the old sql-ledger routines are strictly procedural. They search for params in the $form object, do stuff with it, and return a status code.