class qa

And now to something completely different. Let's make a captcha without extending the abstract class.

QA CAPTCHA sample implementation

Properties

$confirm_id
$answer
$question_ids
$question_text
$question_lang
$question_strict
$attempts
$type
$solved
protected $table_captcha_questions
protected $table_captcha_answers
protected $table_qa_confirm
protected string $service_name

Methods

__construct(string $table_captcha_questions, string $table_captcha_answers, string $table_qa_confirm)

Constructor

init(int $type)

No description

is_installed()

See if the captcha has created its tables.

is_available()

API function - for the captcha to be available, it must have installed itself and there has to be at least one question in the board's default lang

has_config()

API function

static 
get_name()

API function

string
get_service_name()

No description

set_name(string $name)

Set the name of the plugin

execute_demo()

API function - not needed as we don't display an image

execute()

API function - not needed as we don't display an image

get_template()

API function - send the question to the template

get_demo_template()

API function - we just display a mockup so that the captcha doesn't need to be installed

get_hidden_fields()

API function

garbage_collect($type = 0)

API function

validate()

API function - see what has to be done to validate

select_question()

Select a question

reselect_question()

New Question, if desired.

new_attempt()

Wrong answer, so we increase the attempts and use a different question.

load_confirm_id()

See if there is already an entry for the current session.

load_answer()

Look up everything we need and populate the instance variables.

check_answer()

The actual validation

get_attempt_count()

API function

reset()

API function

is_solved()

API function

acp_page($id, $module)

API function - The ACP backend, this marks the end of the easy methods

acp_question_list($module)

This handles the list overview

acp_get_question_data($question_id)

Grab a question and bring it into a format the editor understands

acp_get_question_input()

Grab a question from input and bring it into a format the editor understands

acp_update_question($data, $question_id)

Update a question.

acp_add_question($data)

Insert a question.

acp_insert_answers($data, $question_id)

Insert the answers.

acp_delete_question($question_id)

Delete a question.

validate_input($question_data)

Check if the entered data can be inserted/used param mixed $data : an array as created from acp_get_question_input or acp_get_question_data

get_languages()

List the installed language packs

acp_is_last($question_id)

See if there is a question other than the one we have

Details

at line 52
__construct(string $table_captcha_questions, string $table_captcha_answers, string $table_qa_confirm)

Constructor

Parameters

string $table_captcha_questions
string $table_captcha_answers
string $table_qa_confirm

at line 62
init(int $type)

No description

Parameters

int $type

as per the CAPTCHA API docs, the type

at line 138
is_installed()

See if the captcha has created its tables.

at line 150
is_available()

API function - for the captcha to be available, it must have installed itself and there has to be at least one question in the board's default lang

at line 175
has_config()

API function

at line 183
static get_name()

API function

at line 191
string get_service_name()

No description

Return Value

string

the name of the service corresponding to the plugin

at line 201
set_name(string $name)

Set the name of the plugin

Parameters

string $name

at line 209
execute_demo()

API function - not needed as we don't display an image

at line 216
execute()

API function - not needed as we don't display an image

at line 223
get_template()

API function - send the question to the template

at line 253
get_demo_template()

API function - we just display a mockup so that the captcha doesn't need to be installed

at line 277
get_hidden_fields()

API function

at line 294
garbage_collect($type = 0)

API function

Parameters

$type

at line 329
validate()

API function - see what has to be done to validate

at line 375
select_question()

Select a question

at line 401
reselect_question()

New Question, if desired.

at line 425
new_attempt()

Wrong answer, so we increase the attempts and use a different question.

at line 447
load_confirm_id()

See if there is already an entry for the current session.

at line 472
load_answer()

Look up everything we need and populate the instance variables.

at line 509
check_answer()

The actual validation

at line 539
get_attempt_count()

API function

at line 547
reset()

API function

at line 563
is_solved()

API function

at line 578
acp_page($id, $module)

API function - The ACP backend, this marks the end of the easy methods

Parameters

$id
$module

at line 711
acp_question_list($module)

This handles the list overview

Parameters

$module

at line 741
acp_get_question_data($question_id)

Grab a question and bring it into a format the editor understands

Parameters

$question_id

at line 781
acp_get_question_input()

Grab a question from input and bring it into a format the editor understands

at line 808
acp_update_question($data, $question_id)

Update a question.

param mixed $data : an array as created from acp_get_question_input or acp_get_question_data

Parameters

$data
$question_id

at line 835
acp_add_question($data)

Insert a question.

param mixed $data : an array as created from acp_get_question_input or acp_get_question_data

Parameters

$data

at line 859
acp_insert_answers($data, $question_id)

Insert the answers.

param mixed $data : an array as created from acp_get_question_input or acp_get_question_data

Parameters

$data
$question_id

at line 880
acp_delete_question($question_id)

Delete a question.

Parameters

$question_id

at line 900
validate_input($question_data)

Check if the entered data can be inserted/used param mixed $data : an array as created from acp_get_question_input or acp_get_question_data

Parameters

$question_data

at line 926
get_languages()

List the installed language packs

at line 952
acp_is_last($question_id)

See if there is a question other than the one we have

Parameters

$question_id