Dashboard > blojsom 3.0 > ... > Plugins > SCode Plugin
  blojsom 3.0 Log In   View a printable version of the current page.  
  SCode Plugin
Added by Cliffano Subagio, last edited by Cliffano Subagio on Dec 23, 2007  (view change)
Labels: 

Availability

SCode Plugin v0.4 and v0.5 are available at Blojsom3 Plugins download page.

Description

SCode Plugin creates a CAPTCHA image of a random security code numbers which would be used to prevent comment spam.

Dependencies

Commons Lang v2.2
JCaptcha v1.0RC2.0.1 (for gradient and funky flavors)
Kaptcha v1.1 (for kink, fisheye, and shadow flavors)

Upgrade Instruction

From v0.4 to v0.5

Installation and Setup

Place scodeplugin-x.y.jar, commons-lang-2.2.jar, jcaptcha-all-1.0-RC-2.0.1.jar, and kaptcha-1.1.jar in /WEB-INF/lib/ directory.

Add the following to /WEB-INF/classes/blojsom-plugins.xml file (only copy and paste the bits relevant to the version of scode you're using).

<!-- START CONFIGURATION FOR SCODE PLUGIN VERSION 0.5 -->
<bean id="scodeSimpleImageEngine" class="com.mbledug.blojsom.plugin.scode.engine.SimpleImageEngine"/>
<bean id="scodeGradientImageEngine" class="com.mbledug.blojsom.plugin.scode.engine.GradientImageEngine"/>
<bean id="scodeFunkyImageEngine" class="com.mbledug.blojsom.plugin.scode.engine.FunkyImageEngine"/>
<bean id="scodeKinkImageEngine" class="com.mbledug.blojsom.plugin.scode.engine.KinkImageEngine"/>
<bean id="scodeFishEyeImageEngine" class="com.mbledug.blojsom.plugin.scode.engine.FishEyeImageEngine"/>
<bean id="scodeShadowImageEngine" class="com.mbledug.blojsom.plugin.scode.engine.ShadowImageEngine"/>
<bean id="scodeImageFactory" class="com.mbledug.blojsom.plugin.scode.ImageFactory">
    <constructor-arg>
        <map>
            <entry key="simple" value-ref="scodeSimpleImageEngine"/>
            <entry key="gradient" value-ref="scodeGradientImageEngine"/>
            <entry key="funky" value-ref="scodeFunkyImageEngine"/>
            <entry key="kink" value-ref="scodeKinkImageEngine"/>
            <entry key="fisheye" value-ref="scodeFishEyeImageEngine"/>
            <entry key="shadow" value-ref="scodeShadowImageEngine"/>
        </map>
    </constructor-arg>
</bean>
<bean id="scode" class="com.mbledug.blojsom.plugin.scode.SCodePlugin" init-method="init" destroy-method="destroy">
    <constructor-arg>
        <ref bean="scodeImageFactory"/>
    </constructor-arg>
</bean>
<!-- END CONFIGURATION FOR SCODE PLUGIN VERSION 0.5 -->

<!-- START CONFIGURATION FOR SCODE PLUGIN VERSION 0.4 -->
<bean id="scode" class="com.mbledug.blojsom.plugin.scode.SCodePlugin" init-method="init" destroy-method="destroy">
    <constructor-arg>
        <map>
            <entry key="simple" value="com.mbledug.blojsom.plugin.scode.engine.SimpleImageEngine"/>
            <entry key="gradient" value="com.mbledug.blojsom.plugin.scode.engine.GradientImageEngine"/>
            <entry key="funky" value="com.mbledug.blojsom.plugin.scode.engine.FunkyImageEngine"/>
        </map>
    </constructor-arg>
</bean>
<!-- END CONFIGURATION FOR SCODE PLUGIN VERSION 0.4 -->

Add the following to /WEB-INF/web.xml file.

<servlet>
    <servlet-name>SCode</servlet-name>
    <servlet-class>com.mbledug.blojsom.plugin.scode.SCodeServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>SCode</servlet-name>
    <url-pattern>/scode</url-pattern>
</servlet-mapping>

Modify HTML plugin chain from Blojsom administration menu plugins->mappings
Add "scode" to one of the flavor-based plugin chains. You must place it before "comment" within the chain, for example:

html ..., scode, ..., comment, ...

Configure SCode properties from Blojsom administration menu weblog settings->properties->set property

Property Sample Value Description
scode-enabled true Enable SCode Plugin.

Make sure the following Java system property is set if running blojsom in a server environment without a display:

-Djava.awt.headless=true
Headless Hosting

Some BSD/Linux virtual private/dedicated server hosts do not load the libraries necessary to run Java in a headless environment.

If you have root on a host missing X11 support, load the libraries with your favorite updater.

See Philip Isenhour's Linux X11 Libraries for Headless Mode for background and detailed notes. YMMV depending on OS, Java version, updating tool, and memory and storage limits with the host.

Usage

Add SCode input textfield to your comment form:
E.g. for asual theme, add the code below to asual-entry.vm template.

<form id="commentform" method="post" action="$permalink">
  ...
      <!-- START SCODE PLUGIN -->
      <script type="text/javascript">
        function reloadSCode() {
          var scodeImage = document.getElementById("scodeImage");
          scodeImage.src = "$BLOJSOM_BLOG.getBlogBaseURL()/scode?flavor=kink&t=" + (new Date()).getMilliseconds();
        }
      </script>
      <p>
        <span class="section">SCode:</span> (<span class="mandatory">*</span>)
        <a href="javascript: reloadSCode();">Generate another code</a>
        <br/>
        <img id="scodeImage" src="$BLOJSOM_BLOG.getBlogBaseURL()/scode?flavor=kink" alt="SCode"/><br/>
        <input type="text" name="scode" size="6" maxlength="6"/><br/>
        Please enter the code as seen in the image above to post your comment.
      </p>
      <!-- END SCODE PLUGIN -->
  ...
</form>

There are currently 6 available flavors:

v0.4 onward:
funky
gradient
simple

v0.5 onward:
kink
fisheye
shadow

Extending

Create your own image engine by implementing com.mbledug.blojsom.plugin.scode.engine.ImageEngine interface.

Add the flavor to scode bean:

<bean id="scodeYourImageEngine" class="your.package.YourImageEngine"/>
<bean id="scodeImageFactory" class="com.mbledug.blojsom.plugin.scode.ImageFactory">
    <constructor-arg>
        <map>
            ...
            <entry key="simple" value-ref="scodeYourImageEngine"/>
        </map>
    </constructor-arg>
</bean>

Display the SCode image with the new flavour.

<img src="$BLOJSOM_BLOG.getBlogBaseURL()/scode?flavor=newflavor" alt="SCode"/><br/>

Demo

Melbourne Photoblog

Site running on a free Atlassian Confluence Open Source Project License granted to blojsom. Evaluate Confluence today.
Powered by Atlassian Confluence, the Enterprise Wiki. (Version: 2.5.4 Build:#809 Jun 12, 2007) - Bug/feature request - Contact Administrators