Commit f7e0e020 by Scott

Coding style (pages/ask)

parent 35e0531f
...@@ -20,115 +20,122 @@ ...@@ -20,115 +20,122 @@
More about this license: http://www.question2answer.org/license.php More about this license: http://www.question2answer.org/license.php
*/ */
if (!defined('QA_VERSION')) { // don't allow this page to be requested directly from browser if (!defined('QA_VERSION')) { // don't allow this page to be requested directly from browser
header('Location: ../'); header('Location: ../');
exit; exit;
} }
require_once QA_INCLUDE_DIR.'app/format.php'; require_once QA_INCLUDE_DIR.'app/format.php';
require_once QA_INCLUDE_DIR.'app/limits.php'; require_once QA_INCLUDE_DIR.'app/limits.php';
require_once QA_INCLUDE_DIR.'db/selects.php'; require_once QA_INCLUDE_DIR.'db/selects.php';
require_once QA_INCLUDE_DIR.'util/sort.php'; require_once QA_INCLUDE_DIR.'util/sort.php';
// Check whether this is a follow-on question and get some info we need from the database // Check whether this is a follow-on question and get some info we need from the database
$in=array(); $in = array();
$followpostid=qa_get('follow'); $followpostid = qa_get('follow');
$in['categoryid']=qa_clicked('doask') ? qa_get_category_field_value('category') : qa_get('cat'); $in['categoryid'] = qa_clicked('doask') ? qa_get_category_field_value('category') : qa_get('cat');
$userid=qa_get_logged_in_userid(); $userid = qa_get_logged_in_userid();
list($categories, $followanswer, $completetags)=qa_db_select_with_pending( list($categories, $followanswer, $completetags) = qa_db_select_with_pending(
qa_db_category_nav_selectspec($in['categoryid'], true), qa_db_category_nav_selectspec($in['categoryid'], true),
isset($followpostid) ? qa_db_full_post_selectspec($userid, $followpostid) : null, isset($followpostid) ? qa_db_full_post_selectspec($userid, $followpostid) : null,
qa_db_popular_tags_selectspec(0, QA_DB_RETRIEVE_COMPLETE_TAGS) qa_db_popular_tags_selectspec(0, QA_DB_RETRIEVE_COMPLETE_TAGS)
); );
if (!isset($categories[$in['categoryid']])) if (!isset($categories[$in['categoryid']])) {
$in['categoryid']=null; $in['categoryid'] = null;
}
if (@$followanswer['basetype']!='A') if (@$followanswer['basetype'] != 'A') {
$followanswer=null; $followanswer = null;
}
// Check for permission error // Check for permission error
$permiterror=qa_user_maximum_permit_error('permit_post_q', QA_LIMIT_QUESTIONS); $permiterror = qa_user_maximum_permit_error('permit_post_q', QA_LIMIT_QUESTIONS);
if ($permiterror) { if ($permiterror) {
$qa_content=qa_content_prepare(); $qa_content = qa_content_prepare();
// The 'approve', 'login', 'confirm', 'limit', 'userblock', 'ipblock' permission errors are reported to the user here // The 'approve', 'login', 'confirm', 'limit', 'userblock', 'ipblock' permission errors are reported to the user here
// The other option ('level') prevents the menu option being shown, in qa_content_prepare(...) // The other option ('level') prevents the menu option being shown, in qa_content_prepare(...)
switch ($permiterror) { switch ($permiterror) {
case 'login': case 'login':
$qa_content['error']=qa_insert_login_links(qa_lang_html('question/ask_must_login'), qa_request(), isset($followpostid) ? array('follow' => $followpostid) : null); $qa_content['error'] = qa_insert_login_links(qa_lang_html('question/ask_must_login'), qa_request(), isset($followpostid) ? array('follow' => $followpostid) : null);
break; break;
case 'confirm': case 'confirm':
$qa_content['error']=qa_insert_login_links(qa_lang_html('question/ask_must_confirm'), qa_request(), isset($followpostid) ? array('follow' => $followpostid) : null); $qa_content['error'] = qa_insert_login_links(qa_lang_html('question/ask_must_confirm'), qa_request(), isset($followpostid) ? array('follow' => $followpostid) : null);
break; break;
case 'limit': case 'limit':
$qa_content['error']=qa_lang_html('question/ask_limit'); $qa_content['error'] = qa_lang_html('question/ask_limit');
break; break;
case 'approve': case 'approve':
$qa_content['error']=qa_lang_html('question/ask_must_be_approved'); $qa_content['error'] = qa_lang_html('question/ask_must_be_approved');
break; break;
default: default:
$qa_content['error']=qa_lang_html('users/no_permission'); $qa_content['error'] = qa_lang_html('users/no_permission');
break; break;
} }
return $qa_content; return $qa_content;
} }
// Process input // Process input
$captchareason=qa_user_captcha_reason(); $captchareason = qa_user_captcha_reason();
$in['title']=qa_post_text('title'); // allow title and tags to be posted by an external form $in['title'] = qa_post_text('title'); // allow title and tags to be posted by an external form
$in['extra']=qa_opt('extra_field_active') ? qa_post_text('extra') : null; $in['extra'] = qa_opt('extra_field_active') ? qa_post_text('extra') : null;
if (qa_using_tags())
$in['tags']=qa_get_tags_field_value('tags');
if (qa_clicked('doask')) { if (qa_using_tags()) {
$in['tags'] = qa_get_tags_field_value('tags');
}
if (qa_clicked('doask')) {
require_once QA_INCLUDE_DIR.'app/post-create.php'; require_once QA_INCLUDE_DIR.'app/post-create.php';
require_once QA_INCLUDE_DIR.'util/string.php'; require_once QA_INCLUDE_DIR.'util/string.php';
$categoryids=array_keys(qa_category_path($categories, @$in['categoryid'])); $categoryids = array_keys(qa_category_path($categories, @$in['categoryid']));
$userlevel=qa_user_level_for_categories($categoryids); $userlevel = qa_user_level_for_categories($categoryids);
$in['name']=qa_post_text('name'); $in['name'] = qa_post_text('name');
$in['notify'] = strlen(qa_post_text('notify')) > 0; $in['notify'] = strlen(qa_post_text('notify')) > 0;
$in['email']=qa_post_text('email'); $in['email'] = qa_post_text('email');
$in['queued'] = qa_user_moderation_reason($userlevel) !== false; $in['queued'] = qa_user_moderation_reason($userlevel) !== false;
qa_get_post_content('editor', 'content', $in['editor'], $in['content'], $in['format'], $in['text']); qa_get_post_content('editor', 'content', $in['editor'], $in['content'], $in['format'], $in['text']);
$errors=array(); $errors = array();
if (!qa_check_form_security_code('ask', qa_post_text('code')))
$errors['page']=qa_lang_html('misc/form_security_again');
if (!qa_check_form_security_code('ask', qa_post_text('code'))) {
$errors['page'] = qa_lang_html('misc/form_security_again');
}
else { else {
$filtermodules=qa_load_modules_with('filter', 'filter_question'); $filtermodules = qa_load_modules_with('filter', 'filter_question');
foreach ($filtermodules as $filtermodule) { foreach ($filtermodules as $filtermodule) {
$oldin=$in; $oldin = $in;
$filtermodule->filter_question($in, $errors, null); $filtermodule->filter_question($in, $errors, null);
qa_update_post_text($in, $oldin); qa_update_post_text($in, $oldin);
} }
if (qa_using_categories() && count($categories) && (!qa_opt('allow_no_category')) && !isset($in['categoryid'])) if (qa_using_categories() && count($categories) && (!qa_opt('allow_no_category')) && !isset($in['categoryid'])) {
$errors['categoryid']=qa_lang_html('question/category_required'); // check this here because we need to know count($categories) // check this here because we need to know count($categories)
elseif (qa_user_permit_error('permit_post_q', null, $userlevel)) $errors['categoryid'] = qa_lang_html('question/category_required');
$errors['categoryid']=qa_lang_html('question/category_ask_not_allowed'); }
elseif (qa_user_permit_error('permit_post_q', null, $userlevel)) {
$errors['categoryid'] = qa_lang_html('question/category_ask_not_allowed');
}
if ($captchareason) { if ($captchareason) {
require_once QA_INCLUDE_DIR.'app/captcha.php'; require_once QA_INCLUDE_DIR.'app/captcha.php';
...@@ -136,47 +143,50 @@ ...@@ -136,47 +143,50 @@
} }
if (empty($errors)) { if (empty($errors)) {
//check if the question is already posted // check if the question is already posted
$testwords=implode(' ', qa_string_to_words($in['content'])); $testwords = implode(' ', qa_string_to_words($in['content']));
$recent_questions = qa_db_select_with_pending(qa_db_qs_selectspec(null, 'created', 0, null, null, false, true, 5)); $recent_questions = qa_db_select_with_pending(qa_db_qs_selectspec(null, 'created', 0, null, null, false, true, 5));
foreach ($recent_questions as $recent_question)
if (!$recent_question['hidden']) foreach ($recent_questions as $question) {
if (implode(' ', qa_string_to_words($recent_question['content'])) == $testwords){ if (!$question['hidden']) {
$errors['page']=qa_lang_html('question/duplicate_content'); if (implode(' ', qa_string_to_words($question['content'])) == $testwords) {
$errors['page'] = qa_lang_html('question/duplicate_content');
break; break;
} }
} }
}
}
if (empty($errors)) { if (empty($errors)) {
$cookieid=isset($userid) ? qa_cookie_get() : qa_cookie_get_create(); // create a new cookie if necessary $cookieid = isset($userid) ? qa_cookie_get() : qa_cookie_get_create(); // create a new cookie if necessary
$questionid=qa_question_create($followanswer, $userid, qa_get_logged_in_handle(), $cookieid, $questionid = qa_question_create($followanswer, $userid, qa_get_logged_in_handle(), $cookieid,
$in['title'], $in['content'], $in['format'], $in['text'], isset($in['tags']) ? qa_tags_to_tagstring($in['tags']) : '', $in['title'], $in['content'], $in['format'], $in['text'], isset($in['tags']) ? qa_tags_to_tagstring($in['tags']) : '',
$in['notify'], $in['email'], $in['categoryid'], $in['extra'], $in['queued'], $in['name']); $in['notify'], $in['email'], $in['categoryid'], $in['extra'], $in['queued'], $in['name']);
qa_redirect(qa_q_request($questionid, $in['title'])); // our work is done here qa_redirect(qa_q_request($questionid, $in['title'])); // our work is done here
} }
} }
} }
// Prepare content for theme // Prepare content for theme
$qa_content=qa_content_prepare(false, array_keys(qa_category_path($categories, @$in['categoryid']))); $qa_content = qa_content_prepare(false, array_keys(qa_category_path($categories, @$in['categoryid'])));
$qa_content['title']=qa_lang_html(isset($followanswer) ? 'question/ask_follow_title' : 'question/ask_title'); $qa_content['title'] = qa_lang_html(isset($followanswer) ? 'question/ask_follow_title' : 'question/ask_title');
$qa_content['error']=@$errors['page']; $qa_content['error'] = @$errors['page'];
$editorname=isset($in['editor']) ? $in['editor'] : qa_opt('editor_for_qs'); $editorname = isset($in['editor']) ? $in['editor'] : qa_opt('editor_for_qs');
$editor=qa_load_editor(@$in['content'], @$in['format'], $editorname); $editor = qa_load_editor(@$in['content'], @$in['format'], $editorname);
$field=qa_editor_load_field($editor, $qa_content, @$in['content'], @$in['format'], 'content', 12, false); $field = qa_editor_load_field($editor, $qa_content, @$in['content'], @$in['format'], 'content', 12, false);
$field['label']=qa_lang_html('question/q_content_label'); $field['label'] = qa_lang_html('question/q_content_label');
$field['error']=qa_html(@$errors['content']); $field['error'] = qa_html(@$errors['content']);
$custom=qa_opt('show_custom_ask') ? trim(qa_opt('custom_ask')) : ''; $custom = qa_opt('show_custom_ask') ? trim(qa_opt('custom_ask')) : '';
$qa_content['form']=array( $qa_content['form'] = array(
'tags' => 'name="ask" method="post" action="'.qa_self_html().'"', 'tags' => 'name="ask" method="post" action="'.qa_self_html().'"',
'style' => 'tall', 'style' => 'tall',
...@@ -215,33 +225,35 @@ ...@@ -215,33 +225,35 @@
'code' => qa_get_form_security_code('ask'), 'code' => qa_get_form_security_code('ask'),
'doask' => '1', 'doask' => '1',
), ),
); );
if (!strlen($custom)) if (!strlen($custom)) {
unset($qa_content['form']['fields']['custom']); unset($qa_content['form']['fields']['custom']);
}
if (qa_opt('do_ask_check_qs') || qa_opt('do_example_tags')) { if (qa_opt('do_ask_check_qs') || qa_opt('do_example_tags')) {
$qa_content['script_rel'][]='qa-content/qa-ask.js?'.QA_VERSION; $qa_content['script_rel'][] = 'qa-content/qa-ask.js?'.QA_VERSION;
$qa_content['form']['fields']['title']['tags'].=' onchange="qa_title_change(this.value);"'; $qa_content['form']['fields']['title']['tags'] .= ' onchange="qa_title_change(this.value);"';
if (strlen(@$in['title'])) if (strlen(@$in['title'])) {
$qa_content['script_onloads'][]='qa_title_change('.qa_js($in['title']).');'; $qa_content['script_onloads'][] = 'qa_title_change('.qa_js($in['title']).');';
} }
}
if (isset($followanswer)) { if (isset($followanswer)) {
$viewer=qa_load_viewer($followanswer['content'], $followanswer['format']); $viewer = qa_load_viewer($followanswer['content'], $followanswer['format']);
$field=array( $field = array(
'type' => 'static', 'type' => 'static',
'label' => qa_lang_html('question/ask_follow_from_a'), 'label' => qa_lang_html('question/ask_follow_from_a'),
'value' => $viewer->get_html($followanswer['content'], $followanswer['format'], array('blockwordspreg' => qa_get_block_words_preg())), 'value' => $viewer->get_html($followanswer['content'], $followanswer['format'], array('blockwordspreg' => qa_get_block_words_preg())),
); );
qa_array_insert($qa_content['form']['fields'], 'title', array('follows' => $field)); qa_array_insert($qa_content['form']['fields'], 'title', array('follows' => $field));
} }
if (qa_using_categories() && count($categories)) { if (qa_using_categories() && count($categories)) {
$field=array( $field = array(
'label' => qa_lang_html('question/q_category_label'), 'label' => qa_lang_html('question/q_category_label'),
'error' => qa_html(@$errors['categoryid']), 'error' => qa_html(@$errors['categoryid']),
); );
...@@ -249,13 +261,13 @@ ...@@ -249,13 +261,13 @@
qa_set_up_category_field($qa_content, $field, 'category', $categories, $in['categoryid'], true, qa_opt('allow_no_sub_category')); qa_set_up_category_field($qa_content, $field, 'category', $categories, $in['categoryid'], true, qa_opt('allow_no_sub_category'));
if (!qa_opt('allow_no_category')) // don't auto-select a category even though one is required if (!qa_opt('allow_no_category')) // don't auto-select a category even though one is required
$field['options']['']=''; $field['options'][''] = '';
qa_array_insert($qa_content['form']['fields'], 'content', array('category' => $field)); qa_array_insert($qa_content['form']['fields'], 'content', array('category' => $field));
} }
if (qa_opt('extra_field_active')) { if (qa_opt('extra_field_active')) {
$field=array( $field = array(
'label' => qa_html(qa_opt('extra_field_prompt')), 'label' => qa_html(qa_opt('extra_field_prompt')),
'tags' => 'name="extra"', 'tags' => 'name="extra"',
'value' => qa_html(@$in['extra']), 'value' => qa_html(@$in['extra']),
...@@ -263,10 +275,10 @@ ...@@ -263,10 +275,10 @@
); );
qa_array_insert($qa_content['form']['fields'], null, array('extra' => $field)); qa_array_insert($qa_content['form']['fields'], null, array('extra' => $field));
} }
if (qa_using_tags()) { if (qa_using_tags()) {
$field=array( $field = array(
'error' => qa_html(@$errors['tags']), 'error' => qa_html(@$errors['tags']),
); );
...@@ -274,25 +286,21 @@ ...@@ -274,25 +286,21 @@
qa_opt('do_complete_tags') ? array_keys($completetags) : array(), qa_opt('page_size_ask_tags')); qa_opt('do_complete_tags') ? array_keys($completetags) : array(), qa_opt('page_size_ask_tags'));
qa_array_insert($qa_content['form']['fields'], null, array('tags' => $field)); qa_array_insert($qa_content['form']['fields'], null, array('tags' => $field));
} }
if (!isset($userid)) if (!isset($userid)) {
qa_set_up_name_field($qa_content, $qa_content['form']['fields'], @$in['name']); qa_set_up_name_field($qa_content, $qa_content['form']['fields'], @$in['name']);
}
qa_set_up_notify_fields($qa_content, $qa_content['form']['fields'], 'Q', qa_get_logged_in_email(), qa_set_up_notify_fields($qa_content, $qa_content['form']['fields'], 'Q', qa_get_logged_in_email(),
isset($in['notify']) ? $in['notify'] : qa_opt('notify_users_default'), @$in['email'], @$errors['email']); isset($in['notify']) ? $in['notify'] : qa_opt('notify_users_default'), @$in['email'], @$errors['email']);
if ($captchareason) { if ($captchareason) {
require_once QA_INCLUDE_DIR.'app/captcha.php'; require_once QA_INCLUDE_DIR.'app/captcha.php';
qa_set_up_captcha_field($qa_content, $qa_content['form']['fields'], @$errors, qa_captcha_reason_note($captchareason)); qa_set_up_captcha_field($qa_content, $qa_content['form']['fields'], @$errors, qa_captcha_reason_note($captchareason));
} }
$qa_content['focusid']='title';
return $qa_content; $qa_content['focusid'] = 'title';
/* return $qa_content;
Omit PHP closing tag to help avoid accidental output
*/
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment