Changeset 261 for captcha/trunk/plugins

Show
Ignore:
Timestamp:
10/08/06 01:23:10 (2 years ago)
Author:
ogawa
Message:

Now users can customize the captcha template.

Location:
captcha/trunk/plugins/captcha
Files:
4 modified

Legend:

Unmodified
Added
Removed
  • captcha/trunk/plugins/captcha/captcha.pl

    r259 r261  
    1717use Authen::Captcha; 
    1818use base 'MT::Plugin'; 
    19 our $VERSION = '0.11'; 
     19our $VERSION = '0.12'; 
    2020 
    2121my $dirname = dirname(__FILE__); 
     
    3838        ['captcha_images_url', { Default => $cgipath . 'plugins/captcha/images/' }], 
    3939        ['captcha_images_path', { Default => File::Spec->catdir($dirname, 'images') }], 
     40        ['captcha_tmpl', { Default => qq(<div id="comment-captcha-block">\n\t<input type="hidden" name="captcha_md5" value="[captcha_md5]" />\n\t<label for="comment-captcha">CAPTCHA&trade; Code:</label>\n\t<img src="[captcha_img]" width="[captcha_img_width]" height="[captcha_img_height]" alt="CAPTCHA Image" />\n\t<input type="text" id="comment-captcha" name="captcha_code" value="" length="[captcha_length]" maxlength="[captcha_length]" />\n</div>\n) }], 
    4041    ]), 
    4142}); 
  • captcha/trunk/plugins/captcha/captcha_js.cgi

    r259 r261  
    4949        if $captcha->can('secret'); 
    5050    $captcha->output_folder($cfg->{captcha_images_path}); 
    51     my $captcha_length = $cfg->{captcha_length} || 5; 
    52     my $captcha_md5 = $captcha->generate_code($captcha_length); 
    53     my $captcha_img = $cfg->{captcha_images_url}; 
    54     $captcha_img .= '/' if $captcha_img !~ m!/$!; 
    55     $captcha_img .= $captcha_md5 . '.png'; 
    56     my $captcha_img_width = 25 * $captcha_length; 
    57     my $captcha_img_height = 35; 
     51 
     52    my %captcha; 
     53    $captcha{length} = $cfg->{captcha_length} || 5; 
     54    $captcha{md5} = $captcha->generate_code($captcha{length}); 
     55    $captcha{img} = $cfg->{captcha_images_url}; 
     56    $captcha{img} .= '/' if $captcha{img} !~ m!/$!; 
     57    $captcha{img} .= $captcha{md5}. '.png'; 
     58    $captcha{img_width} = 25 * $captcha{length}; 
     59    $captcha{img_height} = 35; 
     60 
     61    my $tmpl =  $cfg->{captcha_tmpl}; 
     62    $tmpl =~ s/\[captcha_([^]]+)\]/$captcha{$1}/g; 
    5863 
    5964    print $q->header('text/javascript'); 
    60     print <<EOD; 
    61 if (!commenter_name) { 
    62   document.writeln('<div id="comment-captcha-block">'); 
    63   document.writeln('<input type="hidden" name="captcha_md5" value="$captcha_md5" />'); 
    64   document.writeln('<label for="comment-captcha">CAPTCHA&trade; Code:</label>'); 
    65   document.writeln('<img src="$captcha_img" width="$captcha_img_width" height="$captcha_img_height" alt="CAPTCHA Image" />'); 
    66   document.writeln('<input type="text" id="comment-captcha" name="captcha_code" value="" length="$captcha_length" maxlength="$captcha_length" />'); 
    67   document.writeln('</div>'); 
    68 } 
    69 EOD 
     65    print "if (!commenter_name) {\n"; 
     66    print "\tdocument.writeln('$_');\n" foreach split(/\r?\n/, $tmpl); 
     67    print "}\n"; 
    7068} 
    7169 
  • captcha/trunk/plugins/captcha/captcha_js.fcgi

    r259 r261  
    5353        if $captcha->can('secret'); 
    5454    $captcha->output_folder($cfg->{captcha_images_path}); 
    55     my $captcha_length = $cfg->{captcha_length} || 5; 
    56     my $captcha_md5 = $captcha->generate_code($captcha_length); 
    57     my $captcha_img = $cfg->{captcha_images_url}; 
    58     $captcha_img .= '/' if $captcha_img !~ m!/$!; 
    59     $captcha_img .= $captcha_md5 . '.png'; 
    60     my $captcha_img_width = 25 * $captcha_length; 
    61     my $captcha_img_height = 35; 
     55 
     56    my %captcha; 
     57    $captcha{length} = $cfg->{captcha_length} || 5; 
     58    $captcha{md5} = $captcha->generate_code($captcha{length}); 
     59    $captcha{img} = $cfg->{captcha_images_url}; 
     60    $captcha{img} .= '/' if $captcha{img} !~ m!/$!; 
     61    $captcha{img} .= $captcha{md5}. '.png'; 
     62    $captcha{img_width} = 25 * $captcha{length}; 
     63    $captcha{img_height} = 35; 
     64 
     65    my $tmpl =  $cfg->{captcha_tmpl}; 
     66    $tmpl =~ s/\[captcha_([^]]+)\]/$captcha{$1}/g; 
    6267 
    6368    print $q->header('text/javascript'); 
    64     print <<EOD; 
    65 if (!commenter_name) { 
    66   document.writeln('<div id="comment-captcha-block">'); 
    67   document.writeln('<input type="hidden" name="captcha_md5" value="$captcha_md5" />'); 
    68   document.writeln('<label for="comment-captcha">CAPTCHA&trade; Code:</label>'); 
    69   document.writeln('<img src="$captcha_img" width="$captcha_img_width" height="$captcha_img_height" alt="CAPTCHA Image" />'); 
    70   document.writeln('<input type="text" id="comment-captcha" name="captcha_code" value="" length="$captcha_length" maxlength="$captcha_length" />'); 
    71   document.writeln('</div>'); 
    72 } 
    73 EOD 
     69    print "if (!commenter_name) {\n"; 
     70    print "\tdocument.writeln('$_');\n" foreach split(/\r?\n/, $tmpl); 
     71    print "}\n"; 
    7472} 
    7573 
  • captcha/trunk/plugins/captcha/tmpl/config.tmpl

    r254 r261  
    3535  </div> 
    3636</div> 
     37<div class="setting"> 
     38  <div class="label"><label for="captcha_tmpl"><MT_TRANS phrase="Captcha Template:"></label></div> 
     39  <div class="field"> 
     40    <p>I don't recommend modifying this template if you don't know how it works.</p> 
     41    <textarea name="captcha_tmpl" id="captcha_tmpl" cols="60" rows="6"><TMPL_VAR NAME=CAPTCHA_TMPL ESCAPE=HTML></textarea> 
     42  </div> 
     43</div>