Zurück   WordPress Deutschland Forum > Support > Plugins und Widgets > Plugin-Entwicklung

Antwort
 
Themen-Optionen Ansicht
Alt 24.04.2008, 09:16   #1 (permalink)
PostRank: 1
 
Registriert seit: 04.09.2006
Beiträge: 30
Mail Benachrichtigung bei neuem Update

Mit der Version 2.3 ist ja eine Funktion in WordPress integriert worden, welche anzeigt, ob für WordPress oder ein Plugin eine aktuellere Version vorliegt (sofern das Plugin im WordPress Verzeichnis ist). Damit man nicht immer in die Liste der Plugins schauen muss, gibt es das Global Plugin Update Notice, dass eine entsprechende Benachrichtigung auf jeder WordPress-Admin-Seite anzeigt. Allerdings muss auch dafür seine WordPress Installation aufrufen, um von einer Aktualisierung zu erfahren. Deshalb kam mir heute die Idee, ein Plugin zu schreiben, welches in regelmäßigen Abständen per WP-Cron prüft, ob eine neue Plugin-Version vorliegt und den Benutzer per E-Mail benachrichtigt. Das Plugin war schnell geschrieben, allerdings gab es bei der Ausführung ein recht großes Problem. Die Funktion, welche die Plugins auf neue Versionen prüft (wp_update_plugins), ist nur im Kontext des Admin-Bereiches verfügbar, und kann dementsprechend per WP-Cron nicht ausgeführt werden.

Das Plugin ist soweit fertig, scheitert aber an dieser besagten Funktion. Vielleicht hat ja jemand diesbezüglich noch einen heißen Tipp, denn ich glaube, gerade wenn man mehrere Blogs betreibt, in denen man nicht regelmäßig schreibt, könnte diese Möglichkeit der Benachrichtigung von Vorteil sein.
squizeer ist offline   Mit Zitat antworten
Alt 24.04.2008, 10:20   #2 (permalink)
WPD-Moderator
 
Benutzerbild von Alphawolf
 
Registriert seit: 31.05.2005
Ort: Gera Ghetto
Beiträge: 2.264
Über welche Action/Funktion rufst du denn den "Cron" auf? Schau mal hier: Category:WP-Cron Functions « WordPress Codex

Du musst deine Aktion quasi vorher planen (schedulen). Das Beispiel hier: Function Reference/wp schedule event « WordPress Codex zeigt, wie man z.B. einen stündlichen Cron plant, ohne im Admin-Bereich sein zu müssen.
__________________
FAQ // Doku // Erbreiterungen
Alphawolf ist offline   Mit Zitat antworten
Alt 24.04.2008, 10:25   #3 (permalink)
PostRank: 1
 
Registriert seit: 04.09.2006
Beiträge: 30
Den Cron rufe ich wie folgt auf

PHP-Code:
//check if checking of updates is due
if (!wp_next_scheduled('scheduledCheckUpdates'))
            
wp_schedule_eventtime(), 'hourly''scheduledCheckUpdates' );
        
add_action('scheduledCheckUpdates', array(&$this'checkPluginUpdates')); 
Das Problem ist, dass im Kontext des Cron, die Funktion wp_update_plugins() nicht zur Verfügung steht. Sie liegt in der Datei wp-admin/includes/update.php und ist anscheinend nur im Admin-Bereich verfügbar.
squizeer ist offline   Mit Zitat antworten
Alt 24.04.2008, 10:31   #4 (permalink)
WPD-Moderator
 
Benutzerbild von Alphawolf
 
Registriert seit: 31.05.2005
Ort: Gera Ghetto
Beiträge: 2.264
Was macht deine Funktion checkPluginUpdates, die du über
PHP-Code:
add_action('scheduledCheckUpdates', array(&$this'checkPluginUpdates')); 
aufrufst? Ruft diese einfach die Funktion wp_update_plugins() auf?
__________________
FAQ // Doku // Erbreiterungen
Alphawolf ist offline   Mit Zitat antworten
Alt 24.04.2008, 10:34   #5 (permalink)
PostRank: 1
 
Registriert seit: 04.09.2006
Beiträge: 30
Ja. Erst wird wp_update_plugins() aufgerufen, dann nachgesehen welche Plugins aktualisiert worden sind.
squizeer ist offline   Mit Zitat antworten
Alt 24.04.2008, 10:47   #6 (permalink)
WPD-Moderator
 
Benutzerbild von Alphawolf
 
Registriert seit: 31.05.2005
Ort: Gera Ghetto
Beiträge: 2.264
Hmm, dann würde ich die Funktion grundlegend nachbauen, und das ganze Filesystem-Gedöns weglassen, da du das ja nicht brauchst. Dann kannst du deine eigene Funktion per WP-Cron auch außerhalb des Admin-Scopes aufrufen, und die Mail(s) verschickekn...
__________________
FAQ // Doku // Erbreiterungen
Alphawolf ist offline   Mit Zitat antworten
Alt 24.04.2008, 11:06   #7 (permalink)
PostRank: 1
 
Registriert seit: 04.09.2006
Beiträge: 30
Hab ich auch schon überlegt. Die Frage ist nur, ob die Funktion auf andere Funktionen zurück greift, die ebenfalls nur im Admin-Scope verfügbar sind.
squizeer ist offline   Mit Zitat antworten
Alt 24.04.2008, 11:14   #8 (permalink)
WPD-Moderator
 
Benutzerbild von Alphawolf
 
Registriert seit: 31.05.2005
Ort: Gera Ghetto
Beiträge: 2.264
Das sollte dann IMO egal sein. Sobald deine eigene "externe und freie" Funktion steht, hast du darüber Zugriff auf alle WP-Funktionen, die es gibt. Einziges Problem wird sein, ob du dich dann über Filter und Hooks in diese Funktionen einklinken kannst, um an die entsprechenden Daten zu kommen, die an diese Funktionen übergeben werden..
__________________
FAQ // Doku // Erbreiterungen
Alphawolf ist offline   Mit Zitat antworten
Alt 24.04.2008, 11:35   #9 (permalink)
PostRank: 8
 
Registriert seit: 31.03.2006
Beiträge: 855
Hast Du schon mal versucht die Datei wp-admin/includes/update.php per include oder require in Dein Plugin zu integrieren?

VG Elke
__________________
http://v-portal.org und http://u-portal.de
redcat63 ist offline   Mit Zitat antworten
Alt 24.04.2008, 13:30   #10 (permalink)
PostRank: 1
 
Registriert seit: 04.09.2006
Beiträge: 30
Zitat:
Zitat von redcat63 Beitrag anzeigen
Hast Du schon mal versucht die Datei wp-admin/includes/update.php per include oder require in Dein Plugin zu integrieren?

VG Elke
Ja, hab ich. Das funktioniert auch, nur erscheint mir das nicht ganz sauber.

Ich habe gerade die Update-Funktion aus der update.php 1:1 ins Plugin kopiert. Für den redundanten Code gibt es zwar 3 Jahre Programmier-Hölle, aber es funktioniert

Ich frage mich nur grade, ob es eine Zugriffsbeschränkung auf die WordPress API gibt. Nicht das man mit aktiviertem Plugin auf einer Blacklist landet, wenn man stündlich auf Aktualisierungen prüft.
squizeer ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist aus.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus


Alle Zeitangaben in WEZ +2. Es ist jetzt 01:45 Uhr.


Powered by vBulletin® Version 3.7.3 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 | Impressum | Ein Inpsyde.com Projekt