MyBB.de Forum

Normale Version: fehlerhafte Ausführung einer Aufgabe
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

für eine bestimmte Board Message habe ich mir eine Aufgabe erstellt, mit deren Hilfe diese Board Message zu einem bestimmten Zeitpunkt deaktiviert werden soll. So sieht der Code aus:
PHP-Code:
function task_disboardmessage($task){

    global 
$db$lang;
    
    if (
$db->table_exists("board_messages")){
    
        
// ID der board message
        
$mid 2;
        
        
$query $db->simple_select("board_messages""*""mid = '$mid'");    
        
        
$result $db->fetch_array($query);
        
        if(
$result['enabled'] = 1){
            
$query $db->write_query("UPDATE ".TABLE_PREFIX."board_messages SET enabled=0 WHERE mid='$mid'");

            
//add_task_log($task, $lang->task_shouts_deleted);
            
add_task_log($task"Board Message mit der ID ".$mid." erfolgreich deaktiviert");
        }
        else{
            
add_task_log($task"Board Message war bereits deaktiviert");
        }
    }

Die Deaktivierung funktioniert. Nur würde ich erwarten, wenn der Wert "enabled" der Message auf "0" steht bzw. eben nicht auf "1", dass im Log die Nachricht der else-Schleife ausgegeben wird. Dem ist aber nicht so. In den Log-Daten wird immer die Nachricht ausgegeben, dass die Board Message erfolgreich deaktiviert wurde.

Wo habe ich denn da den Fehler eingebaut?

Danke Euch. Smile


P.S.: das wäre übrigens mal eine richtig gute Idee. Es gibt ziemlich viele Plugins für Board Messages, aber kein einziges Plugin bietet eine Zweit weise Aktivierung der Nachrichten an, wie es z.B. bei den Announcements möglich ist.... Wink
Es muss if($result['enabled'] == 1){ heißen...
Oooooooooh Mann.....wie peinlich. Blush

Vielleicht sollte ich einfach um diese Uhrzeit solche Dinge nicht mehr machen. Wink

Danke Dir, Stefan!


So, jetzt habe ich die Aufgabe noch dahingehend ergänzt, dass nach dem Deaktivieren einer Board Message auch die Aufgabe selbst deakiviert und nicht weiter ausgeführt wird. Eine einmalige Ausführung einer Aufgabe ist im ACP ja meiner Meinung nach nicht einstellbar.

PHP-Code:
<?php

/*
* disable board message - Aufgabe

* ausgelegt für das "Board Message" Plugin von Alan Crisp
* sollte vermutlich aber auch mit anderen, aehnlichen Plugins laufen
*/


// Disallow direct access to this file for security reasons
if(!defined("IN_MYBB"))
{
    die(
"Direct initialization of this file is not allowed.<br /><br />Please make sure IN_MYBB is defined.");
}

function 
task_disboardmessage($task){

    global 
$db$lang$cache;
    
    if (
$db->table_exists("board_messages")){
    
        
// ID der board message
        
$mid 2;
        
        
$query $db->simple_select("board_messages""*""mid = '$mid'");    
        
$result $db->fetch_array($query);
        
        if(
$result['enabled'] == 1){
        
            
$query $db->write_query("UPDATE ".TABLE_PREFIX."board_messages SET enabled=0 WHERE mid='$mid'");
            
            
add_task_log($task"Board Message mit der ID ".$mid." deaktiviert");
            
            
$db->update_query("tasks", array("enabled" => 0), "tid='{$task['tid']}'");
            
$cache->update_tasks();
        
        }
    }
}
?>

Vielleicht kann's jemand auch brauchen.