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

استفسار اضافة حذف

السلام عليكم ورحمه الله بعضنا بننسي اصدار الاضافات وبنثبت اضافات بتكون غير متوافقة وبتعمل تعارض سواء ف الاكواد او قاعده البيانات هل ينفع برمجيا حضرتك تعمل...

Abdo Hassn

عضو فعال
إنضم
18 فبراير 2025
المشاركات
150
مستوى التفاعل
39
النقاط
28
السلام عليكم ورحمه الله
بعضنا بننسي اصدار الاضافات وبنثبت اضافات بتكون غير متوافقة وبتعمل تعارض سواء ف الاكواد او قاعده البيانات هل ينفع برمجيا حضرتك تعمل اضافة مخصصة لحذف الاضافات المتعارضة او اللي بتعمل مشكله من الملفات وقاعده البيانات
 
وعليكم السلام ورحمة الله وبركاته

حياك الله اخوي @Abdo Hassn بالنسبة لاستفسارك هو المفروض برمجياً المنتدى يتعرف على الاضافات اذا كانت متوافقة او لا عن طريق ملف addon.json خصوصا ان اغلب مبرمجين الاضافات وانا منهم نضيف سطر برمجي داخل هذا الملف بالتوافق المطلوب للاضافة مع نسخ المنتدى.

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

احترامي وتقديري
اخوك
شقاوي
 
وعليكم السلام ورحمة الله وبركاته

حياك الله اخوي @Abdo Hassn بالنسبة لاستفسارك هو المفروض برمجياً المنتدى يتعرف على الاضافات اذا كانت متوافقة او لا عن طريق ملف addon.json خصوصا ان اغلب مبرمجين الاضافات وانا منهم نضيف سطر برمجي داخل هذا الملف بالتوافق المطلوب للاضافة مع نسخ المنتدى.
عندك حق والله اخي
لكن موضوع عمل اضافة خاصة بالشيء هذا حقيقة ما فكرت فيها لان نفس النسخة تقوم بالشيء هذا فعمل شيء موجود يعتبر جهد اضافي لا نفع منه واتوقع التعارض اللي صاير معك انه بسبب ترقية النسخة مع اضافات سابقة وهذا اكبر خطأ يقع فيه الكثير لذلك انصح دائما ً عند الترقية حذف الاضافات جميعا ً وبعد الترقية يتم تركيبه اضافة اضافة حتى يتم التأكد من توافق الاضافات من عدمه

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

ممكن حضرتك تقولي ازاي هيا موجوده في النسخه ومع ذلك في اضافه نزلتها عملت تعارض ولا انا قادر اشوف التحكم بتاعها ولا قادر احذفها
ممكن تصوري ، كيف ماتنحذف ؟
 
اهلاً وسهلاً اخي العزيز ..
هذا الخطأ وارد كثيرًا بسبب نتيجة تعارض معالجة البيانات داخل ملف المتحكم ( Controller ) الخاص بالاضافات ..

1. الحل السريع (عبر ملف config.php)

أحياناً يكون الخطأ ناتجاً عن تفعيل وضع التطوير أو معالجة خاطئة للطلبات. جرب إضافة أو التأكد من وجود السطر التالي في ملف src/config.php:

كود:
$config['debug'] = false;

ملاحظة: إذا كنت تقوم بتطوير إضافة حالياً، فقد تحتاج لتفعيله لاحقاً، لكن إيقافه قد يتجاوز خطأ الواجهة مؤقتاً لإتمام الحذف.

اخوك مهدي حميد
@Abdo Hassn .
 
فحص ملف addon.json

تأكد من أن ملف addon.json الخاص بالإضافة التي تسبب المشكلة لا يحتوي على مصفوفات (Arrays) في حقول نصية، خاصة في حقل version_string أو الحقول المتعلقة بروابط الدعم، لأن دالة strlen() في PHP 8.1+ أصبحت صارمة جداً ولا تقبل المصفوفات.
وتحقق من اصدارات Php ايضًا ..
 
فحص ملف addon.json

تأكد من أن ملف addon.json الخاص بالإضافة التي تسبب المشكلة لا يحتوي على مصفوفات (Arrays) في حقول نصية، خاصة في حقل version_string أو الحقول المتعلقة بروابط الدعم، لأن دالة strlen() في PHP 8.1+ أصبحت صارمة جداً ولا تقبل المصفوفات.
وتحقق من اصدارات Php ايضًا ..
هذة الاضافة حضرتك ممكن تشوف بنفسك
 

المرفقات

اهلاً وسهلاً اخي العزيز ..
هذا الخطأ وارد كثيرًا بسبب نتيجة تعارض معالجة البيانات داخل ملف المتحكم ( Controller ) الخاص بالاضافات ..

1. الحل السريع (عبر ملف config.php)

أحياناً يكون الخطأ ناتجاً عن تفعيل وضع التطوير أو معالجة خاطئة للطلبات. جرب إضافة أو التأكد من وجود السطر التالي في ملف src/config.php:

كود:
$config['debug'] = false;

ملاحظة: إذا كنت تقوم بتطوير إضافة حالياً، فقد تحتاج لتفعيله لاحقاً، لكن إيقافه قد يتجاوز خطأ الواجهة مؤقتاً لإتمام الحذف.

اخوك مهدي حميد
@Abdo Hassn .
فعلا انا كنت فعلته سابقا لكن الان متوقف
 
حسب ما فهمت ان الاضافه تعمل مع 2.3 ولكن انا بثبتها علي نسخه 2.3.4 وعملت المشكلة دي
سافحص الاضافة واخبرك بالنتيجة الليلة ان شاء الله ..

تحياتي لك
اخوك مهدي حميد .
 
سافحص الاضافة واخبرك بالنتيجة الليلة ان شاء الله ..

تحياتي لك
اخوك مهدي حميد .
تسلم ياغالي في انتظار حضرتك
انا بقي كان قصدي في الاول اضافة تحذف الاضافات اللي زي كده بس معرفتش اوضح ليكم تحياتي لحضراتكم
 
تسلم ياغالي في انتظار حضرتك
انا بقي كان قصدي في الاول اضافة تحذف الاضافات اللي زي كده بس معرفتش اوضح ليكم تحياتي لحضراتكم
صديقي العزيز ..
اضافة تحذف الاضافة كما وضح لك الاستاذ والاخ شقاوي .. فقط جهد فاضي لن منتديات زين فورو فيهَ هذا المميزات فحص الاضافات المتوارده .. والله اعلم
لكن لحل مشكلة الحذف سافحص الاضافة واجربها مامشكلتها واخبرك بالتفاصيل ان شاء الله الليلة .

اخوك
مهدي حميد :)
 
هذة الاضافة حضرتك ممكن تشوف بنفسك

عزيزي @Abdo Hassn انت تحاول تركب اضافة مخصصة للنسخ 2.3.7 واعلى على نسخة 2.3.4

وهذا محدد في ملف الاضافة واللي المفروض يعطيك تحذير عند التكريب ان النسخة غير متوافقة
 
عزيزي @Abdo Hassn انت تحاول تركب اضافة مخصصة للنسخ 2.3.7 واعلى على نسخة 2.3.4

وهذا محدد في ملف الاضافة واللي المفروض يعطيك تحذير عند التكريب ان النسخة غير متوافقة
استاذنا العزيز ..
اعتقد هذا بسبب النسخ المنزوعة تأثر على سيستم الحماية في زينفورو .. فلذلك دائمًا نتجنب النسخ المنزوعة .
 
استاذ @shqawe واستاذ @مهدي حميد
هوا كان مكتوب التوافق 2.3 لكن فعلا زي ما حضراتكم قولتوا ملف الاضافة بيقول اعلي من 7 هل ممكن حضراتكم تنزلوا درس ازاي نتعامل مع مشكله زي كده
 
التعديلات التي تمت على الإضافة:

1. ملف addon.json — أهم ملف تم تعديله
المشكلةقبل التعديلبعد التعديل
addon_id مفقود تماماًغير موجود"addon_id": "Vendor/LlmoSeo"
version_id خاطئ20100042010400
متطلب إصدار XF خاطئ[2030070, "XenForo 2.3.7+"][2030000, "XenForo 2.3.0+"]
أحداث الـ listeners غير موجودة في XFthread_view, resource_view, node_view, member_viewcontroller_post_dispatch
حقل options غير معترف بهموجود (يسبب تحذيرات)تم حذفه
سبب خطأ strlen(): كان addon_id غير موجود، فـ XenForo يقرأ قيمة خاطئة (array) ويحاول تطبيق strlen() عليها فيحدث الخطأ.

2. ملف جديد: Listener/ControllerPostDispatch.php
الأحداث القديمة (thread_view, resource_view, node_view, member_view) غير موجودة في XenForo، لذا كانت الإضافة لا تعمل أبداً حتى بعد التثبيت.

التعديل: إنشاء listener جديد يعمل على حدث controller_post_dispatch الذي يُفعَّل بعد كل action في أي Controller، وهو الطريقة الصحيحة في XF 2.3.x للاستجابة لطلبات المتصفح.

3. ملف Service/Context/PageContextResolver.php
// قبل: دالة محذوفة في XF 2.3.x
deviceClass: (string)($this->app->request()->getUserAgentType() ?? 'desktop'),
// بعد: يتحقق أولاً هل الدالة موجودة، وإلا يستخدم isMobile()
$deviceClass = method_exists($request, 'getUserAgentType')
? (string)($request->getUserAgentType() ?? 'desktop')
: ($request->isMobile() ? 'mobile' : 'desktop');
دالة getUserAgentType() تم حذفها في XF 2.3.x، التعديل يجعل الكود متوافقاً مع الإصدارين.

4. ملف Util/Logger.php
// قبل: API قديم لا يعمل في XF 2.3.x
$this->app->logger('debug')->info('[LLMO] ' . $message, $ctx);
// بعد: استخدام XF::logError() مع try/catch للأمان
\XF::logError('[LLMO] ' . $message . $extra, true);
5. ملف Listener/AppPubStart.php
تصحيح رقم الإصدار في الـ header من v=2.1.2 إلى v=2.1.4.

6. ملف _data/hashes.json
تم إعادة حساب جميع هاشات SHA-1 لكل ملفات الإضافة بعد التعديلات، بما في ذلك:

الملفات المعدَّلة
الملف الجديد ControllerPostDispatch.php
الهاش الخاص بملف hashes.json نفسه
 

المرفقات

عودة
أعلى