@@ -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 ;
0 commit comments