question plugin

Re: question plugin

by Brijesh Yadav -
Number of replies: 0

Thanks Marcus

Simply I want to my own question type.  Admin can create type and save it. It is working. What is need, when user going go attempt my question  that time user has drop down  to select data and save attempt. I don't want any answers. But i want show selected data for all pages like review page with feedback.

class qtype_my_edit_form extends question_edit_form {

    /**

     * Add question-type specific form fields.

     *

     * @param object $mform the form being built.

     */

    protected function definition_inner($mform) {

        

    }


    public function qtype() {

        return 'my';

    }

}

---------------------------------------------------------  render page--------------------------------------------------------------------------------------

class qtype_gpex365question_renderer extends qtype_renderer {

    public function formulation_and_controls(question_attempt $qa,

            question_display_options $options) {

        $question = $qa->get_question();

        $response = $qa->get_last_qt_var('answer', '');

        $inputname = $qa->get_qt_field_name('answer');      

   }

           $usersqldata ="select * from {user}";

         $selectedusers  = $DB->get_record_sql($usersqldata);

        $selectedusers->user;

        $userlist = array();

        foreach($userdata as $users){

            $userlist[$users->id]= $users->firstname." ".$users->lastname;

        }

         

        $radiotrue = html_writer::empty_tag('input', $trueattributes) .

                html_writer::tag('label', get_string('true', 'qtype_gpex365question'),

                array('for' => $trueattributes['id']));

        $radiofalse = html_writer::empty_tag('input', $falseattributes) .

                html_writer::tag('label', get_string('false', 'qtype_gpex365question'),

                array('for' => $falseattributes['id']));

       

        $result = '';

        $result .= html_writer::tag('div', $question->format_questiontext($qa),

                array('class' => 'qtext'));


        $result .= html_writer::start_tag('div', array('class' => 'ablock'));

        $result .= html_writer::tag('div', get_string('selectone', 'qtype_gpex365question'),

                array('class' => 'prompt'));


        $result .= html_writer::start_tag('div', array('class' => 'answer'));

        $result .= html_writer::select($userlist,'users',$selectedusers->user);

              

        $result .= html_writer::end_tag('div'); // Answer.

        $result .= html_writer::empty_tag('input', array('name'=>'gpex365question','type'=>'hidden','value'=>'gpex365question'));

        $result .= html_writer::empty_tag('input', array('name'=>'questionid','type'=>'hidden','value'=>$question->id,'id'=>'questionvalue'));

       

        $result .= html_writer::end_tag('div'); // Ablock.


        if ($qa->get_state() == question_state::$invalid) {

            $result .= html_writer::nonempty_tag('div',

                    $question->get_validation_error($responsearray),

                    array('class' => 'validationerror'));

        }


        return $result;

    }

One thing more :  I just want to concept.