Author: Kellanved
Date: Tue Oct 27 08:43:00 2009
New Revision: 10235
Log:
#53235
Modified:
branches/phpBB-3_0_0/phpBB/includes/captcha/plugins/phpbb_captcha_qa_plugin.php
Modified: branches/phpBB-3_0_0/phpBB/includes/captcha/plugins/phpbb_captcha_qa_plugin.php
==============================================================================
*** branches/phpBB-3_0_0/phpBB/includes/captcha/plugins/phpbb_captcha_qa_plugin.php (original)
--- branches/phpBB-3_0_0/phpBB/includes/captcha/plugins/phpbb_captcha_qa_plugin.php Tue Oct 27 08:43:00 2009
***************
*** 617,637 ****
}
else if ($question_id && $action == 'delete')
{
! if (confirm_box(true))
{
! $this->acp_delete_question($question_id);
! trigger_error($user->lang['QUESTION_DELETED'] . adm_back_link($list_url));
}
else
{
! confirm_box(false, $user->lang['CONFIRM_OPERATION'], build_hidden_fields(array(
! 'question_id' => $question_id,
! 'action' => $action,
! 'configure' => 1,
! 'select_captcha' => $this->get_class_name(),
! ))
! );
}
}
else
--- 617,644 ----
}
else if ($question_id && $action == 'delete')
{
! if ($this->get_class_name() !== $config['captcha_plugin'] || !$this->acp_is_last($question_id))
{
! if (confirm_box(true))
! {
! $this->acp_delete_question($question_id);
! trigger_error($user->lang['QUESTION_DELETED'] . adm_back_link($list_url));
! }
! else
! {
! confirm_box(false, $user->lang['CONFIRM_OPERATION'], build_hidden_fields(array(
! 'question_id' => $question_id,
! 'action' => $action,
! 'configure' => 1,
! 'select_captcha' => $this->get_class_name(),
! ))
! );
! }
}
else
{
! trigger_error($user->lang['QA_ERROR_MSG'] . adm_back_link($list_url), E_USER_WARNING);
}
}
else
***************
*** 711,717 ****
}
else if ($submit)
{
! trigger_error($user->lang['FORM_INVALID'] . adm_back_link($list_url));
}
}
}
--- 718,724 ----
}
else if ($submit)
{
! trigger_error($user->lang['FORM_INVALID'] . adm_back_link($list_url), E_USER_WARNING);
}
}
}
***************
*** 789,799 ****
*/
function acp_get_question_input()
{
$question = array(
'question_text' => request_var('question_text', '', true),
'strict' => request_var('strict', false),
'lang_iso' => request_var('lang_iso', ''),
! 'answers' => explode("\n", request_var('answers', '', true)),
);
return $question;
--- 796,807 ----
*/
function acp_get_question_input()
{
+ $answers = request_var('answers', '', true);
$question = array(
'question_text' => request_var('question_text', '', true),
'strict' => request_var('strict', false),
'lang_iso' => request_var('lang_iso', ''),
! 'answers' => (strlen($answers)) ? explode("\n", $answers) : '',
);
return $question;
***************
*** 908,919 ****
}
if (!isset($langs[$question_data['lang_iso']]) ||
! !$question_data['question_text'] ||
! !sizeof($question_data['answers']))
{
return false;
}
-
return true;
}
--- 916,927 ----
}
if (!isset($langs[$question_data['lang_iso']]) ||
! !strlen($question_data['question_text']) ||
! !sizeof($question_data['answers']) ||
! !is_array($question_data['answers']))
{
return false;
}
return true;
}
***************
*** 940,945 ****
--- 948,980 ----
return $langs;
}
+
+
+
+ /**
+ * Grab a question and bring it into a format the editor understands
+ */
+ function acp_is_last($question_id)
+ {
+ global $config, $db;
+
+ if ($question_id)
+ {
+ $sql = 'SELECT question_id
+ FROM ' . CAPTCHA_QUESTIONS_TABLE . "
+ WHERE lang_iso = '" . $db->sql_escape($config['default_lang']) . "'
+ AND question_id <> " . (int) $question_id;
+ $result = $db->sql_query_limit($sql, 1);
+ $question = $db->sql_fetchrow($result);
+ $db->sql_freeresult($result);
+
+ if (!$question)
+ {
+ return true;
+ }
+ return false;
+ }
+ }
}
?>
\ No newline at end of file
|