$addanswers = optional_param('addanswers', '', PARAM_TEXT);
list($course, $cm) = get_course_and_cm_from_cmid($cmid, 'treasurehunt');
$treasurehunt = $DB->get_record('treasurehunt', array('id' => $cm->instance), '*', MUST_EXIST);
require_login($course, true, $cm);
$context = context_module::instance($cm->id);
$url = new moodle_url('/mod/treasurehunt/editstage.php', array('cmid' => $cmid));
if (!empty($id)) {
    $url->param('id', $id);
}
if (!empty($roadid)) {
    $url->param('roadid', $roadid);
}
$PAGE->set_url($url);
require_capability('mod/treasurehunt:managetreasurehunt', $context);
if (!treasurehunt_is_edition_loked($treasurehunt->id, $USER->id)) {
    $lockid = treasurehunt_renew_edition_lock($treasurehunt->id, $USER->id);
    $renewlocktime = (treasurehunt_get_setting_lock_time() - 5) * 1000;
    $PAGE->requires->js_call_amd('mod_treasurehunt/renewlock', 'renew_edition_lock', array($treasurehunt->id, $lockid, $renewlocktime));
    if ($id) {
        // if entry is specified
        require_capability('mod/treasurehunt:editstage', $context);
        $title = get_string('editingstage', 'treasurehunt');
        $sql = 'SELECT id,name,cluetext,cluetextformat,cluetexttrust,' . 'activitytoend,roadid,questiontext,questiontextformat,' . 'questiontexttrust,playstagewithoutmoving FROM {treasurehunt_stages}  WHERE id=?';
        $params = array($id);
        if (!($stage = $DB->get_record_sql($sql, $params))) {
            print_error('invalidentry');
        }
        // Si existe la pregunta recojo las respuestas.
        if ($stage->questiontext !== '') {
            // Hago que se muestre la pregunta.
            $stage->addsimplequestion = optional_param('addsimplequestion', 1, PARAM_INT);
 public static function renew_lock($treasurehuntid, $lockid)
 {
     global $USER;
     $params = self::validate_parameters(self::renew_lock_parameters(), array('treasurehuntid' => $treasurehuntid, 'lockid' => $lockid));
     $cm = get_coursemodule_from_instance('treasurehunt', $params['treasurehuntid']);
     $context = context_module::instance($cm->id);
     self::validate_context($context);
     require_capability('mod/treasurehunt:managetreasurehunt', $context);
     if (isset($params['lockid'])) {
         if (treasurehunt_edition_lock_id_is_valid($params['lockid'])) {
             $lockid = treasurehunt_renew_edition_lock($params['treasurehuntid'], $USER->id);
             $status['code'] = 0;
             $status['msg'] = 'Se ha renovado el bloqueo con exito';
         } else {
             $status['code'] = 1;
             $status['msg'] = 'Se ha editado esta caza del tesoro, recargue esta página';
         }
     } else {
         if (!treasurehunt_is_edition_loked($params['treasurehuntid'], $USER->id)) {
             $lockid = treasurehunt_renew_edition_lock($params['treasurehuntid'], $USER->id);
             $status['code'] = 0;
             $status['msg'] = 'Se ha creado el bloqueo con exito';
         } else {
             $status['code'] = 1;
             $status['msg'] = 'La caza del tesoro está siendo editada';
         }
     }
     $result = array();
     $result['status'] = $status;
     $result['lockid'] = $lockid;
     return $result;
 }