السلام عليكم
أقوم بعمل تعديل على قالب sections_list لإظهار tooltip عند تمرير الماوس على إسم العضو يظهر معلومات العضو كالرتبة وتاريخ الإنضمام والمشاركات ولكن المشكل الذي واجهني هو عدم إظهار تاريخ التسجيل أو عدد المشاركات
هذا كود tooltip الذي أقوم بتعديله
سأعطيك حل عملي + نظيف + خفيف مناسب لـ PBBoard ويعمل بالـ JS عند hover فقط
مع عدم لمس نظام الكاش وعدم تنفيذ استعلام لكل منتدى لجلب بيانات العضو كاتب المشاركة بمجرد تمرير الماوس tooltip يجلب تلقائي البيانات المطلوب مثل.
ثم توجة الى لوحة تحكم الإدارة» الإضافات البرمجية» إضافة برنامج مساعد جديد
اسم جديد للبلوقن : member tooltip
اسم البلوقن: لاشيء
اسم الهوك: usercp_hook_start
كود PHP الخاص بالإضافة:
CODE
if ($PowerBB->_GET['member_tooltip'])
{
$uid = intval($PowerBB->_GET['uid']);
if (!$uid) exit;
$memberArr = array();
$memberArr['where'] = array('id',$uid);
$memberInfo = $PowerBB->core->GetInfo($memberArr,'member');
if (!$memberInfo) exit;
echo '
<strong>' . $memberInfo['username'] . '</strong><br>
الرتبة: ' . $memberInfo['user_title'] . '<br>
تاريخ التسجيل: ' . date('Y-m-d', $memberInfo['register_date']) . '<br>
عدد المشاركات: ' . intval($memberInfo['posts']) . '<br>
آخر زيارة: ' . date('Y-m-d', $memberInfo['logged']) . '
';
exit;
}
انتهى ..
الخلاصة
✔️ حل ذكي قابل للتطوير كاضافة برمجية بكل سلاسة وايضا يمكن الحاقه على اسم اي عضو في اي جزء في المنتدى
✔️ لا كسر للكاش المنتديات
✔️ لا ضغط على السيرفر
✔️ قابل للتوسع وجلب المزيد من بيانات العضو
✔️ يليق بـ PBBoard 🔥
تمت تجربة شرح الأستاذ @Soliman و هي تعمل بكفاءة.
يُمكن إستعمال نفس الطريقة في المواضيع و الرُدود و مع بعض التعديلات في CSS نحصل على نتيجة مُشابهة لمُنتديات XenForo مثل الصوة أسفله.
إن أمكن شرح التعديلات اللازمة في الكود حتى نتمكن من إظهاره في معلومات العضو في الردود, أما CSS فلا مشكلة يُمكن أن أتولى أمرها بنفسي.
وعند تمرير الماوس لأول مرة على اسم العضو
نرسل AJAX لجلب بيانات العضو
نخزن النتيجة في JS cache (حتى لا نكرر الطلب)
نعرض البيانات داخل tooltip
PHP endpoint واحد فقط وهو الهوك الذي طلبت منك اضافته من خلال خاصية إضافة برنامج مساعد جديد (يضاف لمره واحدة فقط)
يجلب بيانات العضو من جدول الأعضاء حسب user_id
افترض أن اسم العضو يظهر هكذا:
في طلبك السابق استخدمنا ${userId} كقيمة لرقم العضو الحقيقي وهو $forum['last_writer_id']
باستخدام php لأن بيانات قالب sections_list له حالة استثنائية فقط
لود دققت ستجد ${userId} في السطر