|
@@ -1,52 +1,153 @@
|
|
|
<?php
|
|
<?php
|
|
|
-// Para depuracao: escrever no arquivo '/var/www/html/saw/mod/iassign/'
|
|
|
|
|
|
|
|
|
|
|
|
+// To be used in development version of backup/restore process.
|
|
|
|
|
+// Write information about each {iassignment_submission} in directory: /mod/iassign/ilm_debug/output_restore_after_execute_*.txt
|
|
|
|
|
+//
|
|
|
|
|
+// @calledby ./mod/iassign/backup/moodle2/restore_iassign_stepslib.php:
|
|
|
|
|
+
|
|
|
|
|
+// require_once dirname(__FILE__); // /var/www/html/moodle
|
|
|
|
|
+// require_once(realpath(dirname(__FILE__)); //
|
|
|
|
|
+
|
|
|
|
|
+// Moodle 4.x : /var/www/html/moodle/mod/iassign
|
|
|
|
|
+// Moodle 5.0 : /var/www/html/moodle/mod/iassign
|
|
|
|
|
+// Moodle 5.1 : /var/www/html/moodle/public/mod/iassign
|
|
|
|
|
+
|
|
|
|
|
+//CAUTION: Since on Moodle 5 iAssing is under /var/www/html/moodle/public/mod, need to use "../../../../config.php"
|
|
|
|
|
+require_once("../../../config.php"); // Not necessary, since who loads this
|
|
|
|
|
+// (/mod/iassign/backup/moodle2/restore_iassign_stepslib.php), already has "config.php"!
|
|
|
|
|
+
|
|
|
|
|
+// Teste paprika3:
|
|
|
|
|
+// require_once("/var/www/html/saw_limpo/config.php");
|
|
|
|
|
+//_ echo "CFG->wwwroot=" . $CFG->wwwroot . "<br/>" . "_SERVER['DOCUMENT_ROOT']=" . $_SERVER['DOCUMENT_ROOT'] . "<br/>";
|
|
|
|
|
+//_ $doc_root = $_SERVER['DOCUMENT_ROOT'];
|
|
|
|
|
+//_ if ($doc_root=="/var/www/html")
|
|
|
|
|
+//_ $pathbase = $doc_root . "/" . get_moodle_name($CFG->wwwroot) . "/mod/iassign/ilm_debug/"; // "/var/www/html/...(moodle).../mod/iassign/ilm_debug/";
|
|
|
|
|
+//_ echo "get_moodle_name=" . get_moodle_name($CFG->wwwroot) . "<br/>" . "pathbase=" . $pathbase . "<br/>";
|
|
|
|
|
+//_ // CFG->wwwroot=http://localhost/saw_limpo
|
|
|
|
|
+//_ // _SERVER['DOCUMENT_ROOT']=/var/www/html
|
|
|
|
|
+//_ // get_moodle_name=saw_limpo
|
|
|
|
|
+//_ // pathbase=/var/www/html/saw_limpo/mod/iassign/ilm_debug/
|
|
|
|
|
+//_ exit;
|
|
|
|
|
+
|
|
|
|
|
+// Givem URL (usually from $CFG->wwwroot) return the Moodle name
|
|
|
|
|
+function get_moodle_name ($wwwroot) {
|
|
|
|
|
+ // No "http://saw.atp.usp.br" usar a linha abaixo e comentar as demais, senao devolvera: saw.atp.usp.br
|
|
|
|
|
+ // $CFG->wwwroot = 'http://localhost/saw_limpo';
|
|
|
|
|
+ $items = explode("/", $wwwroot);
|
|
|
|
|
+ $num = count($items);
|
|
|
|
|
+ // echo "get_moodle_name(.): num=" . $num . ", items[" . ($num-1) . "]= " . $items[$num-1] . "<br/>";
|
|
|
|
|
+ if ($num==3) { // "saw.atp.usp.br"
|
|
|
|
|
+ $wwwroot = $items[$num-1];
|
|
|
|
|
+ $items = explode(".", $wwwroot);
|
|
|
|
|
+ return $items[0]; // apenas "saw" de "saw.atp.usp.br"
|
|
|
|
|
+ }
|
|
|
|
|
+ if ($num>0) return $items[$num-1];
|
|
|
|
|
+ return $wwwroot;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
|
|
|
// Write each personal student file in './<turma>/<N>_<name>.txt'
|
|
// Write each personal student file in './<turma>/<N>_<name>.txt'
|
|
|
// Param: $filetype1 in "student", "log", "sendemail"
|
|
// Param: $filetype1 in "student", "log", "sendemail"
|
|
|
// Return 1 in case of success; -1 in case do not overwrite
|
|
// Return 1 in case of success; -1 in case do not overwrite
|
|
|
function writeContent ($filetype1, $pathbase, $outputFile, $msgToRegister) {
|
|
function writeContent ($filetype1, $pathbase, $outputFile, $msgToRegister) {
|
|
|
- global $GROUP, $WRITEMSG, $OVERWRITE;
|
|
|
|
|
|
|
+ global $CFG, $GROUP, $WRITEMSG, $OVERWRITE;
|
|
|
|
|
|
|
|
- $pathbase = "/var/www/html/saw/mod/iassign/ilm_debug/"; // "/mod/iassign/ilm_debug/";
|
|
|
|
|
- $outputFile = $pathbase . $outputFile;
|
|
|
|
|
|
|
+ $doc_root = $_SERVER['DOCUMENT_ROOT']; // Get absolut path only until HTML structure. Usually: /var/www/html
|
|
|
|
|
+ if ($doc_root=="/var/www/html" || $doc_root=="/var/www/html/") {
|
|
|
|
|
+ // Na Paprika3: doc_root=/var/www/html/
|
|
|
|
|
+ $doc_root = "/var/www/html"; // remove last "/" (if is the case)
|
|
|
|
|
+ $moodle_name = get_moodle_name($CFG->wwwroot);
|
|
|
|
|
+ echo "1: get_moodle_name(CFG->wwwroot)=" . $moodle_name . "<br/>\n";
|
|
|
|
|
+ if (!$moodle_name || $moodle_name=="html") $moodle_name = "saw_limpo"; // para Paprika3
|
|
|
|
|
+ $pathbase = $doc_root . "/" . $moodle_name . "/mod/iassign/ilm_debug/"; // "/var/www/html/...(moodle).../mod/iassign/ilm_debug/";
|
|
|
|
|
+ echo "2: pathbase=" . $pathbase . "<br/>\n";
|
|
|
|
|
+ }
|
|
|
|
|
+ else // no 'homologacao.saw.atp.usp.br' ou 'saw.atp.usp.br'
|
|
|
|
|
+ $pathbase = $doc_root . "mod/iassign/ilm_debug/"; // "/var/www/...(moodle).../mod/iassign/ilm_debug/";
|
|
|
|
|
+ $complete_outputFile = $pathbase . $outputFile;
|
|
|
|
|
+ echo "escreva.php: doc_root=_SERVER['DOCUMENT_ROOT']=" . $_SERVER['DOCUMENT_ROOT'] . "<br/> pathbase = " . $pathbase . "<br/>\n"; //paprika3: /var/www/html
|
|
|
|
|
+ //_ // CFG->wwwroot=http://localhost/saw_limpo
|
|
|
|
|
+ //_ // _SERVER['DOCUMENT_ROOT']=/var/www/html
|
|
|
|
|
+ //_ // get_moodle_name=saw_limpo
|
|
|
|
|
+ //_ // pathbase=/var/www/html/saw_limpo/mod/iassign/ilm_debug/
|
|
|
|
|
|
|
|
if (!is_writable($pathbase)) { // TRUE se arquivo existe e pode ser escrito
|
|
if (!is_writable($pathbase)) { // TRUE se arquivo existe e pode ser escrito
|
|
|
// $file_debug .= "Error: '" . $completfilepath . "' could not be registered! Perhaps the directory or the file has permission problem?<br/>\n";
|
|
// $file_debug .= "Error: '" . $completfilepath . "' could not be registered! Perhaps the directory or the file has permission problem?<br/>\n";
|
|
|
- //D echo "$outputFile, $filetype1<br/>";
|
|
|
|
|
- print "Erro! Problema de acesso ao servidor! Por favor, avise ao administrador (<tt>$pathbase</tt> nao acessivel para escrita).<br/>"; // . $file_debug . "
|
|
|
|
|
|
|
+ //D echo "$complete_outputFile, $filetype1<br/>";
|
|
|
|
|
+ print "Erro! Problema de acesso ao servidor! Por favor, avise ao administrador (<tt>" . $pathbase . "</tt> nao acessivel para escrita).<br/>"; // . $file_debug . "
|
|
|
exit(0);
|
|
exit(0);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// $result = writeContent("file", $pathbase, $filename, $msgToRegister);
|
|
// $result = writeContent("file", $pathbase, $filename, $msgToRegister);
|
|
|
// print "escreva.php: result=$result<br/>";
|
|
// print "escreva.php: result=$result<br/>";
|
|
|
|
|
+ //D echo "escreva.php: writeContent($filetype1, $pathbase, $outputFile, $msgToRegister): complete_outputFile = " . $complete_outputFile . "<br/>";
|
|
|
|
|
|
|
|
// write personal email file
|
|
// write personal email file
|
|
|
// To write: verify if the file does not exists or have permission to overwrite
|
|
// To write: verify if the file does not exists or have permission to overwrite
|
|
|
- if (is_file($outputFile)) { // already exist this file
|
|
|
|
|
- // $outputFile .= $outputFile . '_' . date('Y_m_d_h_m');
|
|
|
|
|
- } // if (is_file($outputFile))
|
|
|
|
|
|
|
+ if (is_file($complete_outputFile)) { // already exist this file
|
|
|
|
|
+ // $complete_outputFile .= $outputFile . '_' . date('Y_m_d_h_m');
|
|
|
|
|
+ } // if (is_file($complete_outputFile))
|
|
|
|
|
|
|
|
if (1==1) { // write/overwrite the file
|
|
if (1==1) { // write/overwrite the file
|
|
|
- $fpointer = fopen($outputFile, "w"); // write - if executed, it clear the previou content at this file
|
|
|
|
|
|
|
+ //D echo "escreva.php!writeContent(.): outputFile=" . $outputFile . ", complete_outputFile=" . $complete_outputFile . "<br/>\n";
|
|
|
|
|
+ $fpointer = fopen($complete_outputFile, "a"); // a=append; w=write - if executed, it clear the previou content at this file
|
|
|
if (!$fpointer) {
|
|
if (!$fpointer) {
|
|
|
- $file_debug .= "Erro: nao foi possivel abrir o roteiro ($outputFile)!<br/>\n";
|
|
|
|
|
|
|
+ $file_debug .= "Erro: nao foi possivel abrir o roteiro (" . $complete_outputFile . ")!<br/>\n";
|
|
|
// it was not possible to open the file '$completfilepath" . $file_name . "'!<br/>\n";
|
|
// it was not possible to open the file '$completfilepath" . $file_name . "'!<br/>\n";
|
|
|
print "<br/>" . $file_debug . "<br/>\n";
|
|
print "<br/>" . $file_debug . "<br/>\n";
|
|
|
- //D echo "writeContent: $filetype1, outputFile=$outputFile<br/>\n";
|
|
|
|
|
|
|
+ //D echo "writeContent: $filetype1, outputFile=$complete_outputFile<br/>\n";
|
|
|
return 0;
|
|
return 0;
|
|
|
}
|
|
}
|
|
|
fwrite($fpointer, $msgToRegister . "\n");
|
|
fwrite($fpointer, $msgToRegister . "\n");
|
|
|
- // echo " - outputFile=$outputFile : WRITEMSG=$WRITEMSG, OVERWRITE=$OVERWRITE, gerado com sucesso!<br/>\n";
|
|
|
|
|
|
|
+ // echo " - outputFile=$complete_outputFile : WRITEMSG=$WRITEMSG, OVERWRITE=$OVERWRITE, gerado com sucesso!<br/>\n";
|
|
|
fclose($fpointer);
|
|
fclose($fpointer);
|
|
|
}
|
|
}
|
|
|
else {
|
|
else {
|
|
|
- // print "Nao gera os arquivos personalizados para email aos alunos ('$outputFile')<br/>\n"; // admin/<turma>/<N>_<name>.txt
|
|
|
|
|
|
|
+ // print "Nao gera os arquivos personalizados para email aos alunos ('$complete_outputFile')<br/>\n"; // admin/<turma>/<N>_<name>.txt
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
return 1;
|
|
return 1;
|
|
|
} // function writeContent($outputFile, $msgToRegister)
|
|
} // function writeContent($outputFile, $msgToRegister)
|
|
|
|
|
|
|
|
|
|
+/*
|
|
|
|
|
+
|
|
|
|
|
+$date_aux = date('Y_m_d_H_i_s');
|
|
|
|
|
+//xxx $msgD = "Inicio: " . $date_aux . "\n";
|
|
|
|
|
+$msgD = "Inicio: " . $date_aux . "<br/>\n"; //xxx
|
|
|
|
|
+// echo $msgD . "<br/>\n"; //xxx
|
|
|
|
|
+
|
|
|
|
|
+$timeWrite = $date_aux; // Year_Month_Day_Hour_Minutes_Seconds
|
|
|
|
|
+$filenamewrite = "output_restore_after_execute_" . $timeWrite . ".txt";
|
|
|
|
|
+echo "filenamewrite=" . $filenamewrite . "<br/>";
|
|
|
|
|
+//DEBUG path:
|
|
|
|
|
+ if (!isset($CFG->wwwroot)) { $CFG = new stdClass(); $CFG->wwwroot = "/var/www/html"; }
|
|
|
|
|
+ $outputFile = "";
|
|
|
|
|
+ $doc_root = $_SERVER['DOCUMENT_ROOT'];
|
|
|
|
|
+ echo "doc_root=" . $doc_root. "<br/>\n";
|
|
|
|
|
+ if ($doc_root=="/var/www/html" || $doc_root=="/var/www/html/") {
|
|
|
|
|
+ // Na Paprika3: doc_root=/var/www/html/
|
|
|
|
|
+ $doc_root = "/var/www/html"; // remove last "/" (if is the case)
|
|
|
|
|
+ $moodle_name = get_moodle_name($CFG->wwwroot);
|
|
|
|
|
+ echo "1: get_moodle_name(CFG->wwwroot)=" . $moodle_name . "<br/>\n";
|
|
|
|
|
+ if (!$moodle_name || $moodle_name=="html") $moodle_name = "saw_limpo"; // para Paprika3
|
|
|
|
|
+ $pathbase = $doc_root . "/" . $moodle_name . "/mod/iassign/ilm_debug/"; // "/var/www/html/...(moodle).../mod/iassign/ilm_debug/";
|
|
|
|
|
+ echo "2: pathbase=" . $pathbase . "<br/>\n";
|
|
|
|
|
+ }
|
|
|
|
|
+ else { // no 'homologacao.saw.atp.usp.br' ou 'saw.atp.usp.br'
|
|
|
|
|
+ $pathbase = $doc_root . "mod/iassign/ilm_debug/"; // "/var/www/...(moodle).../mod/iassign/ilm_debug/";
|
|
|
|
|
+ echo "3: pathbase=" . $pathbase . "<br/>\n";
|
|
|
|
|
+ }
|
|
|
|
|
+ echo "pathbase=" . $pathbase . "<br/>\n";
|
|
|
|
|
+ $complete_outputFile = $pathbase . $outputFile;
|
|
|
|
|
+ echo "complete_outputFile=" . $complete_outputFile . "<br/>\n";
|
|
|
|
|
+ echo "escreva.php: doc_root=_SERVER['DOCUMENT_ROOT']=" . $_SERVER['DOCUMENT_ROOT'] . "<br/> pathbase = " . $pathbase . "<br/>\n"; //paprika3: /var/www/html
|
|
|
|
|
+
|
|
|
|
|
+$resp = writeContent("", "", $filenamewrite, $msgD);
|
|
|
|
|
+// $resp2 = writeContent("", "", $filenamewrite, "Segunda escrita!\n" . $msgD);
|
|
|
|
|
+
|
|
|
|
|
+echo "Final " . $resp . "<br/>\n";
|
|
|
|
|
+// echo "Final " . $resp2 . "<br/>\n";
|
|
|
|
|
+
|
|
|
|
|
+*/
|
|
|
|
|
|
|
|
?>
|
|
?>
|