Die Reihenfolge ist für die Funktion völlig egal. Neue Einträge werden "unten" eingefügt, wobei es überhaupt von der Sortierung abhängt, wie die Einträge dargestellt werden. Die Sortierung lässt sich aber immer so steuern, wie man das gerade braucht. Hierfür wird in praktisch allen SQL Abfragen, die mehr als eine Zeile liefern per
ORDER BY
sortiert. Wenn es um die Einstellungen für einen speziellen User geht, dann werden nur die Einstellungen dieses Users aus der DB geholt.
Der Eintrag ohne notification.method.email stellt die Notifications im Board selbst dar (also das was oben rechts als Benachrichtigung eingeblendet wird, wenn du im Board bist). Allerdings ist da seltsamerweise die Standardeinstellung "aktiv" wenn der Eintrag fehlt, während das bei allen anderen Benachrichtigungen genau andersrum ist. Außerdem wird der Eintrag automatisch eingefügt, wenn du das erste Mal die Einstellungen änderst (oder vielleicht sogar schon beim Seitenaufruf der entsprechenden Seite im persönlichen Bereich). Dementsprechend sollte es egal sein, wenn ein Eintrag fehlt. Du kannst aber auch ganz einfach alle Einträge mit
notification.type.pm
löschen und dann beide Fälle neu einfügen.
Also sprich, sofern du nicht noch zusätzliche Benachrichtigungsmethoden zu E-Mail und in-Board installiert hast:
Code: Alles auswählen
DELETE FROM phpbb_user_notifications WHERE item_type = 'notification.type.pm' AND item_id = 0;
INSERT INTO phpbb_user_notifications (item_type, item_id, method, notify, user_id) SELECT '', 0, 'notification.method.email', 1, user_id FROM phpbb_users WHERE user_type IN (0,3);
INSERT INTO phpbb_user_notifications (item_type, item_id, method, notify, user_id) SELECT 'notification.type.pm', 0, 'notification.method.email', 1, user_id FROM phpbb_users WHERE user_type IN (0,3);
Sonst muss der DELETE Befehl beschränkt werden auf die Methoden die gelöscht werden, ansonsten bekommen die Leute mit den anderen Methoden keine Nachrichten mehr.