aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes
diff options
context:
space:
mode:
authorHenry Sudhof <kellanved@phpbb.com>2009-10-27 08:43:00 +0000
committerHenry Sudhof <kellanved@phpbb.com>2009-10-27 08:43:00 +0000
commit56c8e341457ed2233483f09ba058772b53538bc3 (patch)
tree3109e24f6774343e36438a646b9867c3e271b2cf /phpBB/includes
parent6ca7b21dc92e43eb0dff70234c48dd02647233b4 (diff)
downloadforums-56c8e341457ed2233483f09ba058772b53538bc3.tar
forums-56c8e341457ed2233483f09ba058772b53538bc3.tar.gz
forums-56c8e341457ed2233483f09ba058772b53538bc3.tar.bz2
forums-56c8e341457ed2233483f09ba058772b53538bc3.tar.xz
forums-56c8e341457ed2233483f09ba058772b53538bc3.zip
#53235
git-svn-id: file:///svn/phpbb/branches/phpBB-3_0_0@10235 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/includes')
-rw-r--r--phpBB/includes/captcha/plugins/phpbb_captcha_qa_plugin.php65
1 files changed, 50 insertions, 15 deletions
diff --git a/phpBB/includes/captcha/plugins/phpbb_captcha_qa_plugin.php b/phpBB/includes/captcha/plugins/phpbb_captcha_qa_plugin.php
index c17cfa7bbe..095cc89aee 100644
--- a/phpBB/includes/captcha/plugins/phpbb_captcha_qa_plugin.php
+++ b/phpBB/includes/captcha/plugins/phpbb_captcha_qa_plugin.php
@@ -617,21 +617,28 @@ class phpbb_captcha_qa
}
else if ($question_id && $action == 'delete')
{
- if (confirm_box(true))
+ if ($this->get_class_name() !== $config['captcha_plugin'] || !$this->acp_is_last($question_id))
{
- $this->acp_delete_question($question_id);
+ if (confirm_box(true))
+ {
+ $this->acp_delete_question($question_id);
- trigger_error($user->lang['QUESTION_DELETED'] . adm_back_link($list_url));
+ 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
{
- 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(),
- ))
- );
+ trigger_error($user->lang['QA_ERROR_MSG'] . adm_back_link($list_url), E_USER_WARNING);
}
}
else
@@ -711,7 +718,7 @@ class phpbb_captcha_qa
}
else if ($submit)
{
- trigger_error($user->lang['FORM_INVALID'] . adm_back_link($list_url));
+ trigger_error($user->lang['FORM_INVALID'] . adm_back_link($list_url), E_USER_WARNING);
}
}
}
@@ -789,11 +796,12 @@ class phpbb_captcha_qa
*/
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' => explode("\n", request_var('answers', '', true)),
+ 'answers' => (strlen($answers)) ? explode("\n", $answers) : '',
);
return $question;
@@ -908,12 +916,12 @@ class phpbb_captcha_qa
}
if (!isset($langs[$question_data['lang_iso']]) ||
- !$question_data['question_text'] ||
- !sizeof($question_data['answers']))
+ !strlen($question_data['question_text']) ||
+ !sizeof($question_data['answers']) ||
+ !is_array($question_data['answers']))
{
return false;
}
-
return true;
}
@@ -940,6 +948,33 @@ class phpbb_captcha_qa
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