Hallo, Gast! (Registrieren)

Wir wünschen allen Besuchern frohe Ostern!

Letzte Ankündigung: MyBB 1.8.37 veröffentlicht (04.11.23)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Task erstellen meldet bei Aktivierung PHP-Fehler
#1
Hallo,

ich habe ein eine Task erstellt, welcher bei Aktivierung des PlugIns eingetragen und bei Deaktivierung wieder ausgetragen werden soll.

Grundlage waren diese und diese Anleitung.

1. Im PlugIn ist die Aktivierung wie folgt definiert:
PHP-Code:
function pluginname_activate()
{
  
global $db;

require_once 
MYBB_ROOT '/inc/functions_task.php';

$new_task = [
    
'title'            => '$lang->sprachvariable_task_title',
    
'description'    => '$lang->sprachvariable_task_title_desc',
    
'file'            => 'dateiname',
    
'minute'        => '0',
    
'hour'            => '0',
    
'day'            => '*',
    
'month'            => '*',
    
'weekday'        => '*',
    
'nextrun'        => TIME_NOW,
    
'enabled'        => '1',
    
'logging'        => '1',
];

$new_task['nextrun'] = fetch_next_run($new_task);

$db->insert_query('tasks'$new_task);
$cache->update_tasks();

Will ich das ACP aufrufen erhalte ich eine PHP-Fehlermeldung zur Zeile:

PHP-Code:
$cache->update_tasks(); 
kommentiere ich die Zeile mit "//" aus, kann ich das ACP aufrufen und das PlugIn aktivieren. Es wird der Task in der Aufgabenplanung eingetragen (siehe jedoch Punkt 2) und wird auch manuell/zeitgesteuert korrekt ausgeführt. Testweise die Bezeichnung "new_task" auf z.B. "name_tast" bringt keinen Erfolg.

2. Die Sprachvariablen werden jedoch nicht ausgegeben, egal welche der nachstehenden fünf Varianten ich versuche:

Variante 1.
PHP-Code:
'title'        => '$lang->sprachvariable_task_title',
'description'    => '$lang->sprachvariable_task_title_desc'
Variante 2.
PHP-Code:
'title'        => '($lang->sprachvariable_task_title)',
'description'    => '($lang->sprachvariable_task_title_desc)'
Variante 3.
PHP-Code:
'title'        => '{$lang->sprachvariable_task_title}',
'description'    => '{$lang->sprachvariable_task_title_desc}'
Variante 4.
PHP-Code:
'title'            => $db->escape_string($lang->sprachvariable_task_title),
'description'    => $db->escape_string($lang->sprachvariable_task_title_desc), 
Variante 5.
PHP-Code:
'title'            => $db->escape_string{$lang->sprachvariable_task_title},
'description'    => $db->escape_string{$lang->sprachvariable_task_title_desc}, 
Die Sprachvariablen sind selbstverständlich in ./inc/languages/sprache/admin/sprachvariable.php definiert.
Was kann da noch inkorrekt sein?

3. Im PlugIn ist die Deaktivierung wie folgt definiert:
PHP-Code:
function pluginname_deactivate() {
$db->delete_query('tasks''file=\'export_user_language\'');
$cache->update_tasks();    
rebuild_settings();

Hier muss gleichfalls die "cache"-Zeile auskommentiert werden. Beim Deaktivieren wird eine PHP-Fehlermeldung zu
PHP-Code:
$db->delete_query('tasks''file=\'dateiname\''); 
angezeigt.

Die Anleitung sind doch eigentlich selbsterklärend und daher einfach zu handhaben, aber irgendwo muss ich noch etwas berücksichtigen oder anpassen  ...aber was? Vermute mal, das nicht korrekt/vollständig in die Datenbank geschrieben wird. *grübel

Vielelicht ist jemand so nett die Ursache und Abhilfe zu den drei vorgenannten Punkten der bei mir entstandenen Fehlerverhalten mitteilen zu können.

Vorab besten Dank für Hilfestellungen.
Sollte ich der Ansicht sein helfen zu können biete ich Hilfe(n) an!  ...ich bitte jedoch nicht darum helfen zu dürfen!
Tools [Unixzeit ⇔ Realzeit] ♦ [BOM-Finder] ♦ [SQL-Prefix-Changer] ♦ [USV-Rechner] ♦ [PlugIns]
Zitieren
#2
Du müsstest die Variablen $lang und $cache vor der Verwendung globalisieren.
Wenn sie im Plugin nicht vorher schon globalisiert wurden, sind sie in der Funktion activate() noch gar nicht verfügbar. Wink
Zitieren
#3
Das war die Lösung (man lernt ständig dazu). Besten Dank für die Hilfestellung.
Sollte ich der Ansicht sein helfen zu können biete ich Hilfe(n) an!  ...ich bitte jedoch nicht darum helfen zu dürfen!
Tools [Unixzeit ⇔ Realzeit] ♦ [BOM-Finder] ♦ [SQL-Prefix-Changer] ♦ [USV-Rechner] ♦ [PlugIns]
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Bei Aktivierung Spalte in Datenbank umbenennen. Gerti 2 1.118 23.10.2020, 13:07
Letzter Beitrag: Gerti
  Die Philosophie bei der Aktivierung / Installation Juventiner 1 1.394 29.03.2015, 15:12
Letzter Beitrag: frostschutz