Topic: haw to extension 1.3 must for1.4

haw to extension 1.3 must for1.4   ???
extension exist he action do ???

2

Re: haw to extension 1.3 must for1.4

You should just change maxtestedon version in manifest.xml
But not every extension will work.

3 (edited by safenkurdstany 2013-01-22 21:06)

Re: haw to extension 1.3 must for1.4

I examination but don't  he's allege  not  encourage
disproportionate
you can he's action
say me editor what do
manifest.xml anti spam

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE extension SYSTEM "ext-1.0.dtd">

<!--
/**
 * Adds CAPTCHA to the register, login and guest post form
 *
 * @copyright Copyright (C) 2008 PunBB, partially based on code by Jamie Furness
 * @license http://www.gnu.org/licenses/gpl.html GPL version 2 or higher
 * @package pun_antispam
 */
-->

    <extension engine="1.0">
    <id>pun_antispam</id>
    <title>Antispam System</title>
    <version>1.2</version>
    <description>Adds CAPTCHA to the register, login and guest post form.</description>
    <author>PunBB Development Team</author>
    <minversion>1.3dev</minversion>
    <maxtestedon>1.3</maxtestedon>

    <install><![CDATA[

if(!function_exists('imagejpeg'))
    message('This extension requires the <a href="http://www.php.net/gd">PHP GD library</a> to be installed.');

if (!isset($forum_config['o_pun_antispam_captcha_register']))
{
    $query = array(
        'INSERT'    => 'conf_name, conf_value',
        'INTO'        => 'config',
        'VALUES'    => '\'o_pun_antispam_captcha_register\', \'1\''
    );
    $forum_db->query_build($query) or error(__FILE__, __LINE__);
}

if (!isset($forum_config['o_pun_antispam_captcha_guestpost']))
{
    $query = array(
        'INSERT'    => 'conf_name, conf_value',
        'INTO'        => 'config',
        'VALUES'    => '\'o_pun_antispam_captcha_guestpost\', \'1\''
    );
    $forum_db->query_build($query) or error(__FILE__, __LINE__);
}

if (!isset($forum_config['o_pun_antispam_captcha_login']))
{
    $query = array(
        'INSERT'    => 'conf_name, conf_value',
        'INTO'        => 'config',
        'VALUES'    => '\'o_pun_antispam_captcha_login\', \'1\''
    );
    $forum_db->query_build($query) or error(__FILE__, __LINE__);
}

if (!isset($forum_config['o_pun_antispam_captcha_restorepass']))
{
    $query = array(
        'INSERT'    => 'conf_name, conf_value',
        'INTO'        => 'config',
        'VALUES'    => '\'o_pun_antispam_captcha_restorepass\', \'1\''
    );
    $forum_db->query_build($query) or error(__FILE__, __LINE__);
}
    ]]></install>

    <uninstall><![CDATA[
$query = array(
    'DELETE'    =>    'config',
    'WHERE'        =>    'conf_name IN (\'o_pun_antispam_captcha_register\', \'o_pun_antispam_captcha_guestpost\', \'o_pun_antispam_captcha_login\', \'o_pun_antispam_captcha_restorepass\')'
);
$forum_db->query_build($query) or error(__FILE__, __LINE__);
    ]]></uninstall>

    <hooks>
        <hook id="rg_start,aop_start,li_start,po_start"><![CDATA[
// Load the captcha language file
if (file_exists($ext_info['path'].'/lang/'.$forum_user['language'].'/'.$ext_info['id'].'.php'))
    require $ext_info['path'].'/lang/'.$forum_user['language'].'/'.$ext_info['id'].'.php';
else
    require $ext_info['path'].'/lang/English/'.$ext_info['id'].'.php';
        ]]></hook>

        <hook id="rg_register_form_submitted"><![CDATA[
if ($forum_config['o_pun_antispam_captcha_register'] == '1')
{
    session_start();

    if (empty($_SESSION['pun_antispam_confirmed_user']))
    {
        if ((empty($_SESSION['pun_antispam_text']) || strcasecmp(trim($_POST['pun_antispam_input']), $_SESSION['pun_antispam_text']) !== 0))
            $errors[] = $lang_pun_antispam['Invalid Text'];
        else
            $_SESSION['pun_antispam_confirmed_user'] = 1;
    }

    $_SESSION['pun_antispam_text'] = '';
}
        ]]></hook>

        <hook id="rg_register_pre_add_user"><![CDATA[
$_SESSION['pun_antispam_confirmed_user'] = 0;
        ]]></hook>

        <hook id="rg_register_pre_language"><![CDATA[
if ($forum_config['o_pun_antispam_captcha_register'] == '1' && empty($_SESSION['pun_antispam_confirmed_user']))
{
?>
                <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>">
                    <div class="sf-box text required">
                        <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_pun_antispam['Captcha'] ?> <em><?php echo $lang_common['Required'] ?></em></span> <small><?php echo $lang_pun_antispam['Captcha Info'] ?></small></label><br />
                        <span class="fld-input"><input id="fld<?php echo $forum_page['fld_count'] ?>" type="text" name="pun_antispam_input" value="" size="20" maxlength="10" />&nbsp;&nbsp;&nbsp;<img src="<?php echo $ext_info['url'].'/image.php?'.md5(time()) ?>" alt="" /></span>
                    </div>
                </div>
<?php
}
        ]]></hook>

        <hook id="li_login_form_submitted"><![CDATA[
session_start();

if ($forum_config['o_pun_antispam_captcha_login'] == '1' && (isset($_SESSION['pun_antispam_logins']) && $_SESSION['pun_antispam_logins'] > 5) && (empty($_SESSION['pun_antispam_text']) || strcasecmp(trim($_POST['pun_antispam_input']), $_SESSION['pun_antispam_text']) !== 0))
    $errors[] = $lang_pun_antispam['Invalid Text'];

$_SESSION['pun_antispam_text'] = '';
        ]]></hook>

        <hook id="li_login_pre_auth_message"><![CDATA[
if ($authorized && empty($errors))
    $_SESSION['pun_antispam_logins'] = 0;
        ]]></hook>

        <hook id="li_login_pre_remember_me_checkbox"><![CDATA[
if ($forum_config['o_pun_antispam_captcha_login'] == '1')
{
    if (empty($errors))
        session_start();

    // Output CAPTCHA if first attempts failed
    if (!isset($_SESSION['pun_antispam_logins']))
        $_SESSION['pun_antispam_logins'] = 1;
    else
        $_SESSION['pun_antispam_logins']++;

    if ($_SESSION['pun_antispam_logins'] > 5)
    {
?>
                <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>">
                    <div class="sf-box text required">
                        <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_pun_antispam['Captcha'] ?> <em><?php echo $lang_common['Required'] ?></em></span> <small><?php echo $lang_pun_antispam['Captcha Info'] ?></small></label><br />
                        <span class="fld-input"><input id="fld<?php echo $forum_page['fld_count'] ?>" type="text" name="pun_antispam_input" value="" size="20" maxlength="10" />&nbsp;&nbsp;&nbsp;<img src="<?php echo $ext_info['url'].'/image.php?'.md5(time()) ?>" alt="" /></span>
                    </div>
                </div>
<?php
    }
}
        ]]></hook>

        <hook id="li_forgot_pass_selected"><![CDATA[
if (isset($_POST['form_sent']))
{
    session_start();

    if ($forum_config['o_pun_antispam_captcha_restorepass'] == '1' && (empty($_SESSION['pun_antispam_text']) || strcasecmp(trim($_POST['pun_antispam_input']), $_SESSION['pun_antispam_text']) !== 0))
        $errors[] = $lang_pun_antispam['Invalid Text'];

    $_SESSION['pun_antispam_text'] = '';
}
        ]]></hook>

        <hook id="li_forgot_pass_pre_group_end"><![CDATA[
if ($forum_config['o_pun_antispam_captcha_restorepass'] == '1')
{
?>
                <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>">
                    <div class="sf-box text required">
                        <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_pun_antispam['Captcha'] ?> <em><?php echo $lang_common['Required'] ?></em></span> <small><?php echo $lang_pun_antispam['Captcha Info'] ?></small></label><br />
                        <span class="fld-input"><input id="fld<?php echo $forum_page['fld_count'] ?>" type="text" name="pun_antispam_input" value="" size="20" maxlength="10" />&nbsp;&nbsp;&nbsp;<img src="<?php echo $ext_info['url'].'/image.php?'.md5(time()) ?>" alt="" /></span>
                    </div>
                </div>
<?php
}
        ]]></hook>

        <hook id="po_end_validation"><![CDATA[
if ($forum_user['is_guest'] && $forum_config['o_pun_antispam_captcha_guestpost'] == '1')
{
    session_start();

    if (empty($_SESSION['pun_antispam_confirmed_user']))
    {
        if ((empty($_SESSION['pun_antispam_text']) || strcasecmp(trim($_POST['pun_antispam_input']), $_SESSION['pun_antispam_text']) !== 0))
        {
            if (!isset($_POST['preview']))
                $errors[] = $lang_pun_antispam['Invalid Text'];
        }
        else
            $_SESSION['pun_antispam_confirmed_user'] = 1;
    }

    $_SESSION['pun_antispam_text'] = '';

    // Post is to be written to DB, ask CAPTCHA for the next posting
    if (empty($errors) && !isset($_POST['preview']))
        $_SESSION['pun_antispam_confirmed_user'] = 0;
}
        ]]></hook>

        <hook id="po_pre_guest_info_fieldset_end"><![CDATA[
if ($forum_config['o_pun_antispam_captcha_guestpost'] == '1' && empty($_SESSION['pun_antispam_confirmed_user']))
{
?>
                <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>">
                    <div class="sf-box text required">
                        <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_pun_antispam['Captcha'] ?> <em><?php echo $lang_common['Required'] ?></em></span> <small><?php echo $lang_pun_antispam['Captcha Info'] ?></small></label><br />
                        <span class="fld-input"><input id="fld<?php echo $forum_page['fld_count'] ?>" type="text" name="pun_antispam_input" value="" size="20" maxlength="10" />&nbsp;&nbsp;&nbsp;<img src="<?php echo $ext_info['url'].'/image.php?'.md5(time()) ?>" alt="" /></span>
                    </div>
                </div>
<?php
}
        ]]></hook>

        <hook id="aop_features_avatars_fieldset_end"><![CDATA[

$forum_page['group_count'] = $forum_page['item_count'] = 0;

?>
            <div class="content-head">
                <h2 class="hn"><span><?php echo $lang_pun_antispam['Captcha admin head'] ?></span></h2>
            </div>
            <div class="ct-box"><p><?php echo $lang_pun_antispam['Captcha admin info'] ?></p></div>
            <fieldset class="frm-group group<?php echo ++$forum_page['group_count'] ?>">
                <legend class="group-legend"><span><?php echo $lang_pun_antispam['Captcha admin legend'] ?></span></legend>
                <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>">
                    <div class="sf-box checkbox">
                        <span class="fld-input"><input type="checkbox" id="fld<?php echo ++$forum_page['fld_count'] ?>" name="form[pun_antispam_captcha_register]" value="1"<?php if ($forum_config['o_pun_antispam_captcha_register'] == '1') echo ' checked="checked"' ?> /></span>
                        <label for="fld<?php echo $forum_page['fld_count'] ?>"><span><?php echo $lang_pun_antispam['Captcha admin legend'] ?></span><?php echo $lang_pun_antispam['Captcha registrations info'] ?></label>
                    </div>
                </div>
                <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>">
                    <div class="sf-box checkbox">
                        <span class="fld-input"><input type="checkbox" id="fld<?php echo ++$forum_page['fld_count'] ?>" name="form[pun_antispam_captcha_login]" value="1"<?php if ($forum_config['o_pun_antispam_captcha_login'] == '1') echo ' checked="checked"' ?> /></span>
                        <label for="fld<?php echo $forum_page['fld_count'] ?>"> <?php echo $lang_pun_antispam['Captcha login info'] ?></label>
                    </div>
                </div>
                <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>">
                    <div class="sf-box checkbox">
                        <span class="fld-input"><input type="checkbox" id="fld<?php echo ++$forum_page['fld_count'] ?>" name="form[pun_antispam_captcha_guestpost]" value="1"<?php if ($forum_config['o_pun_antispam_captcha_guestpost'] == '1') echo ' checked="checked"' ?> /></span>
                        <label for="fld<?php echo $forum_page['fld_count'] ?>"> <?php echo $lang_pun_antispam['Captcha guestpost info'] ?></label>
                    </div>
                </div>
                <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>">
                    <div class="sf-box checkbox">
                        <span class="fld-input"><input type="checkbox" id="fld<?php echo ++$forum_page['fld_count'] ?>" name="form[pun_antispam_captcha_restorepass]" value="1"<?php if ($forum_config['o_pun_antispam_captcha_restorepass'] == '1') echo ' checked="checked"' ?> /></span>
                        <label for="fld<?php echo $forum_page['fld_count'] ?>"> <?php echo $lang_pun_antispam['Captcha reset info'] ?></label>
                    </div>
                </div>
            </fieldset>
<?php

// Reset fieldset counter
$forum_page['set_count'] = 0;
        ]]></hook>

        <hook id="aop_features_validation"><![CDATA[
if (!isset($form['pun_antispam_captcha_register']) || $form['pun_antispam_captcha_register'] != '1') $form['pun_antispam_captcha_register'] = '0';
if (!isset($form['pun_antispam_captcha_login']) || $form['pun_antispam_captcha_login'] != '1') $form['pun_antispam_captcha_login'] = '0';
if (!isset($form['pun_antispam_captcha_guestpost']) || $form['pun_antispam_captcha_guestpost'] != '1') $form['pun_antispam_captcha_guestpost'] = '0';
if (!isset($form['pun_antispam_captcha_restorepass']) || $form['pun_antispam_captcha_restorepass'] != '1') $form['pun_antispam_captcha_restorepass'] = '0';
        ]]></hook>

        <hook id="co_common"><![CDATA[
$pun_extensions_used = array_merge(isset($pun_extensions_used) ? $pun_extensions_used : array(), array($ext_info['id']));
        ]]></hook>

        <hook id="ft_about_end" priority="10"><![CDATA[
if (!defined('PUN_EXTENSIONS_USED') && !empty($pun_extensions_used))
{
    define('PUN_EXTENSIONS_USED', 1);
    echo '<p id="extensions-used">Currently used extensions: '.implode(', ', $pun_extensions_used).'. Copyright &copy; 2008 <a href="http://punbb.informer.com/">PunBB</a></p>';
}
        ]]></hook>
    </hooks>

</extension>

4

Re: haw to extension 1.3 must for1.4

Don't use this extension. Use pun_stop_bots and fancy_stop_spam.

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE extension SYSTEM "ext-1.0.dtd">

<!--
/**
 * Adds CAPTCHA to the register, login and guest post form
 *
 * @copyright Copyright (C) 2008 PunBB, partially based on code by Jamie Furness
 * @license http://www.gnu.org/licenses/gpl.html GPL version 2 or higher
 * @package pun_antispam
 */
-->

    <extension engine="1.0">
    <id>pun_antispam</id>
    <title>Antispam System</title>
    <version>1.2</version>
    <description>Adds CAPTCHA to the register, login and guest post form.</description>
    <author>PunBB Development Team</author>
    <minversion>1.3dev</minversion>
    <maxtestedon>1.4.2</maxtestedon>

    <install><![CDATA[

if(!function_exists('imagejpeg'))
    message('This extension requires the <a href="http://www.php.net/gd">PHP GD library</a> to be installed.');

if (!isset($forum_config['o_pun_antispam_captcha_register']))
{
    $query = array(
        'INSERT'    => 'conf_name, conf_value',
        'INTO'        => 'config',
        'VALUES'    => '\'o_pun_antispam_captcha_register\', \'1\''
    );
    $forum_db->query_build($query) or error(__FILE__, __LINE__);
}

if (!isset($forum_config['o_pun_antispam_captcha_guestpost']))
{
    $query = array(
        'INSERT'    => 'conf_name, conf_value',
        'INTO'        => 'config',
        'VALUES'    => '\'o_pun_antispam_captcha_guestpost\', \'1\''
    );
    $forum_db->query_build($query) or error(__FILE__, __LINE__);
}

if (!isset($forum_config['o_pun_antispam_captcha_login']))
{
    $query = array(
        'INSERT'    => 'conf_name, conf_value',
        'INTO'        => 'config',
        'VALUES'    => '\'o_pun_antispam_captcha_login\', \'1\''
    );
    $forum_db->query_build($query) or error(__FILE__, __LINE__);
}

if (!isset($forum_config['o_pun_antispam_captcha_restorepass']))
{
    $query = array(
        'INSERT'    => 'conf_name, conf_value',
        'INTO'        => 'config',
        'VALUES'    => '\'o_pun_antispam_captcha_restorepass\', \'1\''
    );
    $forum_db->query_build($query) or error(__FILE__, __LINE__);
}
    ]]></install>

    <uninstall><![CDATA[
$query = array(
    'DELETE'    =>    'config',
    'WHERE'        =>    'conf_name IN (\'o_pun_antispam_captcha_register\', \'o_pun_antispam_captcha_guestpost\', \'o_pun_antispam_captcha_login\', \'o_pun_antispam_captcha_restorepass\')'
);
$forum_db->query_build($query) or error(__FILE__, __LINE__);
    ]]></uninstall>

    <hooks>
        <hook id="rg_start,aop_start,li_start,po_start"><![CDATA[
// Load the captcha language file
if (file_exists($ext_info['path'].'/lang/'.$forum_user['language'].'/'.$ext_info['id'].'.php'))
    require $ext_info['path'].'/lang/'.$forum_user['language'].'/'.$ext_info['id'].'.php';
else
    require $ext_info['path'].'/lang/English/'.$ext_info['id'].'.php';
        ]]></hook>

        <hook id="rg_register_form_submitted"><![CDATA[
if ($forum_config['o_pun_antispam_captcha_register'] == '1')
{
    session_start();

    if (empty($_SESSION['pun_antispam_confirmed_user']))
    {
        if ((empty($_SESSION['pun_antispam_text']) || strcasecmp(trim($_POST['pun_antispam_input']), $_SESSION['pun_antispam_text']) !== 0))
            $errors[] = $lang_pun_antispam['Invalid Text'];
        else
            $_SESSION['pun_antispam_confirmed_user'] = 1;
    }

    $_SESSION['pun_antispam_text'] = '';
}
        ]]></hook>

        <hook id="rg_register_pre_add_user"><![CDATA[
$_SESSION['pun_antispam_confirmed_user'] = 0;
        ]]></hook>

        <hook id="rg_register_pre_language"><![CDATA[
if ($forum_config['o_pun_antispam_captcha_register'] == '1' && empty($_SESSION['pun_antispam_confirmed_user']))
{
?>
                <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>">
                    <div class="sf-box text required">
                        <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_pun_antispam['Captcha'] ?> <em><?php echo $lang_common['Required'] ?></em></span> <small><?php echo $lang_pun_antispam['Captcha Info'] ?></small></label><br />
                        <span class="fld-input"><input id="fld<?php echo $forum_page['fld_count'] ?>" type="text" name="pun_antispam_input" value="" size="20" maxlength="10" />&nbsp;&nbsp;&nbsp;<img src="<?php echo $ext_info['url'].'/image.php?'.md5(time()) ?>" alt="" /></span>
                    </div>
                </div>
<?php
}
        ]]></hook>

        <hook id="li_login_form_submitted"><![CDATA[
session_start();

if ($forum_config['o_pun_antispam_captcha_login'] == '1' && (isset($_SESSION['pun_antispam_logins']) && $_SESSION['pun_antispam_logins'] > 5) && (empty($_SESSION['pun_antispam_text']) || strcasecmp(trim($_POST['pun_antispam_input']), $_SESSION['pun_antispam_text']) !== 0))
    $errors[] = $lang_pun_antispam['Invalid Text'];

$_SESSION['pun_antispam_text'] = '';
        ]]></hook>

        <hook id="li_login_pre_auth_message"><![CDATA[
if ($authorized && empty($errors))
    $_SESSION['pun_antispam_logins'] = 0;
        ]]></hook>

        <hook id="li_login_pre_remember_me_checkbox"><![CDATA[
if ($forum_config['o_pun_antispam_captcha_login'] == '1')
{
    if (empty($errors))
        session_start();

    // Output CAPTCHA if first attempts failed
    if (!isset($_SESSION['pun_antispam_logins']))
        $_SESSION['pun_antispam_logins'] = 1;
    else
        $_SESSION['pun_antispam_logins']++;

    if ($_SESSION['pun_antispam_logins'] > 5)
    {
?>
                <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>">
                    <div class="sf-box text required">
                        <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_pun_antispam['Captcha'] ?> <em><?php echo $lang_common['Required'] ?></em></span> <small><?php echo $lang_pun_antispam['Captcha Info'] ?></small></label><br />
                        <span class="fld-input"><input id="fld<?php echo $forum_page['fld_count'] ?>" type="text" name="pun_antispam_input" value="" size="20" maxlength="10" />&nbsp;&nbsp;&nbsp;<img src="<?php echo $ext_info['url'].'/image.php?'.md5(time()) ?>" alt="" /></span>
                    </div>
                </div>
<?php
    }
}
        ]]></hook>

        <hook id="li_forgot_pass_selected"><![CDATA[
if (isset($_POST['form_sent']))
{
    session_start();

    if ($forum_config['o_pun_antispam_captcha_restorepass'] == '1' && (empty($_SESSION['pun_antispam_text']) || strcasecmp(trim($_POST['pun_antispam_input']), $_SESSION['pun_antispam_text']) !== 0))
        $errors[] = $lang_pun_antispam['Invalid Text'];

    $_SESSION['pun_antispam_text'] = '';
}
        ]]></hook>

        <hook id="li_forgot_pass_pre_group_end"><![CDATA[
if ($forum_config['o_pun_antispam_captcha_restorepass'] == '1')
{
?>
                <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>">
                    <div class="sf-box text required">
                        <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_pun_antispam['Captcha'] ?> <em><?php echo $lang_common['Required'] ?></em></span> <small><?php echo $lang_pun_antispam['Captcha Info'] ?></small></label><br />
                        <span class="fld-input"><input id="fld<?php echo $forum_page['fld_count'] ?>" type="text" name="pun_antispam_input" value="" size="20" maxlength="10" />&nbsp;&nbsp;&nbsp;<img src="<?php echo $ext_info['url'].'/image.php?'.md5(time()) ?>" alt="" /></span>
                    </div>
                </div>
<?php
}
        ]]></hook>

        <hook id="po_end_validation"><![CDATA[
if ($forum_user['is_guest'] && $forum_config['o_pun_antispam_captcha_guestpost'] == '1')
{
    session_start();

    if (empty($_SESSION['pun_antispam_confirmed_user']))
    {
        if ((empty($_SESSION['pun_antispam_text']) || strcasecmp(trim($_POST['pun_antispam_input']), $_SESSION['pun_antispam_text']) !== 0))
        {
            if (!isset($_POST['preview']))
                $errors[] = $lang_pun_antispam['Invalid Text'];
        }
        else
            $_SESSION['pun_antispam_confirmed_user'] = 1;
    }

    $_SESSION['pun_antispam_text'] = '';

    // Post is to be written to DB, ask CAPTCHA for the next posting
    if (empty($errors) && !isset($_POST['preview']))
        $_SESSION['pun_antispam_confirmed_user'] = 0;
}
        ]]></hook>

        <hook id="po_pre_guest_info_fieldset_end"><![CDATA[
if ($forum_config['o_pun_antispam_captcha_guestpost'] == '1' && empty($_SESSION['pun_antispam_confirmed_user']))
{
?>
                <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>">
                    <div class="sf-box text required">
                        <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_pun_antispam['Captcha'] ?> <em><?php echo $lang_common['Required'] ?></em></span> <small><?php echo $lang_pun_antispam['Captcha Info'] ?></small></label><br />
                        <span class="fld-input"><input id="fld<?php echo $forum_page['fld_count'] ?>" type="text" name="pun_antispam_input" value="" size="20" maxlength="10" />&nbsp;&nbsp;&nbsp;<img src="<?php echo $ext_info['url'].'/image.php?'.md5(time()) ?>" alt="" /></span>
                    </div>
                </div>
<?php
}
        ]]></hook>

        <hook id="aop_features_avatars_fieldset_end"><![CDATA[

$forum_page['group_count'] = $forum_page['item_count'] = 0;

?>
            <div class="content-head">
                <h2 class="hn"><span><?php echo $lang_pun_antispam['Captcha admin head'] ?></span></h2>
            </div>
            <div class="ct-box"><p><?php echo $lang_pun_antispam['Captcha admin info'] ?></p></div>
            <fieldset class="frm-group group<?php echo ++$forum_page['group_count'] ?>">
                <legend class="group-legend"><span><?php echo $lang_pun_antispam['Captcha admin legend'] ?></span></legend>
                <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>">
                    <div class="sf-box checkbox">
                        <span class="fld-input"><input type="checkbox" id="fld<?php echo ++$forum_page['fld_count'] ?>" name="form[pun_antispam_captcha_register]" value="1"<?php if ($forum_config['o_pun_antispam_captcha_register'] == '1') echo ' checked="checked"' ?> /></span>
                        <label for="fld<?php echo $forum_page['fld_count'] ?>"><span><?php echo $lang_pun_antispam['Captcha admin legend'] ?></span><?php echo $lang_pun_antispam['Captcha registrations info'] ?></label>
                    </div>
                </div>
                <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>">
                    <div class="sf-box checkbox">
                        <span class="fld-input"><input type="checkbox" id="fld<?php echo ++$forum_page['fld_count'] ?>" name="form[pun_antispam_captcha_login]" value="1"<?php if ($forum_config['o_pun_antispam_captcha_login'] == '1') echo ' checked="checked"' ?> /></span>
                        <label for="fld<?php echo $forum_page['fld_count'] ?>"> <?php echo $lang_pun_antispam['Captcha login info'] ?></label>
                    </div>
                </div>
                <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>">
                    <div class="sf-box checkbox">
                        <span class="fld-input"><input type="checkbox" id="fld<?php echo ++$forum_page['fld_count'] ?>" name="form[pun_antispam_captcha_guestpost]" value="1"<?php if ($forum_config['o_pun_antispam_captcha_guestpost'] == '1') echo ' checked="checked"' ?> /></span>
                        <label for="fld<?php echo $forum_page['fld_count'] ?>"> <?php echo $lang_pun_antispam['Captcha guestpost info'] ?></label>
                    </div>
                </div>
                <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>">
                    <div class="sf-box checkbox">
                        <span class="fld-input"><input type="checkbox" id="fld<?php echo ++$forum_page['fld_count'] ?>" name="form[pun_antispam_captcha_restorepass]" value="1"<?php if ($forum_config['o_pun_antispam_captcha_restorepass'] == '1') echo ' checked="checked"' ?> /></span>
                        <label for="fld<?php echo $forum_page['fld_count'] ?>"> <?php echo $lang_pun_antispam['Captcha reset info'] ?></label>
                    </div>
                </div>
            </fieldset>
<?php

// Reset fieldset counter
$forum_page['set_count'] = 0;
        ]]></hook>

        <hook id="aop_features_validation"><![CDATA[
if (!isset($form['pun_antispam_captcha_register']) || $form['pun_antispam_captcha_register'] != '1') $form['pun_antispam_captcha_register'] = '0';
if (!isset($form['pun_antispam_captcha_login']) || $form['pun_antispam_captcha_login'] != '1') $form['pun_antispam_captcha_login'] = '0';
if (!isset($form['pun_antispam_captcha_guestpost']) || $form['pun_antispam_captcha_guestpost'] != '1') $form['pun_antispam_captcha_guestpost'] = '0';
if (!isset($form['pun_antispam_captcha_restorepass']) || $form['pun_antispam_captcha_restorepass'] != '1') $form['pun_antispam_captcha_restorepass'] = '0';
        ]]></hook>

        <hook id="co_common"><![CDATA[
$pun_extensions_used = array_merge(isset($pun_extensions_used) ? $pun_extensions_used : array(), array($ext_info['id']));
        ]]></hook>

        <hook id="ft_about_end" priority="10"><![CDATA[
if (!defined('PUN_EXTENSIONS_USED') && !empty($pun_extensions_used))
{
    define('PUN_EXTENSIONS_USED', 1);
    echo '<p id="extensions-used">Currently used extensions: '.implode(', ', $pun_extensions_used).'. Copyright &copy; 2008 <a href="http://punbb.informer.com/">PunBB</a></p>';
}
        ]]></hook>
    </hooks>

</extension>

Re: haw to extension 1.3 must for1.4

Wow very nice prosperous   now no problem  getoff
very very thank for you hand fine
wink