السلام عليكم
قمت بعمل كود لإستبدال كلمات معينة في المواضيع يتم تحديدها من قبل مدير المنتدى
كيف يمكن دمج الكود في لوحة تحكم الإدارة دون الحاجة إلى تتبع رابط معين للدخول لواجهة التحكم للكود
يمكن تحميل الكود من المرفقات
صور توضيحية
الاضافة المعدلة والمصححة تجدونها بالرد التالي
https://pbboard.info/forums/t25280#102206
تم تحرير الموضوع بواسطة :Soliman
بتاريخ: 27-05-2026 12:05 صباحاً
وعليكم السلام
اطلعت على المرفق
الطريقة بشكل عام صحيحه لكن للأسف برمجته تعمل كسكربت خارجي غير مربوط ومدمج كملحق حقيقي في موديلات المنتدى وقوالبه ودوالة والاتصال بقاعدة البيانات ولم تستخدم نظام الأضافات البرمجية (Addons) والخطاطيف [شرح]: برمجة هاك وتركيبه عن طريق الأضافات البرمجية
صعبت الأمر على نفسك كثيرا بهذه الطريقة علما انه ابسط من ذلك بكثير
وبما ان الهدف هو برمجة هاك او ملحق مستبدل الكلمات
لا اريد احباطك الاضافة مليئة بالأخطاء وهناك فلسفة ذكاء اصطناعي خارجه عن الايطار وخارطة الطريق ب 180 درجة
ساختصر الملاحظات مع انها كثيرة جدا:
- لغة الاستعلام بقواعد البيانات يفترض ان تستخدم Mysqli وليس PDO
- لا نقوم بجلب بيانات القاعدة من ملف includes/config.php في موديل الاضافة بهذه الطريقة يمكنك استخدام هذا فقط include('common.php'); .
- في عنصر installcode تكتب به استعلامات انشاء الجداول وادخال الاستعلامات وليس موديل الاضافا بالكامل.
هكذا تضيف به الاستعلامات
CODE
<installcode><![CDATA[
$PowerBB->DB->sql_query("CREATE TABLE IF NOT EXISTS ".$PowerBB->prefix."word_replacements (
id INT AUTO_INCREMENT PRIMARY KEY,
search_word VARCHAR(255) NOT NULL,
replace_word VARCHAR(255) NOT NULL,
is_active TINYINT(1) DEFAULT 1,
is_regex TINYINT(1) DEFAULT 0,
case_sensitive TINYINT(1) DEFAULT 0,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_search (search_word(100)),
INDEX idx_active (is_active)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci");
$PowerBB->DB->sql_query("INSERT INTO " . $PowerBB->prefix . "word_replacements (search_word, replace_word, is_active, is_regex, case_sensitive) VALUES
('سيء', 'جيد', 1, 0, 0),
('اختبار', 'مثال', 1, 0, 0),
('\\b(رديء|سيئ|فظيع)\\b', 'مقبول', 1, 1, 0)");
]]></installcode>
- عند انشاء قالب جديد لاتحتاج لإنشاء وسوم جديدة مثل body و html و head و meta بداخله
- استعلامات الاضافة الجلب والتحديث والحذف كلها تحتاج اعادة كتابة بلغة Mysqli وليس PDO
- موديل الاضافة admin_word_replacer.php يجب اعادة كتابة كامل ويرفع بداخل admincp\modulescp ويفضل ان يكون اسمه هكذا admin_word_replacer.module.php
مع ان هناك امكانيه لبرمجة هذه الاضافة دون الحاجة لموديل من الأساس وذلك بالاعتماد على hooks او الخطافات تكتبها في ملف الاضافة هكذا
مثال
CODE
<hooks>
<hook main_place="mainInfoHooks" place="mainInfoHooks"><![CDATA[
if ($PowerBB->_GET['word_replacements'])
{
$PowerBB->template->display('replace_words');
}
]]>
</hook>
<hook main_place="updateInfoHooks" place="updateInfoHooks"><![CDATA[
if (isset($PowerBB->_POST['add_replacement'])) {
{
.....
}
if (isset($PowerBB->_POST['edit_replacement'])) {
{
....
}
]]>
</hook>
</hooks>
انصحك بالاطلاع علي اي هاك او ملحق سابق تجد منها العشرات في قسم الملحقات البرميجة او في المتجر
اقرب مثال ملحق إدارة بادئات الموضوع الملونة للنسخة 3.0.4
اطلع على الموديل كيف تمت كتابته
اطلع على عناصر admin_templates في ملف xml للأضافة
وطبق Request Method لارسال البيانات في القالب
المشاركة الأصلية كتبت بواسطة: Sofiene2023بتاريخ:23-05-2026 11:00 صباحاً قمت أخي سليمان بعمل هذا الهاك وتعديله
بعد مراجعته هل يمكنك إصلاح بعض الأخطاء الواردة فيه حتى يعمل بشكل صحيح
مع الشكر الجزيل
الملف مرفق
بصراحة لو طلبت بنائها من الصفر لكان اقل مشقه واسرع لي
نصيحتي لك ان تتحقق من جميع الأكواد التي يزودك بها الذكاء الاصطناعي فأغلبها فلسفات برمجية يبنيها من خوارزمياته الخاصة ليست متوافقه مع برمجية ودوال ومتغيرات PBBoard يجب ان تحقق من عمل كل سطر برمجي او استعلام يضعه لك من خلال المقارنة برمجة ملحقات اخرى يجب ان يكون لديك لا يقل عن 10 ملحقات برمجية سابقة للاطلاع عليها ومقارنة عملك بها.
عموما بعد هذا التعب في تعديل هذه الاضافة لابد ايضا ان اتعبك انت:
- اريد منك كتابة طرح تفصيلي للأخطاء والتعديلات التي اجربتها انا على هذه الاضافة لتصحيحها لأنك بمجرد ان تعرف الأخطاء ستتلافها مستقبلالن ارضى بأقل من 30 خطأ
لماذا لأني لا اريد ان اراك تكرر نفس الأخطاء في اي اضافة مستقبليه حينها سأعتذر عن مساعدتك لأني سأعلم انك لا ترغب بتطوير مهاراتك وستستعين بنا مجددا بطلب البرمجة والتعديل الكامل.
بوركت أخي سليمان
الأخطاء التي وقعت فيها :
1.طريقة إرسال الإستعلامات لحفظ البيانات في قاعدة البيانات
2.طريقة جلب المتغيرات من قاعدة البيانات لعرضها
3.طريقة تعريف الجداول في hooks
4.كيفية تحرير وإضافة وحفظ التغييرات
كل هذه الأخطاء لن تتكرر مجددا أخي سليمان وسأقوم بتطوير مهاراتي لبرمجة صحيحة
تم تحرير المشاركة بواسطة :Sofiene2023
بتاريخ:25-05-2026 10:13 صباحاً
تمام مع انك الأخطاء اكثر بكثير من ماذكرت
يبدو انك ستستخدم هذه الاضافة لتغيير الكلمات التي يتم جلبها من محتويات تغذيات RSS هل توقعي صحيح !
علما ان هناك ملحق بسيط يقوم بنفس العمل وبشكل اشمل ليس على المواضيع فقط لكنك لم تطوره ولم تستخدمه ! ملحق مستبدل الكلمات بكلمات أخرى مباشرة بشكل غير نهائي
نعم أردت هذه الإضافة ليس فقط لتغيير الكلمات التي يتم جلبها من محتويات تغذيات RSS بل كذلك لإستبدال كلمات معينة في المواضيع بشكل تلقائي شكرا لمساهمتك وإفادتك أخي الكريم
تم تحرير المشاركة بواسطة :Sofiene2023
بتاريخ:26-05-2026 08:55 مساءً