Beiträge von squizeer

    Was mir auch noch aufgefallen ist. Ich habe zwei Blogs unter einer Domain laufen (Privter Blog und Testblog), und für den Testblog verschickt er komischerweise keine E-Mails.

    Dort ist die selbe Admin-Email eingetragen wie im privaten Blog, liegt aber in einem Unterordner und ist für Suchmaschinen gesperrt (per Privatsphäre-Einstellung). Hat mich nun nach all meinen Freunden auch mein Testblog aufgegeben? :(

    Das habe ich bei einem meiner Blogs auch. Damit die Benachrichtigung ausgelöst wird, muss das Blog auch mal aufgerufen werden :-D

    redcat63
    Der direkte Funktionsaufruf wird nicht funktionieren. PHP sucht dann im Kontext der Methode, und nicht innerhalb der Klasse. Deshalb auch das array(...

    Der activation-Hook ist ja im Grunde nicht anderes als der Konstruktor. Nur das der Hook nur einmal aufgerufen wird. Ist also von daher in der tat etwas "sauberer" :-D


    1. Wurde überhaupt ein Cron-Job erstellt, der stündlich durchgeführt wird?

    Ja, hab ich in der Datenbank überprüft.


    2. Gibt es die Funktion [COLOR=#000000][COLOR=#cc0000]scheduledCheckUpdates[/COLOR][/COLOR] überhaupt oder heißt sie vielleicht scheduleCheckUpdates (o.ä.).

    Das könnte ich in der tat nochmal genauer überpfüen :mrgreen:


    Vielleicht ist es nicht relevant, aber...
    die class heißt [COLOR=#000000][COLOR=#0000cc]MailOnUpdate[/COLOR][/COLOR]. Die Funktion darunter hat den selben Namen. Allerdings werden bei ihr keine Großbuchstaben verwendet. Ist das so gewollt?

    Ja, in PHP 4 ist eine Methode mit dem gleichen Namen wie die Klasse der Konstruktoren. In PHP 5 verwendet man __construct().


    P.S. Was heißt eigentlich Admin-Scope?

    Alles, was im Admin-Bereich angesiedelt ist ... würde ich mal so sagen :-D

    Alphawolf
    Die Konstante ist erstmal nur zum testen drin. In der finalen Version hatte ich vor, alle Admins auflisten zu lassen und dann den Nutzer auswählen zu lassen an wenn die Benachrichtigung versendet wird.

    An Zeit habe ich fast 24 Stunden verstreichen lassen, von daher sollte zumindest einmal die checkUpdatePlugins vom Cron aufgerufen worden sein. :-D

    Ich hatte ja direkt an die erste Zeile der Funktion eine zusätzliche Mail-Benachrichtigung eingebaut. D.h., unabhängig von der ganzen Prüfroutine der Updates hätte ich bei stündlicher Cron Ausführung zumindest ein paar E-Mails bekommen müssen. Ich sage jetzt einfach mal, dass mein Blog so frequentiert ist, dass die Crons ungefähr stündlich aufgerufen werden :mrgreen:

    Das mit dem "unsauber" meinte ich in Bezug auf Admin-Code außerhalb des Admin-Scope. Vielleicht haben sich die WP-Entwickler was dabei gedacht, weiß ich nur nicht :)

    Irgendwie will der Cron nicht laufen. Beim ersten Start macht er einmal was, aber danach kommt nichts mehr. Hatte für Testzwecke einfach mal an den Anfang von checkPluginUpdates() einen E-Mail-Versand gesetzt und darberhinaus div. Plugins auf niedrigere Versionen runter gestellt.

    Zwei Anmerkungen:
    - Die Update-Plugins Funktion ist noch nicht anonymisiert
    - Die Empfänger E-Mail-Adresse wird über die Konstante RECIPIENT am Anfang gesetzt.
    Hier mal der komplette Code. Vielleicht hat jemand noch eine Idee :confused:

    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 :-D

    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.

    Den Cron rufe ich wie folgt auf

    PHP
    //check if checking of updates is due
    if (!wp_next_scheduled('scheduledCheckUpdates'))
                wp_schedule_event( time(), '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.

    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.

    Hallo zusammen!

    Hiermit stelle ich ein neues WordPress-Plugin vor:

    Yawasp - Yet Another WordPress Anti Spam Plugin
    Das Plugin generiert für die Namen der Formularfelder des Kommentarformulars zufällige Werte, und merkt sich dabei, welches Feld, welchen Wert bekommt. Wird das Kommentarformular aufgerufen werden die Werte den Feldern zugewiesen und erst beim Absenden erfolgt die Rückübersetzung, so dass WordPress den Kommentar verarbeiten kann. Zusätzlich wird ein leeres Feld - unsichtbar für den Benutzer - eingefügt, dass die gleichen Merkmale wie ein sichtbares aufweist. Füllt ein Spambot dieses Feld aus, oder sendet die ursprünglichen Namen der Formularfelder, wird der Kommentar nicht gespeichert. Zusätzlich ändert das Plugin die zufälligen Werte alle 24 Stunden, so dass sich kein Spambot an das Kommentarformular anpassen kann.

    Allein die Änderung der Formularnamen in zufällige Werte dürfte schon zu erheblich weniger Kommentar-Spam führen.

    Letztendlich bekommt man vom Kommentar-Spam nichts mehr mit, der Nutzer muss keine zusätzlichen Felder mehr ausfüllen, und man kann sich ganz auf das Bloggen und die Kommentare seiner Leser konzentrieren!

    Weiter Informationen unter: Yawasp | svenkubiak.de

    Freue mich über Feedback und Verbesserungsvorschläge!

    Gruß
    Sven

    Hallo zusammen!

    Ich habe derzeit zwei Blogs, welche auf meinem Webspace laufen. Wenn ich von dem einen Blog auf das anderen verlinke, wird ein Pingback erzeugt (Trackback funktioniert auch). Ein Pingback von einem "externen" Blog (z.B. wordpress.com) erzeugt hingegeben keinen Eintrag (Trackback funktioniert hier auch). Aus dem xmlrpc Log, kann ich sehen, dass zumindest etwas ankommt, aber, wie gesagt, kein Eintrag erzeugt wird.

    Ich habe bereits alle Plugins deaktiviert und das Ganze versucht. Leider erfolglos.

    Hat jemand eine Idee voran das liegen könnte? WordPress 2.3.3

    [Nachtrag]
    Nach tieferen Recherchen in der xmlrpc konnte ich den Fehler identifizeiren:
    The source URL does not contain a link to the target URL, and so cannot be used as a source.
    An der Stelle bricht xmlrpc ab.

    Warum wird der Text eigentlich nicht ins log geschrieben? Dafür ist es ja schließlich da, oder?

    Jedenfalls kann ich mir den Fehler nicht erklären. Im Blog von dem gepingt wird, ist ein Link auf den Beitrag vorhanden.