本文整理汇总了PHP中delete_question函数的典型用法代码示例。如果您正苦于以下问题:PHP delete_question函数的具体用法?PHP delete_question怎么用?PHP delete_question使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了delete_question函数的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: question_showbank_actions
function question_showbank_actions($pageurl, $cm)
{
global $CFG, $COURSE;
/// Now, check for commands on this page and modify variables as necessary
if (optional_param('move', false, PARAM_BOOL) and confirm_sesskey()) {
/// Move selected questions to new category
$category = required_param('category', PARAM_SEQUENCE);
list($tocategoryid, $contextid) = explode(',', $category);
if (!($tocategory = get_record('question_categories', 'id', $tocategoryid, 'contextid', $contextid))) {
error('Could not find category record');
}
$tocontext = get_context_instance_by_id($contextid);
require_capability('moodle/question:add', $tocontext);
$rawdata = (array) data_submitted();
$questionids = array();
foreach ($rawdata as $key => $value) {
// Parse input for question ids
if (preg_match('!^q([0-9]+)$!', $key, $matches)) {
$key = $matches[1];
$questionids[] = $key;
}
}
if ($questionids) {
$questionidlist = join($questionids, ',');
$sql = "SELECT q.*, c.contextid FROM {$CFG->prefix}question q, {$CFG->prefix}question_categories c WHERE q.id IN ({$questionidlist}) AND c.id = q.category";
if (!($questions = get_records_sql($sql))) {
print_error('questiondoesnotexist', 'question', $pageurl->out());
}
$checkforfiles = false;
foreach ($questions as $question) {
//check capabilities
question_require_capability_on($question, 'move');
$fromcontext = get_context_instance_by_id($question->contextid);
if (get_filesdir_from_context($fromcontext) != get_filesdir_from_context($tocontext)) {
$checkforfiles = true;
}
}
$returnurl = $pageurl->out(false, array('category' => "{$tocategoryid},{$contextid}"));
if (!$checkforfiles) {
if (!question_move_questions_to_category(implode(',', $questionids), $tocategory->id)) {
print_error('errormovingquestions', 'question', $returnurl, $questionids);
}
redirect($returnurl);
} else {
$movecontexturl = new moodle_url($CFG->wwwroot . '/question/contextmoveq.php', array('returnurl' => $returnurl, 'ids' => $questionidlist, 'tocatid' => $tocategoryid));
if ($cm) {
$movecontexturl->param('cmid', $cm->id);
} else {
$movecontexturl->param('courseid', $COURSE->id);
}
redirect($movecontexturl->out());
}
}
}
if (optional_param('deleteselected', false, PARAM_BOOL)) {
// delete selected questions from the category
if ($confirm = optional_param('confirm', '', PARAM_ALPHANUM) and confirm_sesskey()) {
// teacher has already confirmed the action
$deleteselected = required_param('deleteselected');
if ($confirm == md5($deleteselected)) {
if ($questionlist = explode(',', $deleteselected)) {
// for each question either hide it if it is in use or delete it
foreach ($questionlist as $questionid) {
question_require_capability_on($questionid, 'edit');
if (record_exists('quiz_question_instances', 'question', $questionid)) {
if (!set_field('question', 'hidden', 1, 'id', $questionid)) {
question_require_capability_on($questionid, 'edit');
error('Was not able to hide question');
}
} else {
delete_question($questionid);
}
}
}
redirect($pageurl->out());
} else {
error("Confirmation string was incorrect");
}
}
}
// Unhide a question
if ($unhide = optional_param('unhide', '', PARAM_INT) and confirm_sesskey()) {
question_require_capability_on($unhide, 'edit');
if (!set_field('question', 'hidden', 0, 'id', $unhide)) {
error("Failed to unhide the question.");
}
redirect($pageurl->out());
}
}
示例2: save_question_options
function save_question_options($question)
{
global $QTYPES;
$result = new stdClass();
// This function needs to be able to handle the case where the existing set of wrapped
// questions does not match the new set of wrapped questions so that some need to be
// created, some modified and some deleted
// Unfortunately the code currently simply overwrites existing ones in sequence. This
// will make re-marking after a re-ordering of wrapped questions impossible and
// will also create difficulties if questiontype specific tables reference the id.
// First we get all the existing wrapped questions
if (!($oldwrappedids = get_field('question_multianswer', 'sequence', 'question', $question->id))) {
$oldwrappedquestions = array();
} else {
$oldwrappedquestions = get_records_list('question', 'id', $oldwrappedids, 'id ASC');
}
$sequence = array();
foreach ($question->options->questions as $wrapped) {
if (!empty($wrapped)) {
// if we still have some old wrapped question ids, reuse the next of them
if (is_array($oldwrappedquestions) && ($oldwrappedquestion = array_shift($oldwrappedquestions))) {
$wrapped->id = $oldwrappedquestion->id;
if ($oldwrappedquestion->qtype != $wrapped->qtype) {
switch ($oldwrappedquestion->qtype) {
case 'multichoice':
delete_records('question_multichoice', 'question', $oldwrappedquestion->id);
break;
case 'shortanswer':
delete_records('question_shortanswer', 'question', $oldwrappedquestion->id);
break;
case 'numerical':
delete_records('question_numerical', 'question', $oldwrappedquestion->id);
break;
default:
print_error('qtypenotrecognized', 'qtype_multianswer', '', $oldwrappedquestion->qtype);
$wrapped->id = 0;
}
}
} else {
$wrapped->id = 0;
}
}
$wrapped->name = $question->name;
$wrapped->parent = $question->id;
$previousid = $wrapped->id;
$wrapped->category = $question->category . ',1';
// save_question strips this extra bit off again.
$wrapped = $QTYPES[$wrapped->qtype]->save_question($wrapped, $wrapped, $question->course);
$sequence[] = $wrapped->id;
if ($previousid != 0 && $previousid != $wrapped->id) {
// for some reasons a new question has been created
// so delete the old one
delete_question($previousid);
}
}
// Delete redundant wrapped questions
if (is_array($oldwrappedquestions) && count($oldwrappedquestions)) {
foreach ($oldwrappedquestions as $oldwrappedquestion) {
delete_question($oldwrappedquestion->id);
}
}
if (!empty($sequence)) {
$multianswer = new stdClass();
$multianswer->question = $question->id;
$multianswer->sequence = implode(',', $sequence);
if ($oldid = get_field('question_multianswer', 'id', 'question', $question->id)) {
$multianswer->id = $oldid;
if (!update_record("question_multianswer", $multianswer)) {
$result->error = "Could not update cloze question options! " . "(id={$multianswer->id})";
return $result;
}
} else {
if (!insert_record("question_multianswer", $multianswer)) {
$result->error = "Could not insert cloze question options!";
return $result;
}
}
}
}
示例3: required_param
}
if (isset($_REQUEST['deleteselected'])) {
// delete selected questions from the category
if (isset($_REQUEST['confirm']) and confirm_sesskey()) {
// teacher has already confirmed the action
$deleteselected = required_param('deleteselected');
if ($_REQUEST['confirm'] == md5($deleteselected)) {
if ($questionlist = explode(',', $deleteselected)) {
// for each question either hide it if it is in use or delete it
foreach ($questionlist as $questionid) {
if (record_exists('quiz_question_instances', 'question', $questionid)) {
if (!set_field('question', 'hidden', 1, 'id', $questionid)) {
error('Was not able to hide question');
}
} else {
delete_question($questionid);
}
}
}
echo '</td></tr>';
echo '</table>';
echo '</div>';
redirect("edit.php?courseid={$course->id}");
} else {
error("Confirmation string was incorrect");
}
} else {
// teacher still has to confirm
// make a list of all the questions that are selected
$rawquestions = $_REQUEST;
$questionlist = '';
示例4: question_delete_activity
/**
* All question categories and their questions are deleted for this activity.
*
* @param object $cm the course module object representing the activity
* @param boolean $feedback to specify if the process must output a summary of its work
* @return boolean
*/
function question_delete_activity($cm, $feedback = true)
{
//To store feedback to be showed at the end of the process
$feedbackdata = array();
//Cache some strings
$strcatdeleted = get_string('unusedcategorydeleted', 'quiz');
$modcontext = get_context_instance(CONTEXT_MODULE, $cm->id);
if ($categoriesmods = get_records('question_categories', 'contextid', $modcontext->id, 'parent', 'id, parent, name')) {
//Sort categories following their tree (parent-child) relationships
//this will make the feedback more readable
$categoriesmods = sort_categories_by_tree($categoriesmods);
foreach ($categoriesmods as $category) {
//Delete it completely (questions and category itself)
//deleting questions
if ($questions = get_records("question", "category", $category->id)) {
foreach ($questions as $question) {
delete_question($question->id);
}
delete_records("question", "category", $category->id);
}
//delete the category
delete_records('question_categories', 'id', $category->id);
//Fill feedback
$feedbackdata[] = array($category->name, $strcatdeleted);
}
//Inform about changes performed if feedback is enabled
if ($feedback) {
$table = new stdClass();
$table->head = array(get_string('category', 'quiz'), get_string('action'));
$table->data = $feedbackdata;
print_table($table);
}
}
return true;
}
示例5: get_quiz
}
//dbconnect("localhost", "quizuser", "quiz", "quiz");
$row = get_quiz($_GET['edit']);
// make update
if (isset($_POST['update'])) {
$subject_id = $_POST['subject_id'];
$title = $_POST['title'];
$duration = $_POST['duration'];
$number_of_questions = $_POST['num_of_ques'];
$status = $_POST['status'];
//print_r($_POST);
update_quiz($_GET['edit'], $subject_id, $title, $duration, $number_of_questions, $status);
//redirect_to('allquestions.php?qid='.$_GET['edit']);
}
if (isset($_POST['delete_question'])) {
delete_question($_GET['quid']);
redirect_to('edit.php?edit=' . $_GET['edit']);
}
?>
<div class="container">
<a href="question.php?qid=<?php
echo $_GET['edit'];
?>
"><i class="fa fa-question fa-lg fa-fw"></i>Add new question</a>
<h1>update quiz</h1>
<form class="form-horizontal" method="POST" action="edit.php?edit=<?php
echo $_GET['edit'];
?>
">
示例6: RWSDQCat
function RWSDQCat($r_qci)
{
global $DB;
global $CFG;
$r_chn = $DB->get_records("question_categories", array("parent" => $r_qci));
if (count($r_chn) > 0) {
foreach ($r_chn as $r_chd) {
RWSDQCat($r_chd->id);
}
}
$r_qsts = $DB->get_records("question", array("category" => $r_qci));
if (count($r_qsts) > 0) {
foreach ($r_qsts as $r_q) {
if (respondusws_floatcompare($CFG->version, 2011070100, 2) >= 0) {
question_delete_question($r_q->id);
} else {
delete_question($r_q->id);
}
}
$DB->delete_records("question", array("category" => $r_qci));
}
$DB->delete_records("question_categories", array("id" => $r_qci));
}
示例7: add_reponse
$max = $_POST[MIN] == "" ? 0 : $_POST[MAX];
$msg = add_reponse($_POST[ID], $_POST[LIBELE], $min, $max);
}
break;
case DELETE_SONDAGE:
if (!isset($_GET[ID])) {
$msg = ERROR_CORRUPTED_DATA;
} else {
$msg = delete_sondage($_GET[ID]);
}
break;
case DELETE_QUESTION:
if (!isset($_GET[ID])) {
$msg = ERROR_CORRUPTED_DATA;
} else {
$msg = delete_question($_GET[ID]);
}
break;
case DELETE_USER:
if (!isset($_GET[ID])) {
$msg = ERROR_CORRUPTED_DATA;
} else {
$msg = delete_compte_as_admin($_GET[ID]);
}
break;
case DELETE_REPONSE:
if (!isset($_GET[ID])) {
$msg = ERROR_CORRUPTED_DATA;
} else {
$msg = delete_reponse($_GET[ID]);
}
示例8: save_question
<?php
}
}
}
}
?>
</div>
<?php
} else {
if (isset($_POST['save'])) {
$question = $_POST['question_text'];
$id = $_POST['question_id'];
save_question($id, $question);
} else {
if (isset($_POST['delete'])) {
delete_question($_POST['question_id']);
} else {
if (isset($_POST['add']) && !empty($_POST['question'])) {
add_question($_POST['question'], $_POST['category']);
} else {
?>
<div id="questions">
<?php
$categories = get_categories();
if ($categories) {
foreach ($categories as $category) {
?>
<table>
<thead>
<tr>
<td colspan="3"><h3><?php
示例9: question_delete_course
/**
* All non-used question categories and their questions are deleted and
* categories still used by other courses are moved to the site course.
*
* @param object $course an object representing the course
* @param boolean $feedback to specify if the process must output a summary of its work
* @return boolean
*/
function question_delete_course($course, $feedback = true)
{
global $CFG, $QTYPES;
//To detect if we have created the "container category"
$concatid = 0;
//The "container" category we'll create if we need if
$contcat = new object();
//To temporary store changes performed with parents
$parentchanged = array();
//To store feedback to be showed at the end of the process
$feedbackdata = array();
//Cache some strings
$strcatcontainer = get_string('containercategorycreated', 'quiz');
$strcatmoved = get_string('usedcategorymoved', 'quiz');
$strcatdeleted = get_string('unusedcategorydeleted', 'quiz');
if ($categories = get_records('question_categories', 'course', $course->id, 'parent', 'id, parent, name, course')) {
//Sort categories following their tree (parent-child) relationships
$categories = sort_categories_by_tree($categories);
foreach ($categories as $cat) {
//Get the full record
$category = get_record('question_categories', 'id', $cat->id);
//Check if the category is being used anywhere
if (question_category_isused($category->id, true)) {
//It's being used. Cannot delete it, so:
//Create a container category in SITEID course if it doesn't exist
if (!$concatid) {
$concat = new stdClass();
$concat->course = SITEID;
if (!isset($course->shortname)) {
$course->shortname = 'id=' . $course->id;
}
$concat->name = get_string('savedfromdeletedcourse', 'quiz', format_string($course->shortname));
$concat->info = $concat->name;
$concat->publish = 1;
$concat->stamp = make_unique_id_code();
$concatid = insert_record('question_categories', $concat);
//Fill feedback
$feedbackdata[] = array($concat->name, $strcatcontainer);
}
//Move the category to the container category in SITEID course
$category->course = SITEID;
//Assign to container if the category hasn't parent or if the parent is wrong (not belongs to the course)
if (!$category->parent || !isset($categories[$category->parent])) {
$category->parent = $concatid;
}
//If it's being used, its publish field should be 1
$category->publish = 1;
//Let's update it
update_record('question_categories', $category);
//Save this parent change for future use
$parentchanged[$category->id] = $category->parent;
//Fill feedback
$feedbackdata[] = array($category->name, $strcatmoved);
} else {
//Category isn't being used so:
//Delete it completely (questions and category itself)
//deleting questions
if ($questions = get_records("question", "category", $category->id)) {
foreach ($questions as $question) {
delete_question($question->id);
}
delete_records("question", "category", $category->id);
}
//delete the category
delete_records('question_categories', 'id', $category->id);
//Save this parent change for future use
if (!empty($category->parent)) {
$parentchanged[$category->id] = $category->parent;
} else {
$parentchanged[$category->id] = $concatid;
}
//Update all its child categories to re-parent them to grandparent.
set_field('question_categories', 'parent', $parentchanged[$category->id], 'parent', $category->id);
//Fill feedback
$feedbackdata[] = array($category->name, $strcatdeleted);
}
}
//Inform about changes performed if feedback is enabled
if ($feedback) {
$table = new stdClass();
$table->head = array(get_string('category', 'quiz'), get_string('action'));
$table->data = $feedbackdata;
print_table($table);
}
}
return true;
}
示例10: insert_question
<?php
include 'header.html';
require_once '../includes/db_conn.php';
require_once 'admin_fun.php';
if (isset($_POST['question_title']) && isset($_POST['key']) && isset($_POST['mark']) && isset($_POST['question_url'])) {
$question_title = $_POST['question_title'];
$key = $_POST['key'];
$mark = $_POST['mark'];
$type = $_POST['type'];
$quesion_url = $_POST['question_url'];
$quesion_id = $_POST['question_id'];
insert_question($question_id, $question_title, $key, $mark, $type, $question_url);
}
if (isset($_GET['delid'])) {
delete_question($_GET['delid']);
}
?>
<script type="text/javascript">
function del(){
var mymessage=confirm("确认删除吗?");
if(confirm(mymessage)==true){
return true;
}else{
return false;
}
}
</script>
<br>
<br>
示例11: process_actions
public function process_actions()
{
global $CFG, $DB;
/// Now, check for commands on this page and modify variables as necessary
if (optional_param('move', false, PARAM_BOOL) and confirm_sesskey()) {
// Move selected questions to new category
$category = required_param('category', PARAM_SEQUENCE);
list($tocategoryid, $contextid) = explode(',', $category);
if (!($tocategory = $DB->get_record('question_categories', array('id' => $tocategoryid, 'contextid' => $contextid)))) {
print_error('cannotfindcate', 'question');
}
$tocontext = get_context_instance_by_id($contextid);
require_capability('moodle/question:add', $tocontext);
$rawdata = (array) data_submitted();
$questionids = array();
foreach ($rawdata as $key => $value) {
// Parse input for question ids
if (preg_match('!^q([0-9]+)$!', $key, $matches)) {
$key = $matches[1];
$questionids[] = $key;
}
}
if ($questionids) {
list($usql, $params) = $DB->get_in_or_equal($questionids);
$sql = "";
$questions = $DB->get_records_sql("\n SELECT q.*, c.contextid\n FROM {question} q\n JOIN {question_categories} c ON c.id = q.category\n WHERE q.id {$usql}", $params);
foreach ($questions as $question) {
question_require_capability_on($question, 'move');
}
question_move_questions_to_category($questionids, $tocategory->id);
redirect($this->baseurl->out(false, array('category' => "{$tocategoryid},{$contextid}")));
}
}
if (optional_param('deleteselected', false, PARAM_BOOL)) {
// delete selected questions from the category
if ($confirm = optional_param('confirm', '', PARAM_ALPHANUM) and confirm_sesskey()) {
// teacher has already confirmed the action
$deleteselected = required_param('deleteselected', PARAM_RAW);
if ($confirm == md5($deleteselected)) {
if ($questionlist = explode(',', $deleteselected)) {
// for each question either hide it if it is in use or delete it
foreach ($questionlist as $questionid) {
$questionid = (int) $questionid;
question_require_capability_on($questionid, 'edit');
if ($DB->record_exists('quiz_question_instances', array('question' => $questionid))) {
$DB->set_field('question', 'hidden', 1, array('id' => $questionid));
} else {
delete_question($questionid);
}
}
}
redirect($this->baseurl);
} else {
print_error('invalidconfirm', 'question');
}
}
}
// Unhide a question
if ($unhide = optional_param('unhide', '', PARAM_INT) and confirm_sesskey()) {
question_require_capability_on($unhide, 'edit');
$DB->set_field('question', 'hidden', 0, array('id' => $unhide));
redirect($this->baseurl);
}
}
示例12: verify_authorization
<?php
include "designtemplate.php";
include "database.php";
include "validation.php";
verify_authorization("admin");
connect();
?>
<?php
if (isset($_POST['deletequestions'])) {
foreach ($_POST as $key => $value) {
$arr = explode("_", $key);
if ($arr[0] == 'checkbox') {
delete_question($arr[1]);
}
}
}
?>
<html>
<head>
<title>
Question Bank
</title>
</head>
<body>
<?php
connect();
示例13: exit
exit(get_particlesystem_by_id($request[1]));
}
if ($requestSize == 3) {
if ($request[2] == "") {
exit(get_particlesystem_by_id($request[1]));
}
}
handle_error();
default:
handle_error();
}
break;
case 'DELETE':
switch ($request[0]) {
case 'questions':
exit(delete_question($request[1]));
case 'particlesystems':
exit(delete_particlesystem($request[1]));
default:
handle_error();
}
break;
case 'POST':
switch ($request[0]) {
case 'particlesystems':
save_particle_system();
exit("");
case 'questions':
save_question();
exit("");
default: