@ע-ה-דכו-ע כתב בהצעת ייעול | התראה למשתמש לאחר הצבעה למטה - דיסלייק:
בנית והפעלת מחדש את הפורום?
כן
@ע-ה-דכו-ע כתב בהצעת ייעול | התראה למשתמש לאחר הצבעה למטה - דיסלייק:
לך את הגירסה האחרונה?
כן
זה מראה לי את ההודעה הזאת שאני נכנס ל'כל ההתראות'
[image: 1779025566085-bf0b3a7c-367e-4203-9280-a34504ebafcf-image.png]
ג'ימני אומר "השגיאה Cannot read properties of null (reading 'split') שאתה רואה בעת ניסיון לפתוח את תפריט ההתראות ב-NodeBB נגרמת משום שהתוסף יוצר התראה חדשה (עבור ה"דיסלייק") אך שדה טקסט הכרחי בה חסר או מוגדר כ-null."
הוא הביא דוגמה של קוד תקין:
const notifications = require.main.require('./src/notifications');
// אפשרות 1: אם התוסף שלך משתמש ב- filter:notifications.get כדי לעצב את ההתראה
plugin.filterNotificationsGet = async function (data) {
if (data && data.notifications) {
data.notifications.forEach(notif => {
if (notif && notif.type === 'dislike') {
// חובה לוודא ששדה הטקסט אינו null כדי למנוע קריסה של מנוע התרגום
if (!notif.bodyShort) {
notif.bodyShort = 'מישהו עשה דיסלייק לפוסט שלך';
}
// חובה לוודא שיש נתיב תקין כדי שההתראה תהיה לחיצה
if (!notif.path) {
notif.path = '/';
}
}
});
}
return data;
};
// אפשרות 2: אם התוסף שלך משתמש ב- notifications.create כדי ליצור את ההתראה
async function createDislikeNotification(uid, pid, targetUid) {
const notification = await notifications.create({
type: 'dislike',
bodyShort: '[[global:dislike-notification]]', // ודא שערך זה הוא מחרוזת תקינה ולא null
nid: 'dislike:' + pid + ':uid:' + uid,
path: '/post/' + pid, // ודא שיש נתיב תקין
from: uid,
});
if (notification) {
await notifications.push(notification, [targetUid]);
}
}