أهلا وسهلا بك زائرنا الكريم في منتدى دعم PBBoard الرسمي، لكي تتمكن من المشاركة ومشاهدة جميع أقسام المنتدى وكافة الميزات ، يجب عليك إنشاء حساب جديد بالتسجيل بالضغط هنا أو تسجيل الدخول اضغط هنا إذا كنت عضواً .

كيفية إظهار المشاركات وتاريخ التسجيل في الرئيسية



13-12-2025 12:13 مساءً
Sofiene2023
معلومات الكاتب
 السلام عليكم 
أقوم بعمل تعديل على قالب sections_list لإظهار tooltip عند تمرير الماوس على إسم العضو يظهر معلومات العضو كالرتبة وتاريخ الإنضمام والمشاركات ولكن المشكل الذي واجهني هو عدم إظهار تاريخ التسجيل أو عدد المشاركات 
هذا كود tooltip الذي أقوم بتعديله 


CODE
<li class="News_User tooltip-container">
     <span class="tooltip-trigger">{$forum['last_writer']}</span>
     <div class="custom-tooltip">
         <div class="tooltip-header">
             <img src="{$forum['writer_photo']}" alt="{$lang['Picture']} {$forum['username']} {$lang['Personal']}" class="tooltip-avatar">
             <div class="tooltip-user-info">
                 <h4>{$forum['last_writer']}</h4>
                 <span class="user-role">{$forum['last_writer_role']}</span>
             </div>
         </div>
         <div class="tooltip-body">
 
             <p><strong>{$lang['join_date']} :
 </strong>{$ReplierInfo['register_date']}</p>
             <p><strong>{$lang['posts']} :</strong> {$forum['last_writer_posts']}</p>
             <p><strong>Inscrit depuis:</strong> {$forum['last_writer_join_date']}</p>
         </div>
         <div class="tooltip-links">
             <a href="{$forum['last_writer_profile']}" class="profile-link">Voir le profil</a>
             <a href="{$forum['last_writer_posts']}" class="posts-link">Voir les messages</a>
         </div>
     </div>
 </li> 

 
وهذه صورة tooltip 

كيفية إظهار المشاركات وتاريخ التسجيل في الرئيسية
تم تحرير الموضوع بواسطة :Sofiene2023 بتاريخ: 13-12-2025 12:18 مساءً


look/images/icons/i1.gif كيفية إظهار المشاركات وتاريخ التسجيل في الرئيسية
  13-12-2025 01:53 مساءً   [1]
Soliman
معلومات الكاتب
سأعطيك حل عملي + نظيف + خفيف مناسب لـ PBBoard  ويعمل بالـ JS عند hover فقط
مع عدم لمس نظام الكاش وعدم تنفيذ استعلام لكل منتدى لجلب بيانات العضو كاتب المشاركة بمجرد تمرير الماوس tooltip يجلب تلقائي البيانات المطلوب مثل.
  • الرتبة
  • تاريخ التسجيل
  • عدد المشاركات
  • آخر زيارة

التعديل في قالب sections_list
ابحث عن السطر
Html
<div class="Info_last_Reply">

واضف بعده الكود التالي
CODE

<?php
$forum['last_writer'] = '<span class="last-writer" data-user-id="'.$forum['last_writer_id'].'">'.$forum['last_writer'].'<div class="member-tooltip"></div></span>';
?>

<!-- CSS للـ Tooltip -->
<style>
.last-writer {
    position: relative;
    cursor: pointer;
}

.member-tooltip {
    display: none;
    position: absolute;
    top: 120%;
    right: 0;
    min-width: 220px;
    background: #1e1e1e;
    color: #fff;
    padding: 10px;
    border-radius: 6px;
    font-size: 13px;
    z-index: 9999;
    box-shadow: 0 4px 12px rgba(0,0,0,.4);
}

.member-tooltip.loading {
    display: block;
}
</style>

<!-- JavaScript Tooltip -->
<script>
document.addEventListener('DOMContentLoaded', function () {

    const cache = {};

    document.querySelectorAll('.last-writer').forEach(el => {

        let loaded = false;

        el.addEventListener('mouseenter', function () {

            const userId = this.dataset.userId;
            const tooltip = this.querySelector('.member-tooltip');

            if (!userId || userId === '0') return;

            tooltip.style.display = 'block';

            if (cache[userId]) {
                tooltip.innerHTML = cache[userId];
                return;
            }

            if (loaded) return;
            loaded = true;

            tooltip.innerHTML = 'جاري التحميل...';

            fetch(`index.php?page=usercp&member_tooltip=1&uid=${userId}`)
                .then(res => res.text())
                .then(html => {
                    cache[userId] = html;
                    tooltip.innerHTML = html;
                })
                .catch(() => {
                    tooltip.innerHTML = 'تعذر جلب البيانات';
                });

        });

        el.addEventListener('mouseleave', function () {
            const tooltip = this.querySelector('.member-tooltip');
            tooltip.style.display = 'none';
        });

    });

});
</script>




  ثم توجة الى لوحة تحكم الإدارة» الإضافات البرمجية» إضافة برنامج مساعد جديد

اسم جديد للبلوقن : 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 🔥


موفق بتطويراتك 👌  

look/images/icons/i1.gif كيفية إظهار المشاركات وتاريخ التسجيل في الرئيسية
  14-12-2025 12:41 صباحاً   [2]
الوردة الحمراء
معلومات الكاتب
بالتوفيق ان شاء الله 

look/images/icons/i1.gif كيفية إظهار المشاركات وتاريخ التسجيل في الرئيسية
  14-12-2025 01:19 صباحاً   [3]
Sofiene2023
معلومات الكاتب
بارك الله فيك أخ سليمان
المشكل أن tooltip لا تظهر عند تأشير إسم العضو 
 

look/images/icons/i1.gif كيفية إظهار المشاركات وتاريخ التسجيل في الرئيسية
  14-12-2025 03:35 صباحاً   [4]
Soliman
معلومات الكاتب
المشاركة الأصلية كتبت بواسطة: Sofiene2023 بتاريخ: 14-12-2025 01:19 صباحاًبارك الله فيك أخ سليمان
المشكل أن tooltip لا تظهر عند تأشير إسم العضو 
 
 
تأكد من اضافة الهوك من الشرح السابق بهذا الشكل 

كيفية إظهار المشاركات وتاريخ التسجيل في الرئيسية
 

look/images/icons/i1.gif كيفية إظهار المشاركات وتاريخ التسجيل في الرئيسية
  14-12-2025 06:50 مساءً   [5]
tunisiano111
معلومات الكاتب
 تمت تجربة شرح الأستاذ @Soliman
و هي تعمل بكفاءة. 
يُمكن إستعمال نفس الطريقة في المواضيع و الرُدود و مع بعض التعديلات في CSS نحصل على نتيجة مُشابهة لمُنتديات XenForo مثل الصوة أسفله.
كيفية إظهار المشاركات وتاريخ التسجيل في الرئيسية

إن أمكن شرح التعديلات اللازمة في الكود حتى نتمكن من إظهاره في معلومات العضو في الردود, أما CSS فلا مشكلة يُمكن أن أتولى أمرها بنفسي.

مشكورين على الفكرة و على الشرح أيضا.
 

look/images/icons/i1.gif كيفية إظهار المشاركات وتاريخ التسجيل في الرئيسية
  14-12-2025 10:21 مساءً   [6]
Soliman
معلومات الكاتب
الفكرة العامة (Architecture)
نضيف فقط:
  • data-user-id="X"
  • عنصر tooltip فارغ
  • JavaScript
وعند تمرير الماوس لأول مرة على اسم العضو
نرسل AJAX لجلب بيانات العضو
نخزن النتيجة في JS cache (حتى لا نكرر الطلب)
نعرض البيانات داخل tooltip
PHP endpoint واحد فقط وهو الهوك الذي طلبت منك اضافته من خلال خاصية إضافة برنامج مساعد جديد (يضاف لمره واحدة فقط)
يجلب بيانات العضو من جدول الأعضاء حسب user_id
افترض أن اسم العضو يظهر هكذا:
CODE
{$forum[last_writer]}

و id العضو 
CODE
{$forum[writer_id]}

عدّله إلى:
CODE
<span class="last-writer"
data-user-id="{$forum[writer_id]}">
{$forum[last_writer]}
<div class="member-tooltip"></div>
</span>

لا تضع أي بيانات إضافية – فقط الـ ID
JavaScript هو (الجزء الأهم) 
يمكنك اضافته مباشرة في قالب او في ملف js خاص به وجلبه
وتمرر اليه رقم id العضو
Java
<script>
 document.addEventListener('DOMContentLoaded', function () {
 
     const cache = {};
 
     document.querySelectorAll('.last-writer').forEach(el => {
 
         let loaded = false;
 
         el.addEventListener('mouseenter', function () {
 
             const userId = this.dataset.userId;
             const tooltip = this.querySelector('.member-tooltip');
 
             if (!userId || userId === '0') return;
 
             tooltip.style.display = 'block';
 
             if (cache[userId]) {
                 tooltip.innerHTML = cache[userId];
                 return;
             }
 
             if (loaded) return;
             loaded = true;
 
             tooltip.innerHTML = 'جاري التحميل...';
 
             fetch(`index.php?page=usercp&member_tooltip=1&uid=${userId}`)
                 .then(res => res.text())
                 .then(html => {
                     cache[userId] = html;
                     tooltip.innerHTML = html;
                 })
                 .catch(() => {
                     tooltip.innerHTML = 'تعذر جلب البيانات';
                 });
 
         });
 
         el.addEventListener('mouseleave', function () {
             const tooltip = this.querySelector('.member-tooltip');
             tooltip.style.display = 'none';
         });
 
     });
 
 });
 </script>


في طلبك السابق استخدمنا  ${userId} كقيمة لرقم العضو الحقيقي وهو $forum['last_writer_id']
باستخدام php لأن بيانات قالب sections_list له حالة استثنائية فقط
لود دققت ستجد ${userId} في السطر 
CODE
fetch(`index.php?page=usercp&member_tooltip=1&uid=${userId}`)

مع الممارسة والمقارنة والتطبيق ستنجح بعمل ذلك على العديد من القوالب
هذا كل شيء ارجو ان اكون اوصلت الفكرة لك بشكل مبسط  

look/images/icons/i1.gif كيفية إظهار المشاركات وتاريخ التسجيل في الرئيسية
  15-12-2025 08:49 صباحاً   [7]
Sofiene2023
معلومات الكاتب
تم التعديل بنجاح والإضافة تعمل بكفاءة 

كيفية إظهار المشاركات وتاريخ التسجيل في الرئيسية
 

look/images/icons/i1.gif كيفية إظهار المشاركات وتاريخ التسجيل في الرئيسية
  15-12-2025 12:52 مساءً   [8]
Soliman
معلومات الكاتب
المشاركة الأصلية كتبت بواسطة: Sofiene2023 بتاريخ: 15-12-2025 08:49 صباحاًتم التعديل بنجاح والإضافة تعمل بكفاءة 

كيفية إظهار المشاركات وتاريخ التسجيل في الرئيسية
 
 
عمل ممتاز وطريقة عرض جميلة 👌

look/images/icons/i1.gif كيفية إظهار المشاركات وتاريخ التسجيل في الرئيسية
  25-12-2025 07:28 مساءً   [9]
الوردة الحمراء
معلومات الكاتب
الله يسعدكم ويحفظكم 


المواضيع المتشابهه
عنوان الموضوع الكاتب الردود الزوار آخر رد
[مجابه] طريقة إظهار قوانين المنتدى داخل الأقسام وشريط آخر المشاركات thevest_knight
2 2523 Soliman
شرح كيفية إظهار إسم العضو فقط في المشاركات ridouane
16 3278 mohamedelking1997

الكلمات الدلالية






الساعة الآن 10:57 AM