This commit is contained in:
2018-12-14 15:37:43 +01:00
parent db6835c5da
commit fde0327de1
19 changed files with 2050 additions and 418 deletions

View File

@@ -13,6 +13,10 @@ try {
define('SCHULPORTAL_BASE0_URL', "https://portal.schulen.bayern.de");
define('SCHULPORTAL_BASE_URL', SCHULPORTAL_BASE0_URL . '/uniquesig2d1dfad4a11c25e42c462e53b4721e48/uniquesig0');
define('SCHULPORTAL_ASD_BASE_URL', SCHULPORTAL_BASE0_URL . '/uniquesigc3ba1685059aaf325d44099df697a0a635e79a4ec36ec614a98f3bf4b79d7c043ac3880605b7751df91d11233380ad86/uniquesig0/asd');
define('PROD_SCHULPORTAL_ASD_BASE_URL', SCHULPORTAL_BASE0_URL . '/uniquesigc3ba1685059aaf325d44099df697a0a635e79a4ec36ec614a98f3bf4b79d7c043ac3880605b7751df91d11233380ad86/uniquesig0/asd');
define('PARA_SCHULPORTAL_ASD_BASE_URL', SCHULPORTAL_BASE0_URL . '/uniquesiga877c16a8d4fa0326c4d1f7447020d3867d9b0ca4503652219a0f5b2b569f316747c8c199bc9626ccb01613a0a36a342/uniquesig0/asd');
//define('SCHULPORTAL_MSTR_BASE_URL', SCHULPORTAL_BASE0_URL . '/uniquesig9adaec6129c81dbeb2f42638bc9f27ac0c442a10891f0c915c9d7f0c371a00b3/uniquesig1/asd');
define('SCHULPORTAL_MSTR_BASE_URL', SCHULPORTAL_BASE0_URL . '/uniquesig182e937bef9540ecffb7e0ba167caaea052491068bd93a46e70dbd73bf9f8963/uniquesig1/asd');
@@ -29,6 +33,8 @@ Configure::write('AsdCurl.cert','/var/www/html/ssl_KM_Z2016_asd.trinkl.pem');
Configure::write('AsdCurl.schulbase0url',SCHULPORTAL_BASE0_URL);
Configure::write('AsdCurl.schulbaseurl',SCHULPORTAL_BASE_URL);
Configure::write('AsdCurl.asdbaseurl',SCHULPORTAL_ASD_BASE_URL);
Configure::write('AsdCurl.asdbaseurl.prod',PROD_SCHULPORTAL_ASD_BASE_URL);
Configure::write('AsdCurl.asdbaseurl.para',PARA_SCHULPORTAL_ASD_BASE_URL);
Configure::write('AsdCurl.mstrbaseurl',SCHULPORTAL_MSTR_BASE_URL);
?>

View File

@@ -88,9 +88,9 @@ class AsdCurl
}
}
public function login_asd($ch)
public function login_asd($ch,$env)
{
$SCHULPORTAL_ASD_BASE_URL = Configure::read('AsdCurl.asdbaseurl');
$SCHULPORTAL_ASD_BASE_URL = Configure::read('AsdCurl.asdbaseurl.'.$env);
$this->exec_curl($ch, $SCHULPORTAL_ASD_BASE_URL . '/asddv/dv_xy_00.jsf', false);
if(!($this->status)) {
die($this->error);

View File

@@ -16,8 +16,8 @@ class AsdUs extends AsdCurl
$this->error = false;
}
public function save_us_data($ch) {
$SCHULPORTAL_ASD_BASE_URL = Configure::read('AsdCurl.asdbaseurl');
public function save_us_data($ch,$env) {
$SCHULPORTAL_ASD_BASE_URL = Configure::read('AsdCurl.asdbaseurl.'.$env);
// Maske US 01 01 vom linken Menü aufrufen
$viewstate = $this->get_string_between($this->html, 'id="javax.faces.ViewState" value="', '" autocomplete');
$conversationId = $this->get_string_between($this->html, 'name="conversationId" value="', '" />');
@@ -73,9 +73,39 @@ class AsdUs extends AsdCurl
// Auf der Ergebnisseite auf "Alle" Klicken
$viewstate = $this->get_string_between($this->html, 'id="javax.faces.ViewState" value="', '" autocomplete');
$conversationId = $this->get_string_between($this->html, 'name="conversationId" value="', '" />');
$mainform = $this->get_string_between($this->html, '\\\':\\\'', '\\\'},\\\'\\\')\')\;return false\" class=\"ignoreChangeNotification notBold\">ALLE</a>');
//$mainform = $this->get_string_between($this->html, 'j_idt', 'ALLE');
//$mainform = $this->get_string_between($this->html, 'mojarra.jsfcljs(document.getElementById(', 'ALLE');
//echo $this->html;
//debug($mainform);die;
$htmlParser = new \DOMDocument(); //to parse html using DOMDocument
libxml_use_internal_errors(true); // your HTML gives parser warnings, keep them internal
$htmlParser->loadHTML($this->html); //Loaded the html string we took from simple xml
//$htmlParser->preserveWhiteSpace = false;
$xpath = new \DOMXPath($htmlParser);
$elements = $xpath->query("//a[text()='ALLE']/@onclick");
if (!is_null($elements)) {
foreach ($elements as $element) {
//echo "<br/>[". $element->nodeName. "]";
//echo "<br/>[". $element->nodeValue. "]";
$text = $element->nodeValue;
preg_match_all('!\d+!', $text, $matches);
//print_r($matches);
$mainform = $matches[0][0];
}
}
//die;
/*
if($env == 'prod') {
$mainform = '189';
}
else {
$mainform = '184';
}
*/
$post = [
'mainForm' => 'mainForm',
'referenzBaumAnzeigen' => 'false',
@@ -90,12 +120,14 @@ class AsdUs extends AsdCurl
'skipvalidation' => 'true',
'mainForm:istAnzeigeMaske' => 'false',
'javax.faces.ViewState' => $viewstate,
'mainForm:j_idt184' => 'mainForm:j_idt184',
'mainForm:j_idt'.$mainform => 'mainForm:j_idt'.$mainform,
];
$this->exec_curl($ch, $SCHULPORTAL_ASD_BASE_URL . '/asdus/us_01_02.jsf?cid=' . $conversationId, $post);
if(!($this->status)) {
die($this->error);
}
//echo $this->html;die;
// Ergebnisse parsen und in die MySQL - Datenbank schreiben
$htmlParser = new \DOMDocument(); //to parse html using DOMDocument
libxml_use_internal_errors(true); // your HTML gives parser warnings, keep them internal
@@ -103,7 +135,7 @@ class AsdUs extends AsdCurl
$htmlParser->preserveWhiteSpace = false;
$table = $htmlParser->getElementById('mainForm:resultTable');
//debug($table);
//debug($table);die;
$rel = [
'sname' => 0,
'snr' => 1,
@@ -130,7 +162,7 @@ class AsdUs extends AsdCurl
$i++;
}
//debug($data);
//debug($data);die;
$usdates = TableRegistry::get('Usdates');
$usdates->deleteAll('id' > 0);
$entities = $usdates->newEntities($data);
@@ -138,7 +170,7 @@ class AsdUs extends AsdCurl
if(!($result)) {
debug($entities);die;
}
//die;
}
public function save_up_data($ch) {