ما الجديد
مرحبا بك زائرنا الكريم في موقع شقاوي للتصميم والبرمجة اذا كانت هذه زيارتك اﻻولى فنتشرف بانضمامك لنا وان كنت احد كوكبة اعضائنا فأهلا بعودتك مرة أخرى

اضافة إظهار عدد المشاهدين في الأقسام (Node Viewer Count).

[إضافة] إظهار عدد المشاهدين في الأقسام (Node Viewer Count). تعد إضافة "إظهار عدد المشاهدين" من الأدوات التفاعلية الهامة لأصحاب منتديات XenForo، حيث تضفي...

إنضم
9 أبريل 2026
المشاركات
39
مستوى التفاعل
28
النقاط
18
الإقامة
Iraq
الموقع الالكتروني

[إضافة] إظهار عدد المشاهدين في الأقسام (Node Viewer Count).​

تعد إضافة "إظهار عدد المشاهدين" من الأدوات التفاعلية الهامة لأصحاب منتديات XenForo، حيث تضفي نوعاً من الحيوية على الصفحة الرئيسية من خلال إظهار أرقام حقيقية للزوار المتواجدين حالياً داخل كل قسم.
IMG_7724.jpeg

#وصف الإضافة :

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


#كيف تعمل الإضافة؟ (الآلية التقنية):


تعمل الإضافة من خلال ثلاث مراحل برمجية متكاملة:

1. رصد النشاط (Session Tracking): يقوم نظام XenForo تلقائياً بتسجيل كل حركة يقوم بها العضو أو الزائر في جدول يسمى xf_session_activity. هذا الجدول يحتوي على معرف القسم (node_id) ووقت آخر ظهور.

2. استعلام البيانات (The Finder): تقوم الإضافة بإرسال استعلام ذكي لقاعدة البيانات يبحث عن كافة الجلسات التي سجلت نشاطاً داخل "معرف القسم" المطلوب خلال فترة زمنية محددة.

3. الحقن البصري (Template Modification): يتم دمج النتيجة النهائية في قالب node_list_forum الأساسي عبر نظام التعديلات، دون المساس بملفات المنتدى الأصلية، مما يضمن توافقها مع كافة الاستايلات.

#طريقة تخزين وعرض الجلسات :

*التخزين: يتم تخزين الجلسات بمجرد دخول المستخدم للقسم، سواء كان مسجلاً أو زائراً. لا تتطلب الإضافة القيام بأي تفاعل (مثل الإعجاب أو الرد) لكي يتم حساب المستخدم.
*العرض: تظهر العبارة (مثلاً: **يشاهده 10 زوار**) بجانب اسم القسم فقط إذا كان هناك زائر واحد على الأقل، وتختفي تلقائياً في حال خلو القسم من الزوار للحفاظ على نظافة واجهة المستخدم.

#تعليمات هامة للاستخدام والاستقرار :

> 💡 ملاحظة تقنية:
> لكي تستقر الإضافة وتعمل بأعلى دقة، تم ضبط الكود ليقرأ آخر الجلسات النشطة خلال **500 ثانية** الماضية. عند تثبيت الإضافة لأول مرة، قد تحتاج لبعض الوقت لجمع البيانات اللحظية، وبعد استقرارها ستعمل بشكل طبيعي تماماً وبأعداد حقيقية وتلقائية تعكس حركة الزوار الفعلية.

#مميزات الإضافة:

*خفيفة جداً: لا تسبب ثقلاً على قاعدة البيانات لأنها تستخدم استعلامات محسنة (Optimized Queries).
* **متوافقة:** تعمل بسلاسة على إصدارات XenForo 2.2 و 2.3.

*ذكاء التصميم: تعتمد على ألوان وخطوط الاستايل المستخدم في منتداك تلقائياً (CSS Inherit).

*دقيقة: تحسب الزوار الحقيقيين داخل الأقسام والمواضيع التابعة لها.

*تطوير وتصميم: مهدي حميد
*الدعم الفني: منتدى كود نت - CodeNET

#خاتمة المقال :


بإمكانك الآن تعزيز تفاعل أعضائك وإظهار قوة منتداك من خلال عرض حركة الزوار اللحظية، مما يعطي انطباعاً بالثقة والنشاط المستمر في كافة أقسام المنتدى.

ملاحظة : يُمنع النقل دون ذكر المصدر ~ منتدى كود نت

 
وللراغبين باظهار عدد المشاهدين داخل الاقسام بدون استخدام اضافة ، يمكن ان اوفر شرح كامل بتعديلات على بعض القوالب لتوفير هذهِ الخدمة بالاكواد ~ وبدون استهلاك موارد السيرفر .
 
بارك الله فيك اخوي @مهدي حميد على ما تقدمه من شروحات واضافات مميزة ويسعدني جدا عندما ارى اخواني العرب يقومون ببرمجة اضافات وطرحها

فهذا السكربت حقيقة يفتقر للمبرمجين العرب فزادك الله من علمه اخوي مهدي وننتظر منك المزيد

احترامي وتقديري
اخوك
شقاوي
 
بارك الله فيك اخوي @مهدي حميد على ما تقدمه من شروحات واضافات مميزة ويسعدني جدا عندما ارى اخواني العرب يقومون ببرمجة اضافات وطرحها

فهذا السكربت حقيقة يفتقر للمبرمجين العرب فزادك الله من علمه اخوي مهدي وننتظر منك المزيد

احترامي وتقديري
اخوك
شقاوي
شكرًا جزيلاً ، استاذ تركي ..

بوجودك لا نحتاج الى مُبرمجين ، فانتَ مكفي وموفي
ربي يسعدك .
 
التعديل الأخير:

[إضافة] إظهار عدد المشاهدين في الأقسام (Node Viewer Count).​

تعد إضافة "إظهار عدد المشاهدين" من الأدوات التفاعلية الهامة لأصحاب منتديات XenForo، حيث تضفي نوعاً من الحيوية على الصفحة الرئيسية من خلال إظهار أرقام حقيقية للزوار المتواجدين حالياً داخل كل قسم.
مشاهدة المرفق 1530

#وصف الإضافة :

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


#كيف تعمل الإضافة؟ (الآلية التقنية):


تعمل الإضافة من خلال ثلاث مراحل برمجية متكاملة:

1. رصد النشاط (Session Tracking): يقوم نظام XenForo تلقائياً بتسجيل كل حركة يقوم بها العضو أو الزائر في جدول يسمى xf_session_activity. هذا الجدول يحتوي على معرف القسم (node_id) ووقت آخر ظهور.

2. استعلام البيانات (The Finder): تقوم الإضافة بإرسال استعلام ذكي لقاعدة البيانات يبحث عن كافة الجلسات التي سجلت نشاطاً داخل "معرف القسم" المطلوب خلال فترة زمنية محددة.

3. الحقن البصري (Template Modification): يتم دمج النتيجة النهائية في قالب node_list_forum الأساسي عبر نظام التعديلات، دون المساس بملفات المنتدى الأصلية، مما يضمن توافقها مع كافة الاستايلات.

#طريقة تخزين وعرض الجلسات :

*التخزين: يتم تخزين الجلسات بمجرد دخول المستخدم للقسم، سواء كان مسجلاً أو زائراً. لا تتطلب الإضافة القيام بأي تفاعل (مثل الإعجاب أو الرد) لكي يتم حساب المستخدم.
*العرض: تظهر العبارة (مثلاً: **يشاهده 10 زوار**) بجانب اسم القسم فقط إذا كان هناك زائر واحد على الأقل، وتختفي تلقائياً في حال خلو القسم من الزوار للحفاظ على نظافة واجهة المستخدم.

#تعليمات هامة للاستخدام والاستقرار :

> 💡 ملاحظة تقنية:
> لكي تستقر الإضافة وتعمل بأعلى دقة، تم ضبط الكود ليقرأ آخر الجلسات النشطة خلال **500 ثانية** الماضية. عند تثبيت الإضافة لأول مرة، قد تحتاج لبعض الوقت لجمع البيانات اللحظية، وبعد استقرارها ستعمل بشكل طبيعي تماماً وبأعداد حقيقية وتلقائية تعكس حركة الزوار الفعلية.

#مميزات الإضافة:

*خفيفة جداً: لا تسبب ثقلاً على قاعدة البيانات لأنها تستخدم استعلامات محسنة (Optimized Queries).
* **متوافقة:** تعمل بسلاسة على إصدارات XenForo 2.2 و 2.3.

*ذكاء التصميم: تعتمد على ألوان وخطوط الاستايل المستخدم في منتداك تلقائياً (CSS Inherit).

*دقيقة: تحسب الزوار الحقيقيين داخل الأقسام والمواضيع التابعة لها.

*تطوير وتصميم: مهدي حميد
*الدعم الفني: منتدى كود نت - CodeNET

#خاتمة المقال :


بإمكانك الآن تعزيز تفاعل أعضائك وإظهار قوة منتداك من خلال عرض حركة الزوار اللحظية، مما يعطي انطباعاً بالثقة والنشاط المستمر في كافة أقسام المنتدى.

ملاحظة : يُمنع النقل دون ذكر المصدر ~ منتدى كود نت

بارك الله فيك إضافة الجميع يحتاجها لكن ان سحمت لي عندي بعض الاستفسارات
١ مفيش ملف تثبيت من الاضافات لازم تترفع علي الهوست
٢ فشل التثبيت بسبب عدم وجود ملف
هذه الصور توضع المشكلة
Screenshot_٢٠٢٦٠٤١٧_١٨١٤٣٧_Chrome.jpgScreenshot_٢٠٢٦٠٤١٧_١٨١٥٠٢_Chrome.jpg
 
بارك الله فيك إضافة الجميع يحتاجها لكن ان سحمت لي عندي بعض الاستفسارات
١ مفيش ملف تثبيت من الاضافات لازم تترفع علي الهوست
٢ فشل التثبيت بسبب عدم وجود ملف
هذه الصور توضع المشكلة
مشاهدة المرفق 1537مشاهدة المرفق 1538
اضغط تثبيت بدون ملف hashes.json


او تنشى ملف باسم hashes.json وضع به {} فقط ،
وتأكد من ارفاق المجلدات في المسار المضبوط بـ مجلد addons ..
 
اضغط تثبيت بدون ملف hashes.json


او تنشى ملف باسم hashes.json وضع به {} فقط ،
وتأكد من ارفاق المجلدات في المسار المضبوط بـ مجلد addons ..
لقد قمت بالمتابعه دون الملف ولكن حصى تعارض في البناء ولم يتم التثبيت وبها امر معلق
 

المرفقات

  • Screenshot_٢٠٢٦٠٤١٧_١٨٢٦٤٢_Chrome.jpg
    Screenshot_٢٠٢٦٠٤١٧_١٨٢٦٤٢_Chrome.jpg
    45.9 KB · المشاهدات: 5
الخطأ اللي بيظهر في الصور فوق كلاس غير صالح
الخطأ واضح تأكد من وجود الملفات في هذا المسار بالضبط في مجلد addons
كود:
CodeNet/NodeViewerCount/XF/Entity/Node.php
كما موجود تأكد من اسماء المجلدات
ما اصدر المنتدى لديك ؟
 
موجود

موجود

٢.٣.٨
قم باستبادل ملف Node.php بهذا الملف .
كود:
<?php

namespace CodeNet\NodeViewerCount\XF\Entity;

use XF\Mvc\Entity\Structure;

class Node extends XFCP_Node
{
    /**
     * جلب عدد المشاهدين الفعليين للقسم
     */
    public function getCodenetmahdiViewers()
    {
        $cutOff = \XF::$time - 500; // آخر 15 دقيقة
        $nodeIdString = 'node_id=' . $this->node_id;

        $finder = $this->finder('XF:SessionActivity');
      
        $finder->where('view_date', '>', $cutOff)
               ->where('params', 'LIKE', '%' . $nodeIdString . '%');

        return $finder->total();
    }

    public static function getStructure(Structure $structure)
    {
        $structure = parent::getStructure($structure);
        $structure->getters['codenetmahdi_viewers'] = true;

        return $structure;
    }
}

الان تثبيت يضبط ١٠٠٪؜ ، وان لم تعمل الاضافة ، انشى موضوع في منتدى الدعم لاضافة وسنعمل هناك على حلها في التفصيل الدقيق ؟

تحياتي لك .
 
عودة
أعلى