Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
global_start Hook verhindert "schon gelesen Funktion"
#1
Hallo zusammen,
ich bin neu in der Plugin Entwicklung für mybb und hab nun ein plugin geschrieben das mir Kopfschmerzen macht.

Das Plugin läuft mit dem Hook global_start und soll im Header einen täglichen Countdown anzeigen.
Das Plugin funktioniert soweit auch, das heisst die Info wird an der richtigen Stelle im Header angezeigt. Sobald ich aber das Plugin aktiviere funktioniert die Standard Funktion "Welche Beiträge hab ich noch nicht gesehen" nicht mehr, das heisst es werden mir alle Beiträge seit Aktivierung des Plugins als nicht gesehen angezeigt.

Es gibt keine Meldungen in der Konsolenansicht des Browsers.

Irgendwas mach ich falsch, aber was?
Code anbei....

PHP-Code:
<?php
// Disallow direct access to this file for security reasons
if(!defined("IN_MYBB"))
{
    die(
"Direct initialization of this file is not allowed.");
}

$plugins->add_hook('global_start','countdown_run');

function 
countdown_info()
{
    return array(
        
"name"            => "CountDown for MyBB",
        
"description"    => "CountDown for MYBB",
        
"website"        => "",
        
"author"        => "",
        
"authorsite"    => "",
        
"version"        => "1.0",
        
"guid"             => "",
        
"compatibility" => "1*"
    
);
}

function 
countdown_activate()
{
    global 
$db$mybb;
    
    
$settingsgroup = array(
        
"name"            => "countdown",
        
"title"            => "Countdown Events",
        
"description"    => "Countdown for oncoming events",
        
"disporder"        => 1,
        
"isdefault"        => 0);
    
$db->insert_query("settinggroups"$settingsgroup);
    
$gid $db->insert_id();
    
    
$settings[] = array(
        
"name"            => "countdown_active",
        
"title"            => "Countdown Active?",
        
"description"    => "Enable the Countdown",
        
"optionscode"    => "onoff",
        
"value"            => "off",
        
"disporder"        => 1,
        
"gid"            => $gid);

    
$settings[] = array(
        
"name"            => "countdown_date",
        
"title"            => "Countdown Date",
        
"description"    => "Please enter the date for your countdown like (dd-mm-yyyy) e.g. 06-16-2022",
        
"optionscode"    => "text",
        
"value"            => "",
        
"disporder"        => 2,
        
"gid"            => $gid);
    
    
$settings[] = array(
        
"name"            => "countdown_text",
        
"title"            => "Countdown Text",
        
"description"    => "What kind of text do you want to print on the page (XXX is placeholder for countdown) like -Just XXX days-",
        
"optionscode"    => "text",
        
"value"            => "",
        
"disporder"        => 3,
        
"gid"            => $gid);

    
$settings[] = array(
        
"name"            => "countdown_link",
        
"title"            => "Countdown Link",
        
"description"    => "Any link for the Text?",
        
"optionscode"    => "text",
        
"value"            => "",
        
"disporder"        => 4,
        
"gid"            => $gid);

        
$settings[] = array(
            
"name"            => "countdown_ende",
            
"title"            => "Countdown End",
            
"description"    => "Text if countdown ends?",
            
"optionscode"    => "text",
            
"value"            => "",
            
"disporder"        => 5,
            
"gid"            => $gid);

        
    
    foreach(
$settings as $setting) {
        
$db->insert_query("settings"$setting);
    }
    
    
rebuild_settings();

}

function 
countdown_deactivate()
{
    global 
$db;
    
    
$db->query("DELETE FROM " TABLE_PREFIX "settinggroups WHERE name='countdown'");
    
$db->query("DELETE FROM " TABLE_PREFIX "settings WHERE name IN ('countdown_date', 'countdown_text', 'countdown_link', 'countdown_active', 'countdown_ende')");
    
    
rebuild_settings();

}



//RUN
function countdown_run() {
global 
$db;
global 
$countdown;
    
//A: RECORDS TODAY'S Date And Time
$today time();
// erst mal schauen ob Event aktiv ist
$query$db->simple_select("settings","*""name='countdown_active'", array(
    
"order_by" => 'name'
    
"order_dir" => 'DESC',
    
"limit" => 1));
    
$countdown_active=$db->fetch_array($query)[value];
    
//wenn aktiv dann...
if ($countdown_active==1)
{
// Datum aufschlüsseln
$query$db->simple_select("settings","*""name='countdown_date'", array(
    
"order_by" => 'name'
    
"order_dir" => 'DESC',
    
"limit" => 1));
    
$countdown_date=$db->fetch_array($query)[value];
    
//$date=$countdown_date[value];
    
$day=substr($countdown_date,0,2);
    
$month=substr($countdown_date,3,2);
    
$year=substr($countdown_date,6,4);
    
$event mktime(0,0,0,$day,$month,$year);

//Errechnen wann das Event ist
$countdown round(($event $today)/86400);
if (
$countdown>0)
{
// Text des Events abholen
$query$db->simple_select("settings","*""name='countdown_text'", array(
    
"order_by" => 'name'
    
"order_dir" => 'DESC',
    
"limit" => 1));
    
$countdown_text=$db->fetch_array($query)[value];
//LInk des Events abholen
$query$db->simple_select("settings","*""name='countdown_link'", array(
        
"order_by" => 'name'
        
"order_dir" => 'DESC',
        
"limit" => 1));
        
$countdown_link=$db->fetch_array($query)[value];

//Daten in Variable auslagern zur Darstellung im Template
$countdown="<li><a href=\"".$countdown_link."\" class=\"merlintreffen\">".str_replace("XXX",$countdown$countdown_text)."</a></li>";
}
// Wenn Countdown erreicht, dann nichts darstellen!
else 
{
    
//LInk des Events abholen
$query$db->simple_select("settings","*""name='countdown_ende'", array(
    
"order_by" => 'name'
    
"order_dir" => 'DESC',
    
"limit" => 1));
    
$countdown_link=$db->fetch_array($query)[value];
    
$countdown="<li><a href=\"".$countdown_link."\" class=\"merlintreffen\">"$countdown_ende ."</a></li>";
}
    
}
//Wenn nicht aktiv dann nichts darstellen
else $countdown="";
    

Zitieren


Nachrichten in diesem Thema
global_start Hook verhindert "schon gelesen Funktion" - von Guenni - 31.08.2021, 16:10

Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  build_forumbits_forum Hook The Lady 3 1.619 13.05.2021, 17:28
Letzter Beitrag: Schnapsnase
  Hook für Schnellantwort itsmeJAY 3 1.750 26.07.2019, 08:23
Letzter Beitrag: StefanT
  Inlineeditor - mit Hook Zeit des Posts überprüfen cthulhu 3 2.857 08.10.2016, 18:22
Letzter Beitrag: cthulhu
  Welcher Hook um Abbonierte Themen zu erweitern? baeckerman83 4 2.809 11.09.2015, 12:34
Letzter Beitrag: baeckerman83
  Plugin - Template und Hook baeckerman83 6 2.826 28.08.2015, 21:55
Letzter Beitrag: baeckerman83