13.01.2017, 13:00
Hallo Community,
ich habe eine Task geschrieben,
die bei Ausführen durch den Button
"Diese Aufgabe jetzt ausführen" ohne Probleme funktioniert.
Wenn allerdings das Skript durch die Zeitplanung ausgeführt wird,
wird zwar im Task-Log vermerkt, dass die Task ausgeführt wurde
aber die Arbeit der Task wurde nicht ausgeführt.
Wie kann das sein!?!?
Hier mal der Code der Task:
ich habe eine Task geschrieben,
die bei Ausführen durch den Button
"Diese Aufgabe jetzt ausführen" ohne Probleme funktioniert.
Wenn allerdings das Skript durch die Zeitplanung ausgeführt wird,
wird zwar im Task-Log vermerkt, dass die Task ausgeführt wurde
aber die Arbeit der Task wurde nicht ausgeführt.
Wie kann das sein!?!?
Hier mal der Code der Task:
PHP-Code:
<?php
function task_autoGelberDaumen($task) {
global $db, $mybb;
require_once("/usr/www/users/xinvvnix/forum/inc/datahandlers/post.php");
//Konfiguration:
$progfid1=array(11); //FID Programmüberforum 7 Tage
$progfid2=array(10,13); //FID Programmüberforum 14 Tage
$checktime=7; //Zeit in Tagen, ab wann gepostet wird, dass kein Update vorhanden ist.
$postmessage="[iconge]";
//Funktionen:
function sendPost($message,$forumid,$threadid,$db){
$posthandler = new PostDataHandler("insert");
$userarray=get_user($uid);
$new_post = array(
"tid" => $threadid, //1468
"fid" => $forumid, //134
"subject" => "",
"icon" => 36,
"uid" => 1,
"username" => "Nummer1",
"dateline" => TIME_NOW,
"message" => $message,
"ipaddress" => ""
);
$new_post['options']=array(
"signature" => 1,
"subscriptionmethod" => 0,
"disablesmilies" => 0
);
$posthandler->set_data($new_post);
$valid_post = $posthandler->validate_post();
$posthandler->insert_post();
}
function zwischenstring ($start, $ende, $string) {
return reset (explode ($ende, end (explode ($start, $string))));
}
//Get all threads with link to azthread
$progthreadids=array(); $firstposts=array(); $forumsids=array();
$querytext="SELECT DISTINCT pid,tid,fid,message FROM mybb_posts WHERE message like '%\[azb=%\]%'
AND pid IN (SELECT firstpost FROM mybb_threads WHERE icon=29 AND fid IN (".implode(",", $progfid1).",".implode(",",$progfid2)."))";
$query = $db->query($querytext);
while($result = $db->fetch_array($query)){
//Zeit in datetime Format umrechnen
$checktimen=TIME_NOW - ($checktime * 24 * 60 * 60);
//auf String für auszahlungsthread prüfen
$temptid=zwischenstring("[azb=","]",$result['message']);
//checken ob 7 oder 14 Tage
if(in_array($result['fid'],$progfid2)) $checktimen=TIME_NOW - ($checktime * 2 * 24 * 60 * 60);
$query2 = $db->simple_select("threads", "tid", "lastpost<$checktimen AND tid=$temptid", array("order_dir" => 'DESC',"limit" => 1));
if($db->num_rows($query2)>0 && is_numeric ($temptid)) {
$progthreadids[]=(int)$result['tid'];
$firstposts[]=(int)$result['pid'];
$forumsids[]=(int)$result['fid'];
}
}
for($i=0;$i<count($progthreadids);$i++){
$db->update_query("threads",array('icon'=>36),"tid=$progthreadids[$i]");
$db->update_query("posts",array('icon'=>36),"pid=$firstposts[$i]");
sendPost($postmessage,$forumsids[$i],$progthreadids[$i],$db);
/*
echo $progthreadids[$i];
echo " - ";
echo $firstposts[$i];
echo "<br>";
*/
}
add_task_log($task, "Auf zu alte Zahlungen gecheckt und gelbe Daumen verteilt.");
}
?>