Skip to content
This repository was archived by the owner on Dec 6, 2022. It is now read-only.

Commit 40ad966

Browse files
committed
Rework Generale
Aggiunta sistema ajax su voti e registro. Aggiunta la sezione circolari. Aggiunta la possibilità di avere più componenti nello stesso account.
1 parent 0f79fb5 commit 40ad966

2,340 files changed

Lines changed: 1164525 additions & 468 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

api/ajax/comunicazioni.php

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
<?php
2+
// server should keep session data for AT LEAST 1 hour
3+
ini_set('session.gc_maxlifetime', 7200);
4+
5+
// each client should remember their session id for EXACTLY 1 hour
6+
session_set_cookie_params(7200);
7+
8+
session_start(); // ready to go!
9+
10+
//Controllo login
11+
if (strpos($_SERVER['PHP_SELF'], 'login') === false) {
12+
if (empty($_SESSION["cookies"]["__AntiXsrfToken"]) || empty($_SESSION["cookies"]["ASP.NET_SessionId"]) || $_SESSION["expire"] < time()){
13+
header("location: /login?page=".$_SERVER['PHP_SELF']);
14+
exit;
15+
}
16+
}
17+
18+
include "../../vendor/autoload.php";
19+
include "../class.php";
20+
21+
use DiDom\Document;
22+
use DiDom\Query;
23+
use DiDom\Element;
24+
25+
$axios = new axios;
26+
27+
$axios->postREFamilyData = $_SESSION["getPostREFamily"];
28+
$axios->QuadrimestreFT = $_COOKIE["QuadrimestreFT"];
29+
$axios->QuadrimestreFTAll = $_SESSION["QuadrimestreFTAll"];
30+
$axios->student = $_SESSION["getStudentId"][$_COOKIE['studentNumber']];
31+
$axios->cookies = $_SESSION["cookies"];
32+
33+
$result = $axios->getCommunication();
34+
35+
echo json_encode($result);
36+
37+

api/ajax/mediaMateria.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
$axios = new axios;
2222

2323
$axios->postREFamilyData = $_SESSION["getPostREFamily"];
24+
$axios->QuadrimestreFT = $_COOKIE["QuadrimestreFT"];
25+
$axios->QuadrimestreFTAll = $_SESSION["QuadrimestreFTAll"];
2426
$axios->student = $_SESSION["getStudentId"][$_COOKIE['studentNumber']];
2527
$axios->cookies = $_SESSION["cookies"];
2628

api/ajax/oreAssenza.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@
2525
$axios = new axios;
2626

2727
$axios->postREFamilyData = $_SESSION["getPostREFamily"];
28+
$axios->QuadrimestreFT = $_COOKIE["QuadrimestreFT"];
29+
$axios->QuadrimestreFTAll = $_SESSION["QuadrimestreFTAll"];
2830
$axios->student = $_SESSION["getStudentId"][$_COOKIE['studentNumber']];
2931
$axios->cookies = $_SESSION["cookies"];
3032

api/ajax/registro.php

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
<?php
2+
// server should keep session data for AT LEAST 1 hour
3+
ini_set('session.gc_maxlifetime', 7200);
4+
5+
// each client should remember their session id for EXACTLY 1 hour
6+
session_set_cookie_params(7200);
7+
8+
session_start(); // ready to go!
9+
10+
//Controllo login
11+
if (strpos($_SERVER['PHP_SELF'], 'login') === false) {
12+
if (empty($_SESSION["cookies"]["__AntiXsrfToken"]) || empty($_SESSION["cookies"]["ASP.NET_SessionId"]) || $_SESSION["expire"] < time()){
13+
header("location: /login?page=".$_SERVER['PHP_SELF']);
14+
exit;
15+
}
16+
}
17+
18+
include "../../vendor/autoload.php";
19+
include "../class.php";
20+
21+
use DiDom\Document;
22+
use DiDom\Query;
23+
use DiDom\Element;
24+
25+
$axios = new axios;
26+
27+
$axios->postREFamilyData = $_SESSION["getPostREFamily"];
28+
$axios->QuadrimestreFT = $_COOKIE["QuadrimestreFT"];
29+
$axios->QuadrimestreFTAll = $_SESSION["QuadrimestreFTAll"];
30+
$axios->student = $_SESSION["getStudentId"][$_COOKIE['studentNumber']];
31+
$axios->cookies = $_SESSION["cookies"];
32+
33+
$result = $axios->getHomeworkFull($_GET["date"]);
34+
35+
echo json_encode($result);
36+
37+

api/ajax/voti.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@
2525
$axios = new axios;
2626

2727
$axios->postREFamilyData = $_SESSION["getPostREFamily"];
28+
$axios->QuadrimestreFT = $_COOKIE["QuadrimestreFT"];
29+
$axios->QuadrimestreFTAll = $_SESSION["QuadrimestreFTAll"];
2830
$axios->student = $_SESSION["getStudentId"][$_COOKIE['studentNumber']];
2931
$axios->cookies = $_SESSION["cookies"];
3032

api/class.php

Lines changed: 59 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class setting
1212
Maggiori informazioni sulla wiki (link)
1313
*/
1414
public $mysql_ip_private_key = "localhost";
15-
public $mysql_user_private_key = "user";
15+
public $mysql_user_private_key = "registro_elettronico";
1616
public $mysql_password_private_key = "password";
1717
public $mysql_database_private_key = "registro_elettronico";
1818

@@ -42,6 +42,9 @@ class axios extends setting
4242

4343
public $postREFamilyData; //Vari input inseriti a caso nella pagina (perché axios non sa fare niente)
4444

45+
public $QuadrimestreFT; //Indica il periodo dell' anno, se è invalido esplode (es. FT01, FT02...)
46+
public $QuadrimestreFTAll; //Indica tutti i periodi dell' anno [array]
47+
4548
public function checkKey()
4649
{
4750
// Create connection
@@ -380,6 +383,32 @@ public function getStudentId()
380383
return $output;
381384
}
382385

386+
public function getPeriodYear()
387+
{
388+
//Ottieni il numero dello studente
389+
$ch = curl_init("https://family.axioscloud.it/Secret/REFamily.aspx");
390+
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
391+
392+
curl_setopt($ch, CURLOPT_REFERER, "https://family.axioscloud.it/Secret/RELogin.aspx"); //link da cui provieni
393+
394+
curl_setopt($ch, CURLOPT_COOKIE, "__AntiXsrfToken=" . $this->cookies['__AntiXsrfToken'] . "; ASP.NET_SessionId=" . $this->cookies['ASP.NET_SessionId']);
395+
396+
$result = curl_exec($ch);
397+
curl_close($ch);
398+
399+
$document = new Document($result);
400+
401+
$periodi = $document->find('#ContentPlaceHolderMenu_ddlFT')[0]; //Trova La lista dei periodi dell' anno
402+
foreach ($periodi->find('option') as $key => $value) { //Per ogni opzione nel select
403+
if (!empty($value->getAttribute('selected'))) {
404+
$output["selected"] = $value->getAttribute('value'); //ottieni il value (es: FT01, FT02...)
405+
} else {
406+
$output[] = $value->getAttribute('value'); //ottieni il value (es: FT01, FT02...)
407+
}
408+
}
409+
return $output;
410+
}
411+
383412
public function getHomework($date = null)
384413
{
385414
if ($date == null)
@@ -723,6 +752,8 @@ public function getVote()
723752
trim($this->postREFamilyData['name'][1][2], "\"") => trim($this->postREFamilyData['value'][1][2], "\""),
724753
'__EVENTARGUMENT' => "RED",
725754
'__EVENTTARGET' => "FAMILY",
755+
// Quadrimestre
756+
'ctl00$ContentPlaceHolderMenu$ddlFT' => $this->QuadrimestreFT,
726757
//Dati dell'alunno
727758
'ctl00$ContentPlaceHolderBody$txtIDAluSelected' => $this->student['num'],
728759
'ctl00$ContentPlaceHolderBody$txtAluSelected' => $this->student['id'],
@@ -776,7 +807,7 @@ public function getAverageVote()
776807
{
777808
//Vai alla pagina delle della tabella assenza e invia il numero dello studente
778809
//Abilitazione delle comunicazioni
779-
$base64id = base64_encode($this->student['id']."|AXIOSMERDA"); // base64 da inviare con l' id dello studente seguito da "|FT01"
810+
$base64id = base64_encode($this->student['id']."|".$this->QuadrimestreFT); // base64 da inviare con l' id dello studente seguito da "|FT01"
780811
$ch = curl_init("https://family.axioscloud.it/Secret/APP_Ajax_Get.aspx?Action=FAMILY_REGISTRO_DOCENTI_GRIGLIA&Others=".$base64id);
781812
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
782813
curl_setopt($ch, CURLOPT_HEADER, 1);
@@ -786,6 +817,10 @@ public function getAverageVote()
786817
curl_setopt($ch, CURLOPT_COOKIE, "__AntiXsrfToken=" . $this->cookies['__AntiXsrfToken'] . "; ASP.NET_SessionId=" . $this->cookies['ASP.NET_SessionId']);
787818

788819
curl_setopt($ch, CURLOPT_POST, 1);
820+
$post = [
821+
// Quadrimestre
822+
'ctl00$ContentPlaceHolderMenu$ddlFT' => $this->QuadrimestreFT,
823+
];
789824

790825
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
791826

@@ -1119,30 +1154,36 @@ public function getAbsencesTotalHours()
11191154
{
11201155
//Vai alla pagina delle della tabella assenza e invia il numero dello studente
11211156
//Abilitazione delle comunicazioni
1122-
$base64id = base64_encode($this->student['id']."|AXIOSMERDA"); // base64 da inviare con l' id dello studente seguito da "|FT01"
1123-
$ch = curl_init("https://family.axioscloud.it/Secret/APP_Ajax_Get.aspx?Action=FAMILY_REGISTRO_DOCENTI_GRIGLIA&Others=".$base64id);
1124-
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
1125-
curl_setopt($ch, CURLOPT_HEADER, 1);
1157+
$assenze = 0; //Imposta le ore di assenza a 0
1158+
foreach ($this->QuadrimestreFTAll as $key => $value) { //Per ogni periodo dell' anno aggingi le ore di assenza
1159+
$base64id = base64_encode($this->student['id']."|".$value); // base64 da inviare con l' id dello studente seguito da "|FTXX"
1160+
$ch = curl_init("https://family.axioscloud.it/Secret/APP_Ajax_Get.aspx?Action=FAMILY_REGISTRO_DOCENTI_GRIGLIA&Others=".$base64id);
1161+
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
1162+
curl_setopt($ch, CURLOPT_HEADER, 1);
11261163

1127-
curl_setopt($ch, CURLOPT_REFERER, "https://family.axioscloud.it/Secret/RELogin.aspx"); //link da cui provieni
1164+
curl_setopt($ch, CURLOPT_REFERER, "https://family.axioscloud.it/Secret/RELogin.aspx"); //link da cui provieni
11281165

1129-
curl_setopt($ch, CURLOPT_COOKIE, "__AntiXsrfToken=" . $this->cookies['__AntiXsrfToken'] . "; ASP.NET_SessionId=" . $this->cookies['ASP.NET_SessionId']);
1166+
curl_setopt($ch, CURLOPT_COOKIE, "__AntiXsrfToken=" . $this->cookies['__AntiXsrfToken'] . "; ASP.NET_SessionId=" . $this->cookies['ASP.NET_SessionId']);
11301167

1131-
curl_setopt($ch, CURLOPT_POST, 1);
1168+
curl_setopt($ch, CURLOPT_POST, 1);
1169+
$post = [
1170+
// Quadrimestre
1171+
'ctl00$ContentPlaceHolderMenu$ddlFT' => $value,
1172+
];
11321173

1133-
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
1174+
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
11341175

1135-
$result = curl_exec($ch);
1136-
curl_close($ch);
1176+
$result = curl_exec($ch);
1177+
curl_close($ch);
11371178

11381179

1139-
$document = new Document($result);
1140-
$posts = $document->find('.assenza'); //trva tutto cio` che ha la casse assenza
1180+
$document = new Document($result);
1181+
$posts = $document->find('.assenza'); //trva tutto cio` che ha la casse assenza
11411182

1142-
$assenze = 0; //Imposta le ore di assenza a 0
1143-
foreach ($posts as $key => $value) { //ogni elemento trovato ottieni il testo
1144-
$ora_assenza = str_replace("A", "", $value->text()); //Rimpiazza tutte le A nelle ore per avere un intero
1145-
$assenze += $ora_assenza; //Somma alle ore di assenza
1183+
foreach ($posts as $key => $value) { //ogni elemento trovato ottieni il testo
1184+
$ora_assenza = str_replace("A", "", $value->text()); //Rimpiazza tutte le A nelle ore per avere un intero
1185+
$assenze += $ora_assenza; //Somma alle ore di assenza
1186+
}
11461187
}
11471188

11481189
return $assenze;

assenze.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
$axios = new axios;
55

66
$axios->postREFamilyData = $_SESSION["getPostREFamily"];
7+
$axios->QuadrimestreFT = $_COOKIE["QuadrimestreFT"];
8+
$axios->QuadrimestreFTAll = $_SESSION["QuadrimestreFTAll"];
79
$axios->student = $_SESSION["getStudentId"][$_COOKIE['studentNumber']];
810
$axios->cookies = $_SESSION["cookies"];
911

@@ -33,6 +35,7 @@
3335
<table class="table">
3436
<thead class="thead-dark">
3537
<tr>
38+
<th scope="col">N</th>
3639
<th scope="col">Data</th>
3740
<th scope="col">Tipo</th>
3841
<th scope="col">Giustificata</th>
@@ -42,7 +45,8 @@
4245
<?php
4346
foreach ($result as $key => $value) {
4447
echo '<tr>
45-
<th>' . $value["date"] . '</th>
48+
<th>' . ($key+1) . '</th>
49+
<td>' . $value["date"] . '</td>
4650
<td>' . $value["type"] . '</td>
4751
<td>' . $value["justified"] . '</td>
4852
</tr>';

comunicazioni.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
$axios = new axios;
55

66
$axios->postREFamilyData = $_SESSION["getPostREFamily"];
7+
$axios->QuadrimestreFT = $_COOKIE["QuadrimestreFT"];
8+
$axios->QuadrimestreFTAll = $_SESSION["QuadrimestreFTAll"];
79
$axios->student = $_SESSION["getStudentId"][$_COOKIE['studentNumber']];
810
$axios->cookies = $_SESSION["cookies"];
911

dist/css/global.css

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,4 +154,8 @@
154154
.table-responsive td {
155155
display: table-row;
156156
}
157-
} */
157+
} */
158+
159+
.bg-voto10 {
160+
background-image: url(../../dist/img/voto-10.gif);
161+
}

dist/css/sidebar.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,7 @@ a.article:hover {
284284
top: 0;
285285
height: 100%;
286286
/* background: #f3f3f3; */
287-
z-index: 0;
287+
z-index: 1000;
288288
}
289289

290290
.swipe-area-activate {

0 commit comments

Comments
 (0)