function survey_test($atts, $content = null) { global $wpdb; global $survey_salt; //Empty the database and restart it. if (isset($_GET['restart'])) { //Truncate the created tables for this plugin $wpdb->query("TRUNCATE TABLE " . $wpdb->prefix . "survey"); $wpdb->query("TRUNCATE TABLE " . $wpdb->prefix . "survey_questions"); $wpdb->query("TRUNCATE TABLE " . $wpdb->prefix . "survey_answers"); $wpdb->query("TRUNCATE TABLE " . $wpdb->prefix . "survey_users"); $wpdb->query("TRUNCATE TABLE " . $wpdb->prefix . "survey_user_answers"); } $survey1 = new survey(FALSE, "Survey 1"); $question1 = $survey1->add_question(question::truefalse, "True/False: Order 1", -1, -1, 1); $question1->add_answer("TF Answer 1 DONT SHOW THIS!", 1); $question2 = $survey1->add_question(question::multichoice, "Multiple Choice: Order 2", -1, -1, 2); $question2->add_answer("MC Answer 1", 1); $question2->add_answer("MC Answer 2"); $question2->add_answer("MC Answer 3", 3); $question3 = $survey1->add_question(question::dropdown, "Dropdown: Order 3", -1, -1, 3); $question3->add_answer("DD Answer 1"); $question3->add_answer("DD Answer 2", 2); $question4 = $survey1->add_question(question::multiselect, "Multiple Select: Order 4", -1, -1, 1); $question4->add_answer("MS Answer 2", 2); $question4->add_answer("MS Answer 1", 1); $question4->add_answer("MS Answer 3", 3); $question5 = $survey1->add_question(question::shortanswer, "Short Answer: Order 6", -1, -1, 6); $question5->add_answer("SA Answer 1 DONT SHOW THIS!", 1); $question6 = $survey1->add_question(question::longanswer, "Long Answer: Order 5", -1, -1, 5); $question6->add_answer("LA Answer 1 DONT SHOW THIS!", 1); $question7 = $survey1->add_question(question::multichoiceother, "Multiple Choice Other: Order 7", -1, -1, 7); $question7->add_answer("MCO Answer 1"); $question7->add_answer("MCO Answer 2"); $question8 = new question(FALSE, question::multiselectother, "Multiple Select Other: Order 8", -1, -1, 8); $question8->add_answer("MSO Answer 1"); $question8->add_answer("MSO Answer 2"); $survey1->add_qobject($question8); //$survey1->output_survey(); debug($survey1); //Empty the database and restart it. if (isset($_GET['restart'])) { $insert = $wpdb->insert($wpdb->prefix . 'survey_users', array('username' => 'tester', 'password' => sha1('tester' . $survey_salt, true), 'fullname' => 'Test User'), array('%s', '%s', '%s')); $id = $insert ? $wpdb->insert_id : FALSE; if ($id !== FALSE) { var_dump(bin2hex(sha1('tester' . $survey_salt, true))); var_dump(bin2hex($wpdb->get_var("SELECT password FROM {$wpdb->prefix}survey_users WHERE id={$id}"))); } else { echo "Failed to insert!"; var_dump(bin2hex(sha1('test' . $survey_salt, true))); } $post = array('menu_order' => 0, 'comment_status' => 'closed', 'ping_status' => 'closed', 'post_author' => get_current_user_id(), 'post_content' => "[survey-page id={$survey1->id}]", 'post_name' => 'test-survey-page', 'post_status' => 'publish', 'post_title' => 'Test Survey Page', 'post_type' => 'page'); wp_insert_post($post, true); } }
function survey_submit_question_ajax_callback() { check_ajax_referer('survey_submit_question_nonce', 'security'); //Make sure they're logged in with the appropriate permissions. if (!current_user_can('manage_options')) { wp_die(__('You do not have sufficient permissions to access this page.')); } //Set up the basic structure for the question array. $question = array('qtype' => '', 'qtext' => '', 'answers' => array()); //This array will keep track of all of the answer ids being edited. $edit = array(); //Fill in the array properly using the posted data. foreach ($_POST['question'] as $posted) { //If the name is answer then it's a brand new answer and not being edited. if ($posted['name'] == 'answer') { $question['answers'][] = $posted['value']; } elseif (strstr($posted['name'], '-answer') !== FALSE) { $answer_id = strstr($posted['name'], '-answer', TRUE); $question['answers'][$answer_id] = $posted['value']; $edit[] = $answer_id; } else { $question[$posted['name']] = $posted['value']; } } //If the question is being edited, then this will use the id of that question to create the qobject. if (isset($question['survey_edit'])) { $qobject = new question(intval($question['survey_edit'])); $qobject->edit_question($question['qtext']); $qobject->edit_type($question['qtype']); $qobject->edit_dependency($question['depquestion'], $question['depanswer']); } else { $qobject = new question(FALSE, $question['qtype'], $question['qtext'], $question['depquestion'], $question['depanswer']); } switch ($question['qtype']) { case question::truefalse: case question::shortanswer: case question::longanswer: //These question types don't have answers. break; default: foreach ($question['answers'] as $answer_id => $answer) { //If the answer id is in the array, then it must be edited, otherwise it's a new answer. if (in_array($answer_id, $edit)) { $qobject->edit_answer($answer_id, $answer); } else { $qobject->add_answer($answer); } } } //Don't add a new question to the survey list if it's being edited. if (!isset($question['survey_edit'])) { $survey = new survey(intval($_POST['survey'])); $survey->add_qobject($qobject); } echo "Success!"; die; // this is required to return a proper result }