package Authen::Quiz::Plugin::JS; # # Masatoshi Mizuno ElusheE<64>cpan.orgE # # $Id: JS.pm 361 2008-08-18 18:29:46Z lushe $ # use strict; use warnings; use Carp qw/ croak /; our $VERSION= '0.01'; sub question2js { my $self = shift; my $boxid= shift || croak __PACKAGE__. q{ - I want element id.}; my $separ= shift || ' '; my @array= split /$separ/, $self->question; <new(\$_)->utf8; s/([^\w ])/ '%'. unpack('H2', $1) /eg; tr/ /+/; $_; } split /${separ}+/, $self->question; <new( data_folder => '/path/to/authen_quiz' ); my $js_source= $q->question2js('boxid'); ## And, it buries it under the HTML source. ( For the Mason template. )
... ... ...
* quiz attestation.
...
... ... ... =head1 DESCRIPTION After all, the thing that the spammer analyzes it even if it drinks and setting questions obtained by Jo and L is buried under HTML simply might be not difficult the easy specification of the answer. This module is made easy not to be analyzed by burying the setting questions under the code of the JAVA script. The method of this module is called reading by way of L to use it and setting questions is acquired. Then, if it is buried under the HTML source, it is completion because the code of the JAVA script returns. * Because the SCRIPT tag is not contained in the output code, it is necessary to write it in independence. =head1 METHODS =head2 question2js ([ELEMENT_ID], [SEPARATOR]) The question method is called internally, the setting questions is buried under the code of the JAVA script, and it returns it. ELEMENT_ID is burial previous element ID. SEPARATOR is a character to make setting questions divide into parts. Default is a blank. In a word, data of setting questions should make it moderately make to dividing into parts beforehand with this separator. my $js_source= $q->$q->question2js('question_disp', ':'); =head2 question2js_multibyte ([ELEMENT_ID], [SEPARATOR]) When multi byte character is included in the problem data, URI is encoded though the done thing is quite the same as question2js. * The JAVA script error occurs including the sign of ASKII. It is safe to make the problem data only from multi byte character. my $js_source= $q->$q->question2js('question_disp', '#'); =head1 SEE ALSO L, L, L, L, =head1 AUTHOR Masatoshi Mizuno ElusheE<64>cpan.orgE =head1 COPYRIGHT AND LICENSE Copyright (C) 2008 by Bee Flag, Corp. Ehttp://egg.bomcity.com/E. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available. =cut