From: <de...@de...> - 2010-10-31 06:20:48
|
Author: PeterThoeny Date: 2010-10-31 01:20:35 -0500 (Sun, 31 Oct 2010) New Revision: 19618 Trac url: http://develop.twiki.org/trac/changeset/19618 Added: twiki/branches/TWikiRelease05x00/EmailObfuscationPlugin/ twiki/branches/TWikiRelease05x00/EmailObfuscationPlugin/data/ twiki/branches/TWikiRelease05x00/EmailObfuscationPlugin/data/TWiki/ twiki/branches/TWikiRelease05x00/EmailObfuscationPlugin/data/TWiki/EmailObfuscationPlugin.txt twiki/branches/TWikiRelease05x00/EmailObfuscationPlugin/lib/ twiki/branches/TWikiRelease05x00/EmailObfuscationPlugin/lib/TWiki/ twiki/branches/TWikiRelease05x00/EmailObfuscationPlugin/lib/TWiki/Plugins/ twiki/branches/TWikiRelease05x00/EmailObfuscationPlugin/lib/TWiki/Plugins/EmailObfuscationPlugin.pm Log: Item6530: Initial checkin of old plugin Added: twiki/branches/TWikiRelease05x00/EmailObfuscationPlugin/data/TWiki/EmailObfuscationPlugin.txt =================================================================== --- twiki/branches/TWikiRelease05x00/EmailObfuscationPlugin/data/TWiki/EmailObfuscationPlugin.txt (rev 0) +++ twiki/branches/TWikiRelease05x00/EmailObfuscationPlugin/data/TWiki/EmailObfuscationPlugin.txt 2010-10-31 06:20:35 UTC (rev 19618) @@ -0,0 +1,68 @@ +%META:TOPICINFO{author="StephenGordon" date="1147838909" format="1.1" version="1.3"}% +---+!! <nop>%TOPIC% + +This plugin replaces characters in email address with their appropriate HTML entity references. This is intended to help prevent email harvesters from recognising addresses. + +%TOC% + +---++ Syntax Rules + + * N/A + +---++ Examples + + * us...@ex... (If you view source you should see that the string is encoded). + +---++ Plugin Settings + +Plugin settings are stored as preferences variables. To reference a plugin setting write ==%<nop><plugin>_<setting>%==, i.e. ==%<nop>NEWPLUGIN_SHORTDESCRIPTION%== + + * Set SHORTDESCRIPTION = Obstuficates e-mail addresses by characters to their HTML character entity references. + + * Debug plugin: (See output in =data/debug.txt=) + * Set DEBUG = 0 + + * Range of characters to encode (*NOTE:* Setting a bad range here can result in your TWiki not displaying content, please ensure that a correct range is used and that the Plugin topic is locked to Main.TWikiAdminGroup): + * Set ESCAPELIST = \000-\056\072-\100\133-\140\173-\177 + +---++ Plugin Installation Instructions + +__Note:__ You do not need to install anything on the browser to use this plugin. The following instructions are for the administrator who installs the plugin on the TWiki server. + + * Ensure you have the HTML::Entities module installed from CPAN. + * Download the ZIP file from the Plugin web (see below) + * Unzip ==%TOPIC%.zip== in your twiki installation directory. Content: + | *File:* | *Description:* | + | ==data/TWiki/%TOPIC%.txt== | Plugin topic | + | ==data/TWiki/%TOPIC%.txt,v== | Plugin topic repository | + | ==lib/TWiki/Plugins/%TOPIC%.pm== | Plugin Perl module | + * Configure the Plugin: + * TWiki 4.0 and up: Run the [[%SCRIPTURL%/configure%SCRIPTSUFFIX%][configure]] script to enable the Plugin + * Change the Plugin settings as needed + +---++ Plugin Info + +| Plugin Author: | TWiki:Main.StephenGordon | +| Copyright: | © 2006, TWiki:Main.StephenGordon | +| License: | GPL ([[http://www.gnu.org/copyleft/gpl.html][GNU General Public License]]) | +| Plugin Version: | %DATE% (V1.000) | +| Change History: | <!-- versions below in reverse order --> | +| %DATE%: | Initial version | +| TWiki Dependency: | $TWiki::Plugins::VERSION 1.1 | +| CPAN Dependencies: | HTML::Entities | +| Other Dependencies: | none | +| Perl Version: | 5.005 | +| [[TWiki:Plugins/Benchmark][Benchmarks]]: | %TWIKIWEB%.GoodStyle 98%, %TWIKIWEB%.FormattedSearch 99%, %TOPIC% 98% | +| Plugin Home: | http://TWiki.org/cgi-bin/view/Plugins/%TOPIC% | +| Feedback: | http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%Dev | +| Appraisal: | http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%Appraisal | + +__Related Topics:__ %TWIKIWEB%.TWikiPlugins, %TWIKIWEB%.DeveloperDocumentationCategory, %TWIKIWEB%.AdminDocumentationCategory, %TWIKIWEB%.TWikiPreferences + +-- TWiki:Main.%USERNAME% - %DATE% + + + * Set ALLOWTOPICCHANGE = %MAINWEB%.TWikiAdminGroup + +%META:FILEATTACHMENT{name="EmailObstuficationPlugin.zip" attachment="EmailObstuficationPlugin.zip" attr="" comment="Initial release" date="1147828901" path="EmailObstuficationPlugin.zip" size="5435" stream="EmailObstuficationPlugin.zip" user="Main.StephenGordon" version="3"}% +%META:TOPICMOVED{by="StephenGordon" date="1147838909" from="TWiki.EmailObstuficationPlugin" to="TWiki.EmailObfuscationPlugin"}% Added: twiki/branches/TWikiRelease05x00/EmailObfuscationPlugin/lib/TWiki/Plugins/EmailObfuscationPlugin.pm =================================================================== --- twiki/branches/TWikiRelease05x00/EmailObfuscationPlugin/lib/TWiki/Plugins/EmailObfuscationPlugin.pm (rev 0) +++ twiki/branches/TWikiRelease05x00/EmailObfuscationPlugin/lib/TWiki/Plugins/EmailObfuscationPlugin.pm 2010-10-31 06:20:35 UTC (rev 19618) @@ -0,0 +1,92 @@ +# EmailObfuscationPlugin +# +# Copyright (C) 2006 Stephen Gordon, sg...@es... + +# Plugin for TWiki Enterprise Collaboration Platform, http://TWiki.org/ +# +# Copyright (C) 2000-2003 Andrea Sterbini, a.s...@fl... +# Copyright (C) 2001-2006 Peter Thoeny, pe...@th... +# and TWiki Contributors. All Rights Reserved. TWiki Contributors +# are listed in the AUTHORS file in the root of this distribution. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. For +# more details read LICENSE in the root of this distribution. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# +# For licensing info read LICENSE file in the TWiki root. + +=pod + +---+ package EmailObfuscationPlugin + +This plugin replaces that @ symbol in an email address with a proper +HTML character entity which causes many email harvesters to fail +to recognise an address while appearing as normal to all valid browsers. + +=cut + +use HTML::Entities (); + +package TWiki::Plugins::EmailObfuscationPlugin; + +use strict; + +use vars qw( $VERSION $RELEASE $debug $pluginName ); + +$VERSION = '$Rev: 9598$'; + +$RELEASE = 'Dakar'; + +$pluginName = 'EmailObfuscationPlugin'; + +my $ESCAPELIST; + +=pod + +---++ initPlugin($topic, $web, $user, $installWeb) -> $boolean + * =$topic= - the name of the topic in the current CGI query + * =$web= - the name of the web in the current CGI query + * =$user= - the login name of the user + * =$installWeb= - the name of the web the plugin is installed in + +=cut + +sub initPlugin { + my( $topic, $web, $user, $installWeb ) = @_; + + # check for Plugins.pm versions + if( $TWiki::Plugins::VERSION < 1.026 ) { + TWiki::Func::writeWarning( "Version mismatch between $pluginName and Plugins.pm" ); + return 0; + } + + # Plugin correctly initialized + &TWiki::Func::writeDebug( "- TWiki::Plugins::$pluginName::initPlugin( $web.$topic ) is OK" ) if $debug; + + $ESCAPELIST = TWiki::Func::getPreferencesValue( "\U$pluginName\E_ESCAPELIST" ) || "\000-\056\072-\100\133-\140\173-\177"; + + # Plugin correctly initialized + return 1; +} + +=pod + +---++ postRenderingHandler( $text ) + * =$text= - the text that has just been rendered. May be modified in place. +=cut +sub postRenderingHandler { + # do not uncomment, use $_[0], $_[1]... instead + #my $text = shift; + TWiki::Func::writeDebug( " TWiki::Plugins::$pluginName::postRenderingHandler( $_[2].$_[1] )" ) if $debug; + + $_[0] =~ s/((mailto:)?[a-zA-Z0-9-_.+]+\@[a-zA-Z0-9-_.]+\.[a-zA-Z0-9-_]+)/HTML::Entities::encode_entities_numeric( $1, $ESCAPELIST )/gem; + +} + +1; Property changes on: twiki/branches/TWikiRelease05x00/EmailObfuscationPlugin/lib/TWiki/Plugins/EmailObfuscationPlugin.pm ___________________________________________________________________ Name: svn:executable + * |