MyBB Depo Forum
[MCTR - 1.8] Bildirimler Eklentisindeki Hata - Baskı Önizleme

+- MyBB Depo Forum (https://mybbdepo.com)
+-- Forum: MyBB 1.8 Depo (https://mybbdepo.com/mybb-1-8-depo-forumu)
+--- Forum: MyBB 1.8 Soru ve Sorunlarınız (https://mybbdepo.com/mybb-1-8-soru-ve-sorunlariniz-forumu)
+--- Konu Başlığı: [MCTR - 1.8] Bildirimler Eklentisindeki Hata (/bildirimler-eklentisindeki-hata-konusu.html)



Bildirimler Eklentisindeki Hata - androcep44 - 17-07-2015

Selamun Aleykum Arkadaşlar Bildirimler Eklentisini Yükleyince Aşağıdaki gibi bir hata verdi acaba nedeni ne Olabilir Yardımlarınız için teşekürler.


resim


Cvp: Bildirimler Eklentisindeki Hata - Kadir KAYA - 17-07-2015

Alıntı:Bu hatayı $data değişkenine gönderdiğin tarih formatından dolayı alıyor olabilirsin

$date değişkenine 8/12/2008 [/url][url=http://forum.donanimhaber.com/m_29821765/tm.htm#][u][b]ve[/b][/u]ya 8.12.2008 veya 8-12-2008 olarak gönder. 8 yerine 08 olarak gönderme

mktime için örnek bir kullanım:
Doğru:
mktime(0, 0, 0, 3, 12, 2000)
Yanlış:
mktime(0, 0, 0, 03, 12, 2000)

Belki diyorum ama
Bir deneyin hocam


Cvp: Bildirimler Eklentisindeki Hata - androcep44 - 17-07-2015

Hocam Sizi Yoruyorsam özür dilerim kod aşağıdaki gibi bunun doğrusu nasıl olmalı?

Kod:
<?php
/**
* MyBB 1.8
* Copyright 2014 MyBB Group, All Rights Reserved
*
* Website: http://www.mybb.com
* License: http://www.mybb.com/about/license
*
*/

/**
* Execute a scheduled task.
*
* @param int The task ID. If none specified, the next task due to be ran is executed
* @return boolean True if successful, false on failure
*/
function run_task($tid=0)
{
    global $db, $mybb, $cache, $plugins, $task, $lang;

    // Run a specific task
    if($tid > 0)
    {
        $query = $db->simple_select("tasks", "*", "tid='{$tid}'");
        $task = $db->fetch_array($query);
    }

    // Run the next task due to be run
    else
    {
        $query = $db->simple_select("tasks", "*", "enabled=1 AND nextrun<='".TIME_NOW."'", array("order_by" => "nextrun", "order_dir" => "asc", "limit" => 1));
        $task = $db->fetch_array($query);
    }

    // No task? Return
    if(!$task['tid'])
    {
        $cache->update_tasks();
        return false;
    }

    // Is this task still running and locked less than 5 minutes ago? Well don't run it now - clearly it isn't broken!
    if($task['locked'] != 0 && $task['locked'] > TIME_NOW-300)
    {
        $cache->update_tasks();
        return false;
    }
    // Lock it! It' mine, all mine!
    else
    {
        $db->update_query("tasks", array("locked" => TIME_NOW), "tid='{$task['tid']}'");
    }

    // The task file does not exist
    if(!file_exists(MYBB_ROOT."inc/tasks/{$task['file']}.php"))
    {
        if($task['logging'] == 1)
        {
            add_task_log($task, $lang->missing_task);
        }
        $cache->update_tasks();
        return false;
    }
    // Run the task
    else
    {
        // Update the nextrun time now, so if the task causes a fatal error, it doesn't get stuck first in the queue
        $nextrun = fetch_next_run($task);
        $db->update_query("tasks", array("nextrun" => $nextrun), "tid='{$task['tid']}'");

        include_once MYBB_ROOT."inc/tasks/{$task['file']}.php";
        $function = "task_{$task['file']}";
        if(function_exists($function))
        {
            $function($task);
        }
    }

    $updated_task = array(
        "lastrun" => TIME_NOW,
        "locked" => 0
    );
    $db->update_query("tasks", $updated_task, "tid='{$task['tid']}'");

    $cache->update_tasks();

    return true;
}

/**
* Adds information to the scheduled task log.
*
* @param int The task array to create the log entry for
* @param string The message to log
*/
function add_task_log($task, $message)
{
    global $db;

    if(!$task['logging'])
    {
        return;
    }

    $log_entry = array(
        "tid" => (int)$task['tid'],
        "dateline" => TIME_NOW,
        "data" => $db->escape_string($message)
    );
    $db->insert_query("tasklog", $log_entry);
}

/**
* Generate the next run time for a particular task.
*
* @param array The task array as fetched from the database.
* @return int The next run time as a UNIX timestamp
*/
function fetch_next_run($task)
{
    $time = TIME_NOW;
    $next_minute = $current_minute = date("i", $time);
    $next_hour = $current_hour = date("H", $time);
    $next_day = $current_day = date("d", $time);
    $next_weekday = $current_weekday = date("w", $time);
    $next_month = $current_month = date("m", $time);
    $next_year = $current_year = date("Y", $time);
    $reset_day = $reset_hour = $reset_month = $reset_year = 0;

    if($task['minute'] == "*")
    {
        ++$next_minute;
        if($next_minute > 59)
        {
            $reset_hour = 1;
            $next_minute = 0;
        }
    }
    else
    {
        if(build_next_run_bit($task['minute'], $current_minute) != false)
        {
            $next_minute = build_next_run_bit($task['minute'], $current_minute);
        }
        else
        {
            $next_minute = fetch_first_run_time($task['minute']);
        }
        if($next_minute <= $current_minute)
        {
            $reset_hour = 1;
        }
    }

    if($reset_hour || !run_time_exists($task['hour'], $current_hour))
    {
        if($task['hour'] == "*")
        {
            ++$next_hour;
            if($next_hour > 23)
            {
                $reset_day = 1;
                $next_hour = 0;
            }
        }
        else
        {
            if(build_next_run_bit($task['hour'], $current_hour) != false)
            {
                $next_hour = build_next_run_bit($task['hour'], $current_hour);
            }
            else
            {
                $next_hour = fetch_first_run_time($task['hour']);
                $reset_day = 1;
            }
            if($next_hour < $current_hour)
            {
                $reset_day = 1;
            }
        }
        $next_minute = fetch_first_run_time($task['minute']);
    }

    if($reset_day || ($task['weekday'] == "*" && !run_time_exists($task['day'], $current_day) || $task['day'] == "*" && !run_time_exists($task['weekday'], $current_weekday)))
    {
        if($task['weekday'] == "*")
        {
            if($task['day'] == "*")
            {
                ++$next_day;
                if($next_day > date("t", $time))
                {
                    $reset_month = 1;
                    $next_day = 1;
                }
            }
            else
            {
                if(build_next_run_bit($task['day'], $current_day) != false)
                {
                    $next_day = build_next_run_bit($task['day'], $current_day);
                }
                else
                {
                    $next_day = fetch_first_run_time($task['day']);
                    $reset_month = 1;
                }
                if($next_day < $current_day)
                {
                    $reset_month = 1;
                }
            }
        }
        else
        {
            if(build_next_run_bit($task['weekday'], $current_weekday) != false)
            {
                $next_weekday = build_next_run_bit($task['weekday'], $current_weekday);
            }
            else
            {
                $next_weekday = fetch_first_run_time($task['weekday']);
            }
            $next_day = $current_day + ($next_weekday-$current_weekday);
            if($next_day <= $current_day)
            {
                $next_day += 7;
            }

            if($next_day > date("t", $time))
            {
                $reset_month = 1;
            }
        }
        $next_minute = fetch_first_run_time($task['minute']);
        $next_hour = fetch_first_run_time($task['hour']);
        if($next_day == $current_day && $next_hour < $current_hour)
        {
            $reset_month = 1;
        }
    }

    if($reset_month || !run_time_exists($task['month'], $current_month))
    {
        if($task['month'] == "*")
        {
            $next_month++;
            if($next_month > 12)
            {
                $reset_year = 1;
                $next_month = 1;
            }
        }
        else
        {
            if(build_next_run_bit($task['month'], $current_month) != false)
            {
                $next_month = build_next_run_bit($task['month'], $current_month);
            }
            else
            {
                $next_month = fetch_first_run_time($task['month']);
                $reset_year = 1;
            }
            if($next_month < $current_month)
            {
                $reset_year = 1;
            }
        }
        $next_minute = fetch_first_run_time($task['minute']);
        $next_hour = fetch_first_run_time($task['hour']);
        if($task['weekday'] == "*")
        {
            $next_day = fetch_first_run_time($task['day']);
            if($next_day == 0) $next_day = 1;
        }
        else
        {
            $next_weekday = fetch_first_run_time($task['weekday']);
            $new_weekday = date("w", mktime($next_hour, $next_minute, 0, $next_month, 1, $next_year));
            $next_day = 1 + ($next_weekday-$new_weekday);
            if($next_weekday < $new_weekday)
            {
                $next_day += 7;
            }
        }
        if($next_month == $current_month && $next_day == $current_day && $next_hour < $current_hour)
        {
            $reset_year = 1;
        }
    }

    if($reset_year)
    {
        $next_year++;
        $next_minute = fetch_first_run_time($task['minute']);
        $next_hour = fetch_first_run_time($task['hour']);
        $next_month = fetch_first_run_time($task['month']);
        if($next_month == 0) $next_month = 1;
        if($task['weekday'] == "*")
        {
            $next_day = fetch_first_run_time($task['day']);
            if($next_day == 0) $next_day = 1;
        }
        else
        {
            $next_weekday = fetch_first_run_time($task['weekday']);
            $new_weekday = date("w", mktime($next_hour, $next_minute, 0, $next_month, 1, $next_year));
            $next_day = 1 + ($next_weekday-$new_weekday);
            if($next_weekday < $new_weekday)
            {
                $next_day += 7;
            }
        }
    }
    return mktime($next_hour, $next_minute, 0, $next_month, $next_day, $next_year);
}

/**
* Builds the next run time bit for a particular item (day, hour, month etc). Used by fetch_next_run().
*
* @param string A string containing the run timse for this particular item
* @param int The current value (be it current day etc)
* @return int The new or found value
*/
function build_next_run_bit($data, $bit)
{
    if($data == "*") return $bit;
    $data = explode(",", $data);
    foreach($data as $thing)
    {
        if($thing > $bit)
        {
            return $thing;
        }
    }
    return false;
}

/**
* Fetches the fist run bit for a particular item (day, hour, month etc). Used by fetch_next_run().
*
* @param string A string containing the run times for this particular item
* @return int The first run time
*/
function fetch_first_run_time($data)
{
    if($data == "*") return "0";
    $data = explode(",", $data);
    return $data[0];
}

/**
* Checks if a specific run time exists for a particular item (day, hour, month etc). Used by fetch_next_run().
*
* @param string A string containing the run times for this particular item
* @param int The bit we're checking for
* @return boolean True if it exists, false if it does not
*/
function run_time_exists($data, $bit)
{
    if($data == "*") return true;
    $data = explode(",", $data);
    if(in_array($bit, $data))
    {
        return true;
    }
    return false;
}



Cvp: Bildirimler Eklentisindeki Hata - androcep44 - 18-07-2015

Yardım edebilecek?


Cvp: Bildirimler Eklentisindeki Hata - Kadir KAYA - 18-07-2015

Hocam son olarak Eklentiyi pasifleştirin, Kaldırın ve sonra yeniden kurun. Bakalım aynı hatayı yine verirse ben size özel bir çözüm üreteceğim.


Cvp: Bildirimler Eklentisindeki Hata - androcep44 - 18-07-2015

Hocam Bence Bu eklenti Tam Olarak Yerine Otuurmamış Temada Çakışmada Yapıyor. Bu konuda Çoğu Kişi Şikayetci.


Cvp: Bildirimler Eklentisindeki Hata - androcep44 - 18-07-2015

En İyi Stabil Sürüm Gelene Kadar Beklemek İlginize Teşekürler.