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

كيف الحال ؟ ارجو ان تكونوا في تمام الصحة والعافية  أتمنى ان لا يكون قسم الموضوع خاطئ (رغم انه انسب مكان له ) ..


موضوع مغلق

الصفحة 1 من 2 < 1 2 > الأخيرة »


11-02-2016 03:36 صباحا
أبو العصافير
عضـو مشارك
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 31-12-2014
رقم العضوية : 5837
المشاركات : 62
الدولة : أرض الله الواسعة
الجنس : ذكر
يتابعهم : 0
يتابعونه : 0
قوة السمعة : 400
موقعي : زيارة موقعي
اصدار المنتدى : 3.0.2
 offline 
ohpdky


كيف الحال ؟ ارجو ان تكونوا في تمام الصحة والعافية 
أتمنى ان لا يكون قسم الموضوع خاطئ (رغم انه انسب مكان له )

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

92186

فكرة الملحق : 
الملحق سيقوم بالبحث داخل المواضيع عن نصوص معينة
وحينما يجد نص معين فسيقوم بإستبداله بنص آخر مختلف حسب الخيارات المتاحة 
92186
ماذا تستفيد من الملحق ؟ 
كما نعلم جميعًا ان برنامج pbb يتوفر فيه ميزة الكلمات الممنوعة، ولكنه يقوم بإضافة علامة * بعد الحرف الأول مع الإبقاء على الكلمة
ولكن فكرة الملحق هي استبدال الكلمة بالكامل بكلمة اخرى وستفيدك في حالة رغبتك بتعديل بعض الكلمات او حتى تطبيق بعض التعديلات عليها 
92186
امثلة على الفكرة : 
كلمة pbb تصبح PBBoard او رابط الموقع http://www.pbboard.info/
كلمة php تصبح رابط الموقع الرسمي : http://php.net/
كلمة Google تصبحwww.google.com

وهكذا 
92186

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

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

يتبع ... 


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

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


11-02-2016 04:12 صباحا
مشاهدة مشاركة منفردة [1]
أبو العصافير
عضـو مشارك
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 31-12-2014
رقم العضوية : 5837
المشاركات : 62
الدولة : أرض الله الواسعة
الجنس : ذكر
يتابعهم : 0
يتابعونه : 0
قوة السمعة : 400
موقعي : زيارة موقعي
اصدار المنتدى : 3.0.2
 offline 
look/images/icons/i1.gif مسيرتي في برمجة ملحقي ( ملحق الإستبدال )
بعد البحث بين php و javascript 
تم اختيار php لسببين
السبب الأول توفر دالة str_ireplace والتي تقوم بالعمل بأسهل طريقة ممكنة

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

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

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

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


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

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


12-02-2016 04:49 صباحا
مشاهدة مشاركة منفردة [2]
Soliman
PBB Management
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 18-07-2009
رقم العضوية : 1
المشاركات : 10317
الدولة : السعودية
الجنس : ذكر
تاريخ الميلاد : 6-1-1980
الدعوات : 44
يتابعهم : 12
يتابعونه : 50
قوة السمعة : 62386
موقعي : زيارة موقعي
اصدار المنتدى : 3.0.2
 offline 
look/images/icons/i1.gif مسيرتي في برمجة ملحقي ( ملحق الإستبدال )
حسناً يمكنني مساعدتك على اتمام الهاك فهو لايتطلب الكثير من الجهد

مافهمته انك تريد ان يكون الاستبدال غير نهائي للكلمات
ومشابه لخاصية الكلمات الممنوعة لكن يكون استبدال كلمات بكلمات اخرى 
بما انه لم يسبق لك ان قمت ببرمجة اي هاك من قبل  لمنتديات PBBoard وهذه هي المرة الأولى لك

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

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

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

12-02-2016 05:32 صباحا
مشاهدة مشاركة منفردة [3]
Soliman
PBB Management
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 18-07-2009
رقم العضوية : 1
المشاركات : 10317
الدولة : السعودية
الجنس : ذكر
تاريخ الميلاد : 6-1-1980
الدعوات : 44
يتابعهم : 12
يتابعونه : 50
قوة السمعة : 62386
موقعي : زيارة موقعي
اصدار المنتدى : 3.0.2
 offline 
look/images/icons/i1.gif مسيرتي في برمجة ملحقي ( ملحق الإستبدال )
تم انجاز ملحق مستبدل الكلمات بكلمات أخرى مباشرة بشكل غير نهائي

MTM0NzI4MQ2727word_replacer

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


12-02-2016 10:20 مساء
مشاهدة مشاركة منفردة [4]
أبو العصافير
عضـو مشارك
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 31-12-2014
رقم العضوية : 5837
المشاركات : 62
الدولة : أرض الله الواسعة
الجنس : ذكر
يتابعهم : 0
يتابعونه : 0
قوة السمعة : 400
موقعي : زيارة موقعي
اصدار المنتدى : 3.0.2
 offline 
look/images/icons/i1.gif مسيرتي في برمجة ملحقي ( ملحق الإستبدال )
ما شاء الله عليك 
ما زلت اقوم ببناء الكلاس الخاص بالملحق 
حاليًا قمت بتنزيله وسأقوم بالإطلاع عليه 
شكرًا لك 


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


13-02-2016 02:23 صباحا
مشاهدة مشاركة منفردة [5]
Soliman
PBB Management
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 18-07-2009
رقم العضوية : 1
المشاركات : 10317
الدولة : السعودية
الجنس : ذكر
تاريخ الميلاد : 6-1-1980
الدعوات : 44
يتابعهم : 12
يتابعونه : 50
قوة السمعة : 62386
موقعي : زيارة موقعي
اصدار المنتدى : 3.0.2
 offline 
look/images/icons/i1.gif مسيرتي في برمجة ملحقي ( ملحق الإستبدال )
حسناً انا اريدك ان تسأل اكثر وتدخل في اعمق التفاصيل في برمجة الهاكات
وتستفسر اكثر وتطرح تجاربك حتى لو كانت متواضعه في البداية
ويفضل ان يكون لديك خبرة جيدة في لغة PHP وتطلع أكثر على الشروحات الخاصة ببرمجة الهاكات  كهذا الشرح
[شرح]: برمجة هاك وتركيبه عن طريق الأضافات البرمجية
وتحمل اكبر عدد من الهاكات وتطلع عليها بتعمق
فنحن فعلاً بحاجة لأن نزيد من عدد المطورين وخصوصاً مبرمجي الملحقات الاضافية لمنتديات PBBoard على الساحة 
فلا تتردد بوضع تجاربك مهما كانت
وسنشير عليك بطريقة تحسينها وكيف تقوم بها على أكمل وجه
لكن عليك ان تكثر من الممارسة والتدريب وبعض من الجهد لتزيد من خبرتك وقدراتك
وبخصوص هذا الهاك مستبدل الكلمات هولا يحتاج إلى كلاس خاص فهو ملحق من المستوى العادي ليس له كثير من المتطلبات لا يأخذ وقت في تنفيذه على المطور المتمرس

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


 

13-02-2016 02:31 صباحا
مشاهدة مشاركة منفردة [6]
أبو العصافير
عضـو مشارك
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 31-12-2014
رقم العضوية : 5837
المشاركات : 62
الدولة : أرض الله الواسعة
الجنس : ذكر
يتابعهم : 0
يتابعونه : 0
قوة السمعة : 400
موقعي : زيارة موقعي
اصدار المنتدى : 3.0.2
 offline 
look/images/icons/i1.gif مسيرتي في برمجة ملحقي ( ملحق الإستبدال )
في هذا الرد سأقوم بتحليل الملحق، على بركة الله : 
<?xml version="1.0" encoding="UTF-8"?>

هذا عنصر ثابت وهو خاص بلغة xml 
<plugin name="ملحق مستبدل الكلمات بكلمات أخرى مباشرة بشكل غير نهائي">

هذا اسم الملحق 
<version>1.0</version>
اصدار الملحق 

​<description><![CDATA[
<ul>
<li><b>التوافق: PBB3.0.2 فقط ، برمجة: <a href="http://www.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 وعلامتي < و >  ولأنك تريد وضعه على شكل نقاط
وهو يظهر هنا : 
rnshj

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

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

<copyrights><![CDATA[pbboard.info]]></copyrights>
هذا حقوق الملحق ولكن لا ادري اين يظهر (لم اجده في لوحة التحكم ) 

<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

​<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>


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

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

<admin_templates>

هذي البداية للتعديلات التي  تظهر في لوحة الإدارة 
<template name="word_replacer_main.tpl" type="new">


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


<text><![CDATA[<br />
<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>
<br />
<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>

<br /><br />
]]></text>

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

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

بعدها ننتقل للخطاطيف 
​<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 : 
lnphq

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

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


هذا الكود يعرض الخيارات حق الهاك في حالة فتحه من الخيارات والطلب التالي :
index.php?page=options&amp;hooks=1&amp;mainhooks=1&amp;word_replacer=1

 وحسب ما فهمته كالتالي : 
if ($PowerBB->_GET['word_replacer'])​


هذا الكود يتأكد ان الطلب فيه word_replacer ضمن الرابط فيقوم بعرض القالب : word_replacer_main.tpl سابقًا كالتالي : 
​$PowerBB->template->display('word_replacer_main');

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

==================================
<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 في الطلب 
​index.php?page=options&amp;hooks=1&amp;update=1&amp;word_replacer=1


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

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

​<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 ساعات في كتابة هذا الرد اثناء تحليل الإضافة وقراءة الشرح http://www.pbboard.info/forums/t2539 مع الإستعانة ببعض المصادر على النت 

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


الصفحة 1 من 2 < 1 2 > الأخيرة »

المواضيع المتشابهه
عنوان الموضوع الكاتب الردود الزوار آخر رد
ماهو افضل برنامج لعمل سرفر محلي لتعلم البرمجة عليه MrKinvalo
5 44 QJK
فكرة برمجة هاك عبدالله سامي
5 150 عبدالله سامي
مطلوب برمجة ملحق متابعة الأعضاء egprogrammer
36 1000 Soliman
تصميم مواقع | برمجة مواقع | تصميم وبرمجة تطبيقات الهواتف الذكية nadaahmed8182
0 107 nadaahmed8182
برجاء برمجة هاك للنشر التلقائى على تويتر و فيس بوك shaaeralhob
4 298 shaaeralhob

الكلمات الدلالية
مسيرتي ، برمجة ، هاكي ، الإستبدال ،







الساعة الآن 04:51 صباحا