Zdravím všechny,
napsal jsem si vlastní plugin, ale narazil jsem na jednu takovou ošemetnost.
Pokud mi cron (moodle/admin/cli/cron.php) správně projde tasky všech modulů a pluginů. Tak v tom mém se zasekne na curl.
Ten správně dojede k mému pluginu, načte classes/task ... a načte i knihovnu, ze které ten task čerpá a jede dokud nedojde k onomu curl a přejede to dál, jako by tam nic nebylo, ani nevrátí zprávu o neúspěchu, nebo cokoliv, prostě prázný response.
Co je na tom opravdu zajímavé je to, že kdekoliv jinde tento kód funguje a to jsem ho zkoušel "pěkně na prasáka" přidat i do samotného ... moodle/admin/cli/cron.php, tak se to v pořádku zavolá, ale v tom tásku to úplně odignoruje.
Na serveru samozřejmě curl rozšíření nainstalované je, jinak by to nefungovalo všude jinde.
Budu rád, za každé naťuknutí správným směrem.
A trocho kódu...
echo "sem to v dojde, url je platná";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 90); //timeout in seconds
$response = curl_exec($ch);
curl_close ($ch);
if(!$response){
echo "spadne to sem do prázdné response, ale nevrátí mi ani žádný error";
return curl_error($ch);
}
try {
$xml = simplexml_load_string($response);
return json_decode(json_encode($xml));
} catch (Exception $e) {
return $e->getMessage();
}