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

مسيرتي في برمجة ملحقي ( ملحق الإستبدال )

موضوع مغلق


11-02-2016 03:36 صباحاً
أبو العصافير
معلومات الكاتب
مسيرتي في برمجة ملحقي ( ملحق الإستبدال )





كيف الحال ؟ ارجو ان تكونوا في تمام الصحة والعافية

أتمنى ان لا يكون قسم الموضوع خاطئ (رغم انه انسب مكان له )



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

لذلك سيكون هذا الموضوع بمثابة تدوين لكل خطوة اقوم بها

منها فتح لباب النقاش حول الملحق ومميزاته وكيفية صنعه بأفضل طريقة بمشاركة اعضاء المنتدى

ومنها ان يكون دليل لكل من يريد برمجة ملحق فيكون لديه موضوع موثق بكل خطوة



مسيرتي في برمجة ملحقي ( ملحق الإستبدال )



فكرة الملحق :

الملحق سيقوم بالبحث داخل المواضيع عن نصوص معينة

وحينما يجد نص معين فسيقوم بإستبداله بنص آخر مختلف حسب الخيارات المتاحة

مسيرتي في برمجة ملحقي ( ملحق الإستبدال )

ماذا تستفيد من الملحق ؟

كما نعلم جميعًا ان برنامج pbb يتوفر فيه ميزة الكلمات الممنوعة، ولكنه يقوم بإضافة علامة * بعد الحرف الأول مع الإبقاء على الكلمة

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

مسيرتي في برمجة ملحقي ( ملحق الإستبدال )

امثلة على الفكرة :

كلمة pbb تصبح PBBoard او رابط الموقعhttps://pbboard.info/

كلمة php تصبح رابط الموقع الرسمي :http://php.net/

كلمة Google تصبحwww.google.com



وهكذا

مسيرتي في برمجة ملحقي ( ملحق الإستبدال )



لماذا اخترت هذا الملحق ؟ ولماذا تريد برمجته ؟

في الحقيقة انا صاحب موقع تتكرر فيه مصطلحات كثيرة وهذه المصطلحات لا تكون مفهومة في بعض الأحيان

لذلك اريد ان يقوم الملحق بإكتشاف هذه الكلمات وتحويل كل كلمة لرابط يقوم بتحويلك لموضوع فيه شرح لها بالكامل



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

وهل استخدم php ام javascript ( استخدام php قد يتسبب في ضغط على موارد السيرفر )



يتبع ...
تم تحرير الموضوع بواسطة :أبو العصافير بتاريخ: 11-02-2016 03:07 مساءً

سبب التعديل : تبديل كلمة هاك إلى ملحق (مصطلح الهاكات خاص بنسخ vb وليس pbb وانا خلطت بينهم


look/images/icons/i1.gif مسيرتي في برمجة ملحقي ( ملحق الإستبدال )
  11-02-2016 04:12 صباحاً   [1]
أبو العصافير
معلومات الكاتب
بعد البحث بين php و javascript

تم اختيار php لسببين

السبب الأول توفر دالة str_ireplace والتي تقوم بالعمل بأسهل طريقة ممكنة



والسبب الثاني هو في دوال javascript دوالها عادة تكون case-sensitive ( حساسة لحالة الأحرف مثل الحروف الكبيرة والصغيرة )

يوجد طرق اخرى للقيام بالعملية ولكن سأحتاج لعمليات اكثر

وانا لا اريد ان استهلك موارد المتصفح وخاصة لو كان هنالك اكثر من نص لإستبداله



اما بالنسبة لدوال php فقد تكون ادق وبها ميزة الخصوصية نوعًا ما

فقد لا يريد صاحب الموقع ان تظهر الكلمات التي يتم استبدالها في احد اكواد javasctipt في المتصفح



رغم ان استخدام Javascript قد يكون اسهل من ناحية التعامل

لأن الموضوع يكون داخل class بمسمى text فيكون التعامل اسهل بكثييير عن المعتاد



وما زال الوقت مبكرًا على إصدار الأحكام

يتبع ....

تم تحرير المشاركة بواسطة :أبو العصافير بتاريخ:11-02-2016 04:18 صباحاً

سبب التعديل : توسيط


look/images/icons/i1.gif مسيرتي في برمجة ملحقي ( ملحق الإستبدال )
  12-02-2016 04:49 صباحاً   [2]
Soliman
معلومات الكاتب
حسناً يمكنني مساعدتك على اتمام الهاك فهو لايتطلب الكثير من الجهد



مافهمته انك تريد ان يكون الاستبدال غير نهائي للكلمات

ومشابه لخاصية الكلمات الممنوعة لكن يكون استبدال كلمات بكلمات اخرى

بما انه لم يسبق لك ان قمت ببرمجة اي هاك من قبل لمنتديات PBBoard وهذه هي المرة الأولى لك



فسأساعدك ببرمجته هذا الملحق بالطريقة الصحيحة وسهل التركيب واضافته لك بالمرفقات في ردي القادم



فيجب عليك ان تحرر ملف xml للملحق

وتطلع على طريقة برمجته وتجاريها وتتعلم منها

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



سأبدأ ببرمجة الملحق الآن واضافتة بالمرفقات بردي القادم

look/images/icons/i1.gif مسيرتي في برمجة ملحقي ( ملحق الإستبدال )
  12-02-2016 05:32 صباحاً   [3]
Soliman
معلومات الكاتب
تم انجاز ملحق مستبدل الكلمات بكلمات أخرى مباشرة بشكل غير نهائي



مسيرتي في برمجة ملحقي ( ملحق الإستبدال )



يمكنك تحميله من المرفقات وتجربته ويجب عليك ان تحرر ملف xml للملحق

وتطلع على طريقة برمجته وتجاريها وتتعلم منها

ومن خلالها يمكنك طرح استفساراتك عن اي شيء في طريقة برمجة الهاك وسأجيبك عنها
 
  word_replacer.zip   تحميل zip مرات التحميل :(31)
الحجم :(29.02) KB

look/images/icons/i1.gif مسيرتي في برمجة ملحقي ( ملحق الإستبدال )
  12-02-2016 10:20 مساءً   [4]
أبو العصافير
معلومات الكاتب
ما شاء الله عليك

ما زلت اقوم ببناء الكلاس الخاص بالملحق

حاليًا قمت بتنزيله وسأقوم بالإطلاع عليه

شكرًا لك

تم تحرير المشاركة بواسطة :أبو العصافير بتاريخ:12-02-2016 10:20 مساءً


look/images/icons/i1.gif مسيرتي في برمجة ملحقي ( ملحق الإستبدال )
  13-02-2016 02:23 صباحاً   [5]
Soliman
معلومات الكاتب
حسناً انا اريدك ان تسأل اكثر وتدخل في اعمق التفاصيل في برمجة الهاكات

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

ويفضل ان يكون لديك خبرة جيدة في لغة PHP وتطلع أكثر على الشروحات الخاصة ببرمجة الهاكات كهذا الشرح

[شرح]: برمجة هاك وتركيبه عن طريق الأضافات البرمجية

وتحمل اكبر عدد من الهاكات وتطلع عليها بتعمق

فنحن فعلاً بحاجة لأن نزيد من عدد المطورين وخصوصاً مبرمجي الملحقات الاضافية لمنتديات PBBoard على الساحة

فلا تتردد بوضع تجاربك مهما كانت

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

لكن عليك ان تكثر من الممارسة والتدريب وبعض من الجهد لتزيد من خبرتك وقدراتك

وبخصوص هذا الهاك مستبدل الكلمات هولا يحتاج إلى كلاس خاص فهو ملحق من المستوى العادي ليس له كثير من المتطلبات لا يأخذ وقت في تنفيذه على المطور المتمرس



انا اقولك هذا الكلام لأني لمست منك بوادر اهتمام ورغبه التطوير في منتديات PBBoard من خلال مواضيعك ونقاشاتك ولدي نظرة فيك انك قادر على تطوير قدراتك أعتقد فقط يلزمك بعض من الوقت والجهد لتطوير مهاراتك اكثر وتفيد الكثيرين بها




look/images/icons/i1.gif مسيرتي في برمجة ملحقي ( ملحق الإستبدال )
  13-02-2016 02:31 صباحاً   [6]
أبو العصافير
معلومات الكاتب
في هذا الرد سأقوم بتحليل الملحق، على بركة الله :

CODE
<?xml version="1.0" encoding="UTF-8"?>


هذا عنصر ثابت وهو خاص بلغة xml

CODE
<plugin name="ملحق مستبدل الكلمات بكلمات أخرى مباشرة بشكل غير نهائي">


هذا اسم الملحق

<version>1.0</version>

اصدار الملحق



CODE
​<description><![CDATA[
<ul>
<li><b>التوافق: PBB3.0.2 فقط ، برمجة: <a href="https://pbboard.info/forums/u1" target="_blank"><font color="green">Soliman</font></b></a></li>
<li><a href="index.php?page=options&amp;hooks=1&amp;mainhooks=1&amp;word_replacer=1"><font color="blue">صفحة استبدال الكلمات</font></a></li>
</ul>
]]></description>




وصف الملحق وقد تم استخدام CDATA لأنه يحتوي على اكواد html وعلامتي < و > ولأنك تريد وضعه على شكل نقاط

وهو يظهر هنا :

مسيرتي في برمجة ملحقي ( ملحق الإستبدال )



CODE
​<author>Soliman</author>
<url>pbboard.info</url>


بيانات صانع الملحق



<copyrights><![CDATA[pbboard.info]]></copyrights>

هذا حقوق الملحق ولكن لا ادري اين يظهر (لم اجده في لوحة التحكم )



CODE
<installcode><![CDATA[
$PowerBB->DB->sql_query('INSERT INTO ' . $PowerBB->table['info'] . " SET var_name='wreplacer_first',value='' ");
$PowerBB->DB->sql_query('INSERT INTO ' . $PowerBB->table['info'] . " SET var_name='wreplacer_second',value='' ");
]]></installcode>




هنا تم تطبيق كودين على sql حيث تم إضافة سطرين جديدن في الجدول info وهما wreplacer_first و wreplacer_second



CODE
​<uninstallcode><![CDATA[
$PowerBB->DB->sql_query('DELETE FROM ' . $PowerBB->table['info'] . " WHERE var_name='wreplacer_first' ");
$PowerBB->DB->sql_query('DELETE FROM ' . $PowerBB->table['info'] . " WHERE var_name='wreplacer_second' ");
]]></uninstallcode>




هنا حذف الملحق والكود يقوم بحذف السطرين الذين تم إضافتهما سابقًا في عملية التنصيب



=====================================================



CODE
<admin_templates>


هذي البداية للتعديلات التي تظهر في لوحة الإدارة

CODE
<template name="word_replacer_main.tpl" type="new">




هذا امر انشاء قالب في مجلد cpstyles ثم مجلد template في لوحة تحكم الإدارة واسم ملف يكون word_replacer_main.tpl والملف جديد type="new"



CODE

<text><![CDATA[
<div class="address_bar">{$lang['Control_Panel']} &raquo;
<a href="index.php?page=options&amp;hooks=1&amp;mainhooks=1&amp;word_replacer=1">صفحة استبدال الكلمات</a>
</div>

<form action="index.php?page=options&amp;hooks=1&amp;update=1&amp;word_replacer=1" method="post" name="myform">
<table cellpadding="3" cellspacing="1" width="90%" class="t_style_b" border="0" align="center">
<tr>
<td class="main1" colspan="2" align="center">
مستبدل الكلمات أو الجمل
</td>
</tr>
<tr>
<td class="row2" colspan="2" align="center">
يرجى كتابة كل من الكلمات او الجمل التي تريد استبدالها في سطر جديد , تقابلها الكلمات او الجمل البديلة.
</td>
</tr>
    <tr>
        <td class="row1">
        <div align="center">الكلمات او الجمل التي تريد استبدالها<div/>
<textarea name="wreplacer_first" rows="5" cols="50">{$_CONF['info_row']['wreplacer_first']}</textarea>
        </td>
        <td class="row1">
<div align="center">الكلمات او الجمل البديلة<div/>
<textarea name="wreplacer_second" rows="5" cols="50">{$_CONF['info_row']['wreplacer_second']}</textarea>
</td>
    </tr>

<tr>
<td class="main2" colspan="2" align="center">
<input type="submit" value="تنفيذ" />
</td>
</tr>
</table>
</form>


]]></text>



هذا محتوى القالب word_replacer_main.tpl وهو غالبًا لوحة التحكم اللي بالصورة هذي :

مسيرتي في برمجة ملحقي ( ملحق الإستبدال )



===============================================



بعدها ننتقل للخطاطيف

CODE
​<hook main_place="options_main" place="options_main"><![CDATA[<option value="index.php?page=options&amp;hooks=1&amp;mainhooks=1&amp;word_replacer=1">ملحق مستبدل الكلمات والجمل</option>]]></hook>



هذا الكود يضيف هذا الخيار (مع ارسال القيمة word_replacer :

مسيرتي في برمجة ملحقي ( ملحق الإستبدال )



======================

CODE

<hook main_place="mainInfoHooks" place="mainInfoHooks"><![CDATA[
if ($PowerBB->_GET['word_replacer'])
{
$PowerBB->template->display('word_replacer_main');
exit;
}
]]></hook>





هذا الكود يعرض الخيارات حق الهاك في حالة فتحه من الخيارات والطلب التالي :

CODE
index.php?page=options&amp;amp;hooks=1&amp;amp;mainhooks=1&amp;amp;word_replacer=1<br />


وحسب ما فهمته كالتالي :

CODE
if ($PowerBB->_GET['word_replacer'])​




هذا الكود يتأكد ان الطلب فيه word_replacer ضمن الرابط فيقوم بعرض القالب : word_replacer_main.tpl سابقًا كالتالي :

CODE
​$PowerBB->template->display('word_replacer_main');


اما بالنسبة لــ exit; فلم افهم لماذا وضعت هنا رغم ان الكود اكتمل ولا يوجد عمليات بعده



==================================

CODE
<hook main_place="updateInfoHooks" place="updateInfoHooks"><![CDATA[
if ($PowerBB->_GET['word_replacer'])
{
        $update = array();
        $update[0] = $PowerBB->info->UpdateInfo(array('value'=>$PowerBB->_POST['wreplacer_first'],'var_name'=>'wreplacer_first'));
        $update[1] = $PowerBB->info->UpdateInfo(array('value'=>$PowerBB->_POST['wreplacer_second'],'var_name'=>'wreplacer_second'));
        if ($update[0] and $update[1])
        {
            $PowerBB->functions->msg($PowerBB->_CONF['template']['_CONF']['lang']['updated_successfully_Please_wait']);
            $PowerBB->functions->redirect('index.php?page=options&amp;hooks=1&amp;mainhooks=1&amp;word_replacer=1');
        }
        exit;
}
]]></hook>




هذا الكود يتم استدعاؤه عند النقر على طلب التعديل الموجود في القالب word_replacer_main.tpl في الطلب

CODE
​index.php?page=options&amp;amp;hooks=1&amp;amp;update=1&amp;amp;word_replacer=1<br />




ويقوم هذا الكود بحفظ الكلمات وإستبدالاتها في السطرين في جدول info



===========================================



CODE
​<hook main_place="BBCodeParseHooks_cr" place="BBCodeParseHooks_cr"><![CDATA[
$wreplacer_firstf = explode("\r\n",$PowerBB->_CONF['info_row']['wreplacer_first']);
$wreplacer_secondf = explode("\r\n",$PowerBB->_CONF['info_row']['wreplacer_second']);

$text = @str_ireplace($wreplacer_firstf,$wreplacer_secondf,$text);
$text = str_replace($wreplacer_firstf,$wreplacer_secondf,$text);
]]></hook>




وهذا هو اهم خطاف

هذا الخطاف يبدو انه يقوم بعمل BBCode او فحص المواضيع والردود قبل عرضها في الموضوع

وهو يقوم بالتالي :

ينشئ مصفوفة (array) ويحفظها في المتغير $wreplacer_firstf عبر تقسيم الكلمات في السطر wreplacer_first بإستخدام الدالة explode

ويقوم بنفس العملية للسطر wreplacer_second



بعد ذلك يقوم بعمل استبدال للكلمات ( مع تجاهل حالة الاحرف ) عبر استخدام الدالة str_ireplace مع إلغاء عرض الأخطاء فيه بإستخدام علامة @ قبل الدالة

والمفترض ان يتوقف هنا لأنه يكون قد اكمل عمله



ولكن يوجد كود اضافي لا اعرف ما سبب وجوده

str_replace رغم استعمال str_ireplace من قبل وتطبيقه



ولذلك هذا قد يتسبب في مشكلة في حالة الرغبة في استبدال جملة بأخرى فسيتكرر الأمر



مثال :

كلمة " مرحبًا " تصبح " مرحبا بك "

مع تواجد السطرين يصبح "مرحبا بك بك "



لأنه يقوم بأخذ كلمة " مرحبُا " ويقوم بتحويلها إلى " مرحبا بك "

ثم يقوم بأخذ " مرحبًا بك " ويستبدل كلمة " مرحبًا " بكلمة "مرحبًا بك" مرة اخرى

فيصبح "(مرحبًا بك) بك)" فسيظهر في الرد " مرحبًا بك بك "



استغرقت 4 ساعات في كتابة هذا الرد اثناء تحليل الإضافة وقراءة الشرحhttps://pbboard.info/forums/t2539 مع الإستعانة ببعض المصادر على النت



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

look/images/icons/i1.gif مسيرتي في برمجة ملحقي ( ملحق الإستبدال )
  13-02-2016 03:35 صباحاً   [7]
Soliman
معلومات الكاتب
تحليل لافت للأعجاب نظرتي بك كانت في محلها

لفت انتباهي ملاحظاتك بخصوص:

- وجود exit والتي هي بالفعل وجودها كعدمها

- معرفتك لأهم خطاف مسيرتي في برمجة ملحقي ( ملحق الإستبدال )

- معرفتك بامكانية الإستغناء عن احدى دالتي الاستبدال str_replace أو str_ireplace وانصحك باستخدام str_ireplace فقط

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

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



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



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



ننتظر المزيد من ابداعاتك مسيرتي في برمجة ملحقي ( ملحق الإستبدال )

ولا تتردد بطرح اي اسفتسارات عن اي امر بهذا الخصوص







look/images/icons/i1.gif مسيرتي في برمجة ملحقي ( ملحق الإستبدال )
  20-07-2016 03:29 صباحاً   [8]
محمد نت
معلومات الكاتب
الحمد لله واخيرا وجدت الهاك الملوب شكرا لمبرمجين هدا الهاك

الف شكر


المواضيع المتشابهه
عنوان الموضوع الكاتب الردود الزوار آخر رد
برمجة ملحق إستبدال كلمات معينة في المواضيع مساعدة Sofiene2023
8 176 Sofiene2023
تعلم برمجة PBBoard البسيطة PhpMax
22 14653 mons
برمجة هاك وتركيبه عن طريق الأضافات البرمجية Soliman
49 26839 poda
لدي هاك الخاص بمكتبه الفيديوهات برمجة اخي كريم إبن القنصل
7 713 kareem
اليوم قامت برمجةهاك جديد علاء الجوهرى
1 502 علاء الجوهرى

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






الساعة الآن 12:36 PM