سكربت MyAds متقدم للشبكات الاجتماعية وتبادل الإعلانات بين أصحاب المواقع

mrghozzi

عضو جديد
عضو انكور
سكربت PHP متقدم للشبكات الاجتماعية وتبادل الإعلانات بين أصحاب المواقع، يعمل الآن بواسطة إطار عمل Laravel 12.


MYADS

  • اسم البرنامج: MYADS
  • المبرمج: MrGhozzi
  • إطار العمل: Laravel 12+



🚀 المميزات الجديدة​


  • سوق الخدمات (Services Marketplace): نظام احترافي لنشر طلبات الخدمات، تلقي عروض الأسعار، تتبع التنفيذ، ونظام تقييم متبادل.
  • نظام الفوترة والاشتراكات (Billing System): دعم العضويات المدفوعة مع بوابات دفع متكاملة (Stripe, PayPal, Bank Transfer) وإدارة كاملة للطلبات.
  • منصة المطورين (Developer Platform): دعم كامل لبروتوكول OAuth 2.0 لإتاحة بناء تطبيقات خارجية متكاملة مع المنصة.
  • جناح الأمان المتقدم: نظام حظر IP، مراقبة جلسات الأعضاء النشطة مع إمكانية الإنهاء عن بعد، وتشفير اختياري للرسائل الخاصة.
  • محرك SEO متكامل: لوحة تحكم مركزية لـ SEO، توليد خرائط الموقع (Sitemaps) الضخمة، وإحصائيات مفصلة للزيارات والزواحف.
  • إدارة البريد الذكية: إمكانية تعديل إعدادات SMTP والبريد مباشرة من قاعدة البيانات عبر لوحة التحكم.



🚀 المميزات الأساسية​


👤 الأعضاء​


  • تبادل الإعلانات: تبادل الزيارات، الإعلانات النصية، و البنرات الإعلانية، و الإعلانات الذكية (Smart Ads).
  • شبكة اجتماعية: نظام ملف شخصي كامل، نظام متابعة، ورسائل خاصة مشفرة، ومنشورات تفاعلية (نص، صور، روابط).
  • المتجر (Marketplace): متجر لتحميل السكربتات، الإضافات، والقوالب مع دعم التحديثات.
  • المجتمع: منتدى متطور، مجموعات متخصصة، و قاعدة معرفية (Wiki) تدعم Markdown.
  • نظام النقاط (PTS): نظام مكافآت متكامل (Gamification) مع أوسمة (Badges) ومهام يومية (Quests).

🛠 الإدارة​


  • لوحة تحكم Duralux: واجهة إدارة احترافية مع إحصائيات حية ورسوم بيانية (Chart.js).
  • نظام الإضافات والقوالب: تثبيت وتحديث الإضافات والقوالب بنقرة واحدة مباشرة من المتجر الرسمي.
  • تنبيهات الإدارة: نظام تنبيهات مركزي في لوحة التحكم لمتابعة طلبات الفوترة، البلاغات، والتحديثات.
  • التحكم والخصوصية: إدارة كاملة للأعضاء، الخصوصية (GDPR)، المحتوى، والتعليقات.



⚡ التقنيات المستخدمة​


  • الخلفية (Backend): Laravel 12 (PHP 8.2+)
  • قاعدة البيانات: MySQL / MariaDB (UTF8mb4)
  • الواجهة (Frontend): Bootstrap 5, Vanilla JS, IntersectionObserver, StackEdit (Markdown).
  • الأمان: تشفير Bcrypt/Argon2، حماية CSRF/XSS، وتشفير البيانات الحساسة (AES-256).


بعض الأمثلة

1777067447818.png 1777067503538.png 1777067544002.png 1777067585636.png 1777067625614.png 1777067675939.png 1777067701663.png 1777067727311.png


💾 التحميل​

مباشر من github : https://github.com/mrghozzi/myads/releases
أو من موقع ADStn : https://www.adstn.ovh/store/myads


⚙️ التثبيت​


تثبيت جديد​


  1. المتطلبات: PHP 8.2+، MySQL 5.7+، إضافات (PDO, cURL, OpenSSL, BCMath).
  2. الرفع: قم برفع الملفات وتوجيه النطاق إلى مجلد public.
  3. المثبت: انتقل إلى your-domain.com/install واتبع الخطوات لإعداد قاعدة البيانات وحساب المدير.



🗺 خارطة الطريق​


  • ✅ التسجيل الاجتماعي: التكامل مع Facebook/Google.
  • ✅ بوابات الدفع: دمج PayPal/Stripe/التحويل البنكي.
  • ✅ API المطورين: إطلاق منصة المطورين مع OAuth 2.0.
  • ✅ محرك SEO: جناح كامل لتحسين الأرشفة والتحليلات.
  • ✅ نظام المجموعات المتقدم: تحسينات إضافية للمجموعات الخاصة والعامة.
  • 🔹 تطبيق الهاتف: واجهة API مخصصة لتطبيقات Flutter/React Native.
  • 🔹 الوقت الفعلي: دعم كامل للـ WebSockets للتنبيهات والدردشة الفورية.
 

المرفقات

التعديل الأخير بواسطة المشرف:
السكربت في تطور مذهل ومتعوب عليه ومليء بالابداع
يعطيك العافية اخي
ومرحبًا بك من جديد

رفعت السكربت بالمرفقات لحفظ الملفات من بعد اذنك
 
كاني بتصفح موقع تواصل اجتماعي
هذا ما يجب ان يتوجه له اصحاب السكربتات الكبيرة
دام عطاؤك
 
السكربت في تطور مذهل ومتعوب عليه ومليء بالابداع
يعطيك العافية اخي
ومرحبًا بك من جديد

رفعت السكربت بالمرفقات لحفظ الملفات من بعد اذنك
شكرا :love:

كاني بتصفح موقع تواصل اجتماعي
هذا ما يجب ان يتوجه له اصحاب السكربتات الكبيرة
دام عطاؤك
شكرا :love:
 
تحديث v4.3.1

إصدار صيانة — استقرار OAuth، تحسينات CSRF، وتكوين بريد المدير.

إعادة بناء نظام الرسائل​


  • ميزة: إعادة بناء كاملة لواجهة وحدة الرسائل لتصبح متجاوبة، حديثة، وذات تصميم موحد (_page.blade.php, messages.css)؛ مما يحسن تجربة القراءة على أجهزة الكمبيوتر والهواتف المحمولة.
  • ميزة: استبدال روابط التنقل التقليدية بين الصفحات بنظام التمرير اللانهائي (AJAX Infinite Scroll) لقائمة المحادثات في الشريط الجانبي (messages-app.js).
  • ميزة: إضافة منطق الدمج الذكي (Smart Merge) أثناء التحديث التلقائي في الخلفية؛ لدفع الرسائل الجديدة الواردة إلى الأعلى مع الحفاظ على سجل المحادثة الذي يتصفحه المستخدم حالياً، لضمان تنقل غير منقطع.
  • ميزة: دمج إشعار صوتي (pop.wav) يعمل تلقائياً عند استلام تنبيه برسالة جديدة، مع تحسين التحميل المسبق لتقليل قيود التشغيل التلقائي في المتصفحات.
  • ميزة: ترقية "منقي الرموز التعبيرية" (Emoji Picker) ليصبح منبثقاً بتصميم شبكي متجاوب ومتوافق مع سمة الموقع (Theme). تم توسيع المكتبة لتشمل مئات الرموز التعبيرية، وتطبيق فلتر دقيق للأعلام وفقاً لسياسات المنصة.
  • إصلاح: حل مشكلة تكرار الأسماء في الشريط الجانبي للتمرير اللانهائي عن طريق استخدام سمات data-name الفريدة لإزالة تكرار عناصر DOM، متجاوزاً بذلك عدم اتساق مفاتيح التشفير أثناء إعادة رندر AJAX.

إعدادات البريد (تعتمد على قاعدة البيانات)​


  • ميزة: ترحيل تكوين البريد من ملف .env الثابت إلى صفحة إدارة مخصصة تعتمد على قاعدة البيانات في المسار /admin/settings/mail؛ مما يسمح بتغيير إعدادات البريد في وقت التشغيل دون الحاجة لتعديل ملفات السيرفر.
  • إضافة: إنشاء جدول أحادي (Singleton) باسم mail_settings لتخزين بروتوكول البريد، المضيف، المنفذ، اسم المستخدم، كلمة المرور (مشفرة عبر Crypt)، التشفير، عنوان المرسل، واسم المرسل.
  • إضافة: إدخال MailConfigServiceProvider الذي يبدأ العمل مبكراً ليقوم بتجاوز إعدادات Laravel الافتراضية config('mail.*') من قاعدة البيانات، مع العودة التلقائية للإعدادات الافتراضية في config/mail.php في حال فقدان الجدول أو كونه فارغاً.
  • إضافة: بناء نموذج إدارة بتصميم Duralux مع ميزة التبديل الديناميكي لقسم SMTP عبر JavaScript (إظهار/إخفاء بناءً على المشغل المختار)، ومنطق "الحفاظ على كلمة المرور القديمة في حال ترك الحقل فارغاً"، والتحقق الشرطي من الحقول.
  • تنظيف: إزالة حقول SMTP القديمة من /admin/settings/system وحذف منطق الكتابة في ملف .env من AdminController::updateSystemSettings()، واستبدالها برابط يحول إلى الصفحة الجديدة المخصصة.
  • الأمن: يتم تخزين كلمة مرور البريد مشفرة في قاعدة البيانات باستخدام Crypt الخاص بـ Laravel ولا يتم عرضها أبداً في نموذج الإدارة؛ كما أن إرسال حقل كلمة مرور فارغ يحافظ على القيمة المخزنة الحالية.
  • التدويل (i18n): إضافة 18 مفتاح ترجمة لإعدادات البريد عبر جميع اللغات التسع المدعومة، مع ترجمة كاملة للعربية والفارسية.

الأداء والإحصائيات​


  • الأداء: استبدال استرجاع البيانات الكامل بنظام تقسيم الصفحات من جهة الخادم (Server-side Pagination) بواقع paginate(50) لجميع صفحات الإحصائيات (/state). هذا يزيل تأخير التحميل الكبير للمستخدمين الذين لديهم بيانات زيارات ضخمة مع الحفاظ على سهولة الوصول للبيانات التاريخية عبر روابط Bootstrap 5.
  • ميزة: تقديم نظام دقيق للتحكم في رؤية عنوان IP في لوحة تحكم إعدادات الإعلانات. يمكن للمديرين الآن تقييد رؤية عناوين IP للزوار في الإحصائيات لتكون متاحة لـ: الجميع، جميع الأعضاء المشتركين، خطط اشتراك محددة، المديرين فقط، أو تعطيلها تماماً للخصوصية.
  • إعادة هيكلة: فرض تنسيق تقسيم صفحات Bootstrap 5 عالمياً عبر AppServiceProvider لضمان اتساق بصري في جميع الوحدات، بما في ذلك وحدات الإحصائيات والرسائل المحدثة.
  • التدويل (i18n): إضافة مفاتيح ترجمة "رؤية عنوان IP" للغتين الإنجليزية والعربية لدعم خيارات الإدارة الجديدة.

الفواتير وبوابات الدفع​


  • ميزة: دمج Lemon Squeezy كبوابة دفع مدعومة بالكامل لنظام الاشتراكات والخطط المدفوعة، ومعالجة جلسات الدفع عبر JSON:API.
  • ميزة: إضافة تكوين ديناميكي لبوابة Lemon Squeezy في لوحة الإدارة (/admin/billing/gateways)، مع دعم إعداد معرف المتجر (Store ID)، معرف المنتج (Variant ID)، مفتاح API، وسر الـ Webhook.
  • ميزة: تنفيذ التحقق من Webhook باستخدام HMAC SHA256 (order_created) لإتمام دورة حياة الدفع بشكل آمن وغير متزامن.
  • ميزة: إضافة "أداة مزامنة التطوير المحلي" في صفحة تفاصيل الطلب بالمدير لمحاكاة Webhooks الخاصة بـ Lemon Squeezy والموافقة الفورية على الطلبات أثناء الاختبار المحلي.
  • إصلاح: إعادة هيكلة تدفق رابط العودة (Return URL) لـ Lemon Squeezy للبحث عن جلسات الدفع مباشرة عبر قاعدة البيانات المحلية، لتجاوز نقص الرموز الديناميكية لروابط إعادة التوجيه في Lemon Squeezy.
  • إصلاح: زيادة الحد الأقصى لطول مفاتيح API في إعدادات البوابة إلى 5,000 حرف لاستيعاب رموز Bearer الطويلة جداً الخاصة بـ Lemon Squeezy دون حدوث أخطاء 404.
  • إصلاح: تحديث منطق إخفاء مفتاح API (Masking) في إعدادات بوابة الاشتراك لاستخدام قناع ثابت (***) بدلاً من تكرار الرموز، مما يمنع مشاكل تمدد CSS في لوحة الإدارة.
  • التدويل (i18n): إضافة مفاتيح ترجمة بالإنجليزية والعربية لواجهة دمج Lemon Squeezy.

تحديثات الإدارة المرحلية​


  • ميزة: إعادة تصميم /admin/updates ليصبح مُحدّث AJAX مرحلي مع عرض تقدم مرئي لعمليات: التنزيل، الاستخراج، فحص سلامة الحزمة، وضع الصيانة، تثبيت الملفات، ترحيل قاعدة البيانات، والتنظيف.
  • الموثوقية: كل مرحلة تحديث تعمل الآن كطلب منفصل وتخزن حالة الجلسة في الخيارات (options)، مما يقلل الضغط على الاستضافات الضعيفة أو المشتركة مع ضمان استعادة وضع الصيانة عند الفشل.
  • الأمان: يتم استخراج حزم الإصدار في مستودع تخزين معزول، وفحصها للتأكد من سلامة مسارات ZIP، ومسحها بحثاً عن أي ترحيلات قاعدة بيانات تخريبية قبل نسخ أي ملفات للموقع الحي.

OAuth 2.0 والتكاملات​


  • إصلاح: حل مشكلة خطأ "انتهت صلاحية الصفحة" (419) أثناء تدفق تبادل رموز ADStn OAuth. تم استثناء مسار /oauth/token من فحص CSRF في bootstrap/app.php؛ مما يسمح بطلبات POST من خادم إلى خادم لاسترداد رموز الوصول دون الحاجة لرمز CSRF المرتبط بالجلسة.

المتجر والإضافات​


  • إصلاح: حل مشكلة عدم تتبع تنزيلات الإضافات (قوالب/إضافات برمجية) عبر API في عداد التنزيلات، وذلك من خلال الانتقال إلى مسارات تنزيل قابلة للتتبع.
  • تجربة المستخدم: تفعيل تنزيلات الضيوف للمنتجات المجانية في المتجر لدعم أدوات التثبيت التلقائي وتحسين الوصول العام للمصادر المجانية.

الإشعارات وتفضيلات البريد الإلكتروني​


  • ميزة: إضافة صفحة مخصصة لـ إعدادات إشعارات البريد الإلكتروني (/settings/notification) تتيح للأعضاء تفعيل أو تعطيل تنبيهات البريد لأحداث محددة مثل: الرسائل الجديدة، التعليقات، المتابعات، الإشارات (Mentions)، إعادة النشر، التفاعلات، ردود المنتدى، وتحديثات المتجر.
  • المعمارية: إدخال نموذج UserNotificationSetting وجدول user_notification_settings لحفظ تفضيلات البريد الدقيقة للأعضاء.
  • المعمارية: توحيد إرسال الإشعارات عبر NotificationService لتقييم قواعد اشتراك العضو تلقائياً قبل إرسال أي بريد نظام (SystemNotificationMail).
  • إصلاح: حل مشكلة "خطأ خادم داخلي 500" أثناء عمليات المتابعة الناتجة عن فقدان Namespace لخدمة NotificationService المحقونة في ProfileController.
  • إصلاح: حل مشكلة "خطأ خادم داخلي 500" (بيانات طويلة جداً للعمود 'nurl') التي كانت تمنع حفظ إشعارات الرسائل الجديدة وتعطل إرسال البريد اللاحق، وذلك عبر تغيير نوع العمود nurl في جدول noti إلى TEXT.
  • الأمن: إشعارات البريد للرسائل الخاصة الجديدة تقوم الآن بإنشاء مفاتيح روابط مشفرة (/messages/{key}) بدلاً من معرفات رقمية قابلة للتخمين عند تفعيل تشفير الرسائل في /admin/security.
  • تجربة المستخدم: إضافة رابط إلغاء الاشتراك (Unsubscribe) في تذييل جميع رسائل إشعارات النظام، والذي يؤدي مباشرة إلى صفحة إعدادات إشعارات العضو.
  • التدويل (i18n): تعريب وترجمة واجهة إعدادات الإشعارات ووصف الأحداث بالكامل لجميع اللغات التسع المدعومة.

للتحديث​


 
عودة
أعلى