. /** * Prints an instance of colab. * * @package colab * @copyright 2020 Your Name * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ require(__DIR__.'/../../config.php'); require_once(__DIR__.'/lib.php'); global $COURSE, $DB, $CFG; // Course_module ID, or $id = optional_param('id', 0, PARAM_INT); // ... module instance id. $c = optional_param('c', 0, PARAM_INT); if ($id) { $cm = get_coursemodule_from_id('colab', $id, 0, false, MUST_EXIST); $course = $DB->get_record('course', array('id' => $cm->course), '*', MUST_EXIST); $moduleinstance = $DB->get_record('colab', array('id' => $cm->instance), '*', MUST_EXIST); } else if ($c) { $moduleinstance = $DB->get_record('colab', array('id' => $n), '*', MUST_EXIST); $course = $DB->get_record('course', array('id' => $moduleinstance->course), '*', MUST_EXIST); $cm = get_coursemodule_from_instance('colab', $moduleinstance->id, $course->id, false, MUST_EXIST); } else { print_error(get_string('missingidandcmid', colab)); } require_login($course, true, $cm); $modulecontext = context_module::instance($cm->id); $event = \mod_colab\event\course_module_viewed::create(array( 'objectid' => $moduleinstance->id, 'context' => $modulecontext )); $event->add_record_snapshot('course', $course); $event->add_record_snapshot('colab', $moduleinstance); $event->trigger(); $PAGE->set_url('/mod/colab/view.php', array('id' => $cm->id)); $PAGE->set_title(format_string($moduleinstance->name)); $PAGE->set_heading(format_string($course->fullname)); $PAGE->set_context($modulecontext); echo $OUTPUT->header(); echo "meu ip : ".ip2long(getremoteaddr())."
" ; $achou_dupla = 0; //verifica se já não foi excolhido try{ $params = array('ativade_atual' => $moduleinstance->id,'usuario'=>$USER->id); $records = $DB->get_record_sql("select obs as obs from {colab_ip} where userid = :usuario" ,$params); print("reultado obs: " ); print($records->obs); } catch (Exception $e) { echo 'erro obs: ', $e->getMessage(), "\n"; $dupla = ''; } //se não localizou dupla ou não tem registro if($records->obs == 0 or $records->obs == ' ' ){ echo "não registou ou não foi escolhido
"; //tenta ver se tem uma dupla //tenta achar uma pessoa esperando try{ $params = array('usuario'=>$USER->id); $records = $DB->get_record_sql("select ip_user as ip_dupla from {colab_ip} where userid != :usuario and obs = 0 limit 1" ,$params); //echo "usuário".$USER->id; print("reultado dupla " ); print($records->ip_dupla); } catch (Exception $e) { echo 'erro dupla: ', $e->getMessage(), "\n"; $dupla = ''; } if($records->ip_dupla == 0 or $records->ip_dupla == ' ' ){print("vc é o primeiro, recarregue a página" );} else { //futura dupla localizada try{ $value-> id = 1; $value-> userid = $USER->id ; $value-> ip_user = ip2long(getremoteaddr()) ; $value-> time = time(); $value-> obs = $records->ip_dupla; $DB->insert_record("colab_ip", $value); echo "registra o IP
"; } catch (Exception $e) { echo 'erro regisra ip pós dupla: ', $e->getMessage(), "\n"; $dupla = ''; } print("achou uma dupla esperando" ); print($records->ip_dupla ); $DB->execute('update mdla_colab_ip set obs = :ip_meu where ip_user = :ip_dupla', array('ip_meu'=>ip2long(getremoteaddr()),'ip_dupla'=>$records->ip_dupla)); //executa o jogo com a dupla $achou_dupla = 1; echo ""; } } else { //tem uma dupla te esperando echo "tem uma dupla te esperando "; echo $records->obs; $achou_dupla = 1; $DB->execute('update mdla_colab_ip set obs = :ip_dupla where ip_user = :ip_meu', array('ip_meu'=>ip2long(getremoteaddr()),'ip_dupla'=>$records->obs)); echo ""; } //caso já tenha localizado a dupla, não precisa atualizar o ip if($achou_dupla == 0){ //atualização de IP //deleta o ultimo ip try { //$DB->delete_records("colab_ip", array('userid'=>$CFG->dbuser)); $DB->delete_records("colab_ip", array('userid'=>$USER->id)); } catch (Exception $e) { echo 'Caught exception sem registro de ip: ', $e->getMessage(), "\n"; } //salva o ip atual try { $value-> id = 1; $value-> userid = $USER->id ; $value-> ip_user = ip2long(getremoteaddr()) ; $value-> time = time(); $value-> obs = 0; $DB->insert_record("colab_ip", $value); } catch (Exception $e) { echo 'Caught exception não foi possivel grava registo de ip: ', $e->getMessage(), "\n"; } } //print_r($CFG); echo $OUTPUT->footer();