Apache2-ApacheMobileFilter
view release on metacpan or search on metacpan
lib/Apache2/AMF51DegreesFilter.pm view on Meta::CPAN
$count++;
}
}
}
}
$cacheSystem->store( '51Degrees-ua', $user_agent, $id);
}
}
if ($id ne "") {
#
# device detected
#
if ($cacheSystem->restore( '51Degrees-id', $id )) {
#
# I'm here only for old device looking in cache
#
my @pairs = split(/&/, $cacheSystem->restore( '51Degrees-id', $id ));
my $param_tofound;
my $string_tofound;
foreach $param_tofound (@pairs) {
($string_tofound,$dummy)=split(/=/, $param_tofound);
$ArrayCapFound{$string_tofound}=$dummy;
my $upper2=uc($string_tofound);
$f->subprocess_env("AMF_$upper2" => $ArrayCapFound{$string_tofound});
$f->pnotes("$string_tofound" => $ArrayCapFound{$string_tofound});
}
$id=$ArrayCapFound{id};
} else {
%ArrayCapFound=FallBack($id);
foreach $capability2 (sort keys %ArrayCapFound) {
$variabile2="$variabile2$capability2=$ArrayCapFound{$capability2}&";
my $upper=uc($capability2);
$f->subprocess_env("AMF_$upper" => $ArrayCapFound{$capability2});
$f->pnotes("$capability2" => $ArrayCapFound{$capability2});
}
$variabile2="id=$id&$variabile2&realpcbrowser=$realPCbrowser";
$f->subprocess_env("AMF_ID" => $id);
$f->pnotes('id' => $id);
$cacheSystem->store( '51Degrees-id', $id, $variabile2 );
$cacheSystem->store( '51Degrees-ua', $user_agent, $id);
}
if ($cookiecachesystem eq "true") {
$f->err_headers_out->set('Set-Cookie' => "amf=$id; path=/;");
}
}
}
if ($ArrayCapFound{'ScreenPixelsWidth'} ne 'Unknown') {
$f->pnotes("max_image_width" => $ArrayCapFound{'ScreenPixelsWidth'});
$f->pnotes("max_image_height" => $ArrayCapFound{'ScreenPixelsHeight'});
}
if ($ArrayCapFound{'IsTablet'}) {
$f->pnotes("is_tablet" => lc($ArrayCapFound{'IsTablet'}));
$f->subprocess_env("AMF_DEVICE_IS_TABLET" => lc($ArrayCapFound{'IsTablet'}));
}
if ($amfFull ne "") {
$f->subprocess_env("AMF_FORCE_TO_DESKTOP" => 'true');
$f->pnotes("amf_force_to_desktop" => 'true');
}
$f->pnotes("amf_device_ismobile" => lc($ArrayCapFound{'IsMobile'}));
$f->subprocess_env("AMF_DEVICE_IS_MOBILE" => lc($ArrayCapFound{'IsMobile'}));
$f->subprocess_env("AMF_VER" => $VERSION);
$f->subprocess_env("AMF_DEGREES51_VER" => $DegreesVersion);
$f->headers_out->set("AMF-Ver"=> $VERSION);
if ($x_operamini_ua) {
$f->subprocess_env("AMF_MOBILE_BROWSER" => $x_operamini_ua);
$f->pnotes("mobile_browser" => $x_operamini_ua);
$f->subprocess_env("AMF_IS_TRANCODER" => 'true');
$f->pnotes("is_transcoder" => 'true');
}
return Apache2::Const::DECLINED;
}
1;
=head1 NAME
Apache2::AMF51DegreesFilter - The module detects the mobile device and passes the 51Degrees capabilities on to the other web application as environment variables
=head1 DESCRIPTION
Module for device detection, the cache is based on file system
h=head1 AMF PROJECT SITE
http://www.apachemobilefilter.org
=head1 DOCUMENTATION
http://wiki.apachemobilefilter.org
Perl Module Documentation: http://wiki.apachemobilefilter.org/index.php/AMF51DegreesFilter
=head1 AUTHOR
Idel Fuschini (idel.fuschini [at] gmail [dot] com)
=head1 COPYRIGHT
You may distribute under the terms of either the GNU General Public
License or the Artistic License, as specified in the Perl README file.
=cut
( run in 2.038 seconds using v1.01-cache-2.11-cpan-2398b32b56e )