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

العودة   منتديات عرب ووردبريس > قسم الإضافات > إضافات ووردبريس - عام
التسجيل التعليمـــات قائمة الأعضاء التقويم البحث مشاركات اليوم اجعل كافة الأقسام مقروءة

[درس] اصنع إضافتك الخاصة بنفسك + مم تتركب الإضافة وكيف تعمل؟

إضافة رد
 
LinkBack أدوات الموضوع انواع عرض الموضوع
  #1  
قديم 04-25-2009, 03:32 AM
مدون نشيط
 
تاريخ التسجيل: Apr 2009
المشاركات: 46
شكر غيره: 6
تم شكره 51 مرة في 11 موضوع
افتراضي [درس] اصنع إضافتك الخاصة بنفسك + مم تتركب الإضافة وكيف تعمل؟

ملاحظة: تم إضافة الدرس الثاني في الرد 15: عمل صفحة إعدادات للإضافة في لوحة التحكم

السلام عليكم،

بسم الله الرحمن الرحيم، الحمد لله والصلاة والسلام على رسول الله وبعد؛

قبل الشروع في الموضوع هناك نقطتين سأشير إليهما:

النقطة الأولى: يجب أن يكون قارئ الدرس على دراية ولو قليلة بالإضافات، ماهي وكيف يتم تركيبها في المدونة. تجد ذلك هنا

النقطة الثانية: لهذا الدرس محوران أساسيان:

محور 1: يتلخص في شرح مكونات الإضافة وشرح أجزاءها وكيف يتم ربطها باسكريبت الووردبريس الأصلي، وذلك عن طريق دراسة الإضافة Hello Dolly كمثال، والتي تأتي مع سكريبت الووردبريس.

محور 2: عمل إضافتنا الخاصة والبسيطة في تطبيق عملي.



مقدمة:

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

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

لكن لاتقلقوا، بالتأكيد ستجدون أن الأمر بسيط وشيق. الآن دعونا نبدأ.



ماهي مكونات الإضافة:

الإضافات تختلف في مكوناتها تبعاً لدرجة بساطتها أو تعقيدها، وكما أسلفت سأعتمد في شرحي هنا إضافة Hello Dolly فهي وإن كانت بسيطة لكنها تحوي أهم المكونات.

وظيفة هذه الإضافة أنها تقوم بعرض عبارة عشوائية في الجهة العلوية اليمنى من أي صفحة في لوحة التحكم، كما في الصورة التالية:





المكون الأول: ملفات الأضافة:

الإضافة عبارة عن ملف PHP، وهذه أبسط صور الإضافات.
يوضع ملف الـ PHP هذا في المجلد المعروف لدى الجميع، وهو مجلد plugins الموجود داخل مجلد آخر اسمه wp-content
إذا كانت الإضافة تتكون من أكثر من ملف PHP، وأحيانا ملف readme.txt وملفات للصور وغير ذلك فإن هذه الملفات جميعها توضع داخل مجلد خاص يسمى باسم الإضافة ويوضع داخل مجلد plugins


المكون الثاني: هيكل ملف الإضافة من الداخل:

نأتي الأن إلى محتوى الإضافة، وهو الجزء الشيق.

باستخدام محرر الأكواد notepad++ (يمكن تحميله من هنا) سنقوم بفتح ملف الإضافة المسمى hello.php من مجلد plugins

سنرى الاسكريبت كما هو موضح في الصورة التالية:



الآن سنقوم بشرح مكونات الإضافة بالتفصيل بالاستعانة بالصورة السابقة:

أولاً: نلاحظ أن الاسكريبت كاملاً قد تم إحتواؤه داخل تعليمة برمجية واحدة هي:
كود PHP:
<?php

?>
ثانياً: المعلومات الظاهرة في رأس الملف:

هذه المعلومات مهمتها تعريف الووردبريس بالإضافة حتى يتمكن من رؤيتها ومن ثم إلحاقها بقائمة الإضافات في لوحة التحكم.
وهي تبدأ بـ /* وتنتهي بـ */ يعني ملاحظات أو معلومات لا تأثير لها على الوظيفة الأساسية للإضافة. ولكنها ضرورية لنقول للووردبريس إنتبه! هنا إضافة ووصفها كذا وكذا، الرجاء اعتمادها ضمن الاسكريبت.


ثالثاً: دوال الـ PHP التي ستؤدي وظيفة الإضافة
سأتطرق بشكل سريع لهذه الدوال Functions، لأنها ليست من صميم الدرس الحالي.

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


رابعاً: استخدام الآكشن هووك Action Hooks:

هذه الأكشن هووكس بالغة الأهمية، لأنه عن طريقها نستطيع تحديد أين ومتى ستعمل الإضافة في كود الووردبريس الأصلي.
مثلاً: تنفيذ الإضافة داخل محتوى التدوينات أو في الهيدر بالنسبة للقالب أو عند تسجيل الدخول أو الخروج، أو أو أو.. إلخ
الـ hook باللغة العربية تعني المعلاق (طرف الصنارة)، لرؤية صور للمعلاق اضغط هنا

كل آكشن هووك يرتبط ببقعة معينة في كود الووردبريس أو بحدث معين، ويقوم الآكشن هووك باصطياد الإضافة عند تشغيل الكود.

للاستفادة من الأكشن هووك يتم استخدام دالة function معينة، وهي add_action

حتى نفهم هذه النقطة (كيفية الاستخدام) سنأخذ المثال في إضافة Hello Dolly وهو السطر المظلل باللون الزهري في الصورة السابقة. حيث الكود التالي:

كود PHP:
add_action('admin_footer''hello_dolly'); 
في السطر السابق نجد أن الدالة add_action لها عاملين متغيرين

العامل المتغير الأول هو admin_footer، وهذا هو الأكشن هووك المستخدم هنا.
العامل المتغير الثاني هو اسم الدالة hello_dolly وهي الدالة التي ستطبع الأسطر في الصفحة.

ومعنى الكود السابق هو: تشغيل الدالة hello_dolly في نهاية صفحة لوحة التحكم، مباشرة قبل الوسم <br /><div style="z-index:3" class="smallfont" align="center">SEO by vBSEO 3.3.0 RC1 &copy;2009, Crawlability, Inc.</div></body>
أما سبب ظهور أسطر العبارات في أعلى الصفحة مع أن الأكشن هووك يشير إلى أسفلها هو وجود استايل الـ CSS الذي يلزم العبارات بالظهور مسافة 72 بيكسل من أعلى الصفحة.

لو نظرتم لبقية الكود في ملف الإضافة -والذي لم نتعرض له- ستجدون أن هذا الاستايل قد تم إدراجه باستخدام دالة أخرى، وأكشن هووك أخر.
الأكش هووك هو admin_head ويستخدم لتنفيذ الدوال داخل وسم <head> لصفحة لوحة التحكم.

بقي أن أشير إلى النوع الآخر من الهووكس والذي يسمى Filter Hooks، وهو طبعاً بنفس أهمية الـ action hooks. والفرق بينهما هو:
Action Hooks: تم شرحه في الأعلى
Filter Hooks: تقوم يتغيير النصوص داخل المدونة قبل أرسالها لقاعدة البيانات أو إخراجها على الشاشة.
وهذه الأخيرة سأقوم باستخدامها في النصف الثاني من الدرس، وهو التطبيق العملي لإنشاء إضافة من الصفر. عندها ستتضح أكثر.

أما الآن فقد انتهى المحور الأول من الدرس.

يتبع..

ملاحظة: تم رفع جميع صور الدرس الأول إلى المرفقات في ملف مضغوط.









الملفات المرفقة
نوع الملف: zip imgz.zip‏ (92.1 كيلوبايت, المشاهدات 66)
__________________
اسمي: محـمـد مـ ـسـاعـ ـد
وظيفتي: مصمم ومطور مواقع
تم إضافة الدرس الثاني للدرس: اصنع إضافتك الخاصة بنفسك + مم تتركب الإضافة وكيف تعمل؟
تابع مقالاتي في موقع عالم التقنية

التعديل الأخير تم بواسطة مدوَّنتي ; 05-23-2009 الساعة 01:38 AM. سبب آخر: إضافة الدرس الثاني
رد مع اقتباس
هؤولاء الاعضاء يشكرونك يا مدوَّنتي على هذه المشاركة:
3gfalcon (07-04-2009), aboodr (07-23-2010), awam10 (04-27-2009), احمد حمودة (04-25-2009), dr moes (05-20-2009), embroidery-top,com (09-05-2009), Ln X (05-12-2009), OmEna (04-28-2009), Somo5 (04-27-2009), Tech_Pioneer (05-10-2009), TheSilent000 (05-17-2009), يونس (05-22-2009), فكرة مصمم (05-25-2009)
  #2  
قديم 04-25-2009, 03:33 AM
مدون نشيط
 
تاريخ التسجيل: Apr 2009
المشاركات: 46
شكر غيره: 6
تم شكره 51 مرة في 11 موضوع
افتراضي

.

المحور الثاني: التطبيق العملي:

أعتقد الأن أنكم فهمتم طريقة عمل الإضافة. سنشرع مباشرة في التطبيق.


الإضافة التي سننشؤها ستقوم بتغيير نص معين في عنوان التدوينة إلى نص أخر معين.

نفترض أن لديك في المدونة 314 تدوينة، عناوينها جميعاً تبدأ بكلمة (مقال)، وتريد أن تغيرها من (مقال) إلى (تدوينة) وذلك لجميع التدوينات. لهذا الغرض سننشئ إضافتنا


صورة لعناوين المقالات:





من أجل تطبيق الدرس لطفاً قم بإضافة تدوينة جديدة أو اثنتين معنونة بـ (مقال –ثم أي نص تختاره-) طبعاً في السيرفر المحلي.

قم بفتح محرر النصوص المفضل لديك، سأستعمل في التطبيق برنامج Notepad++ المجاني وتجدونه في الموقع الرسمي

ننشئ ملف PHP جديد ونسميه مثلاً my-plugin.php ونحفظه في المجلد plugins
لا تنسى ضبط ترميز الملف إلى UTF-8 without BOM إذا كان محتواه سيتضمن نص عربي.

حتى هذه اللحظة لن تظهر الإضافة الجديدة في لوحة التحكم.


قم بفتح وسم كود PHP في أول الصفحة، ثم أغلقه. وسنضع بقد قليل اسكريبت الإضافة داخله.

كود PHP:
<?php

?>
نطبع الأسطر الآتية في الملف:

كود:
/*
Plugin Name: My Plugin

*/
بعد الحفظ، نرجع إلى لوحة التحكم، لنجد أن الإضافة الآن موجودة في قائمة الإضافات وقابلة للتفعيل ولكن تنقصها بقية المعلومات.

دعونا نكمل باقي البيانات ونعطي وصف كامل للإضافة.

الأسطر كاملة ستكون كالآتي:

كود:
/*
Plugin Name: My Plugin
Plugin URI: http://modawanaty.com/#
Description: إضافة تم تطبيقها كدرس عملي في منتديات عرب ووردبريس للمطورين.
Author: مدوًّنتي
Version: 1
Author URI: http://modawanaty.com
*/
نحفظ الملف، وبعد تفعيل الإضافة ستظهر كما في الصورة:




لدينا الآن إضافة مفعلة ولكن بدون وظيفة، فلنواصل الدرس.


سنقوم بعمل دالة بسيطة عن طريق الـ PHP مهمتها استبدال كلمة (مقال) بكلمة (تدوينة) واسمها alter_title

كود PHP:
function alter_title ($text) {
    
$text str_replace('مقال''تدوينة'$text);
    return 
$text;

انسخ الكود السابق وألصقه تحت الأسطر الخاصة بمعلومات الإضافة.

لم يبق الآن إلاّ أن نستعمل الـ hook لتحديد المكان الذي ستتم عملية استبدال النصوص فيه وهو عنوان التدوينة.

عن طريق إضافة السطر التالي:

كود PHP:
add_filter('the_title''alter_title'); 
لاحظ أننا استخدمنا add_filter بدلاً من add_action وذلك لأننا نستخدم الـ Filter Hook المسمى the_title والذي يحدد أن التعديل سيطرأ على العنوان.

المفترض أن الإضافة الآن تعمل، قم بتحديث الصفحة وسنحصل على الشكل الآتي:




نلاحظ في السطر الأخير لكل تدوينة جملة تقول.. (مقال رقم: كذا)
حسناً نريد الأن أن تشمل عملية التغير هذا النص المطبوع يدوياً ضمن التدوينات.
سنستعمل فلتر هووك آخر، وهو: the_content ونضيف السطر التالي:

كود PHP:
add_filter('the_content''alter_title'); 
الأن وبعد التحديث، نجد أن الإضافة تعمل بشكل جيد.


تم الدرس الأول بحمد الله

الدرس الثاني: عمل صفحة إعدادات للإضافة في لوحة التحكم









__________________
اسمي: محـمـد مـ ـسـاعـ ـد
وظيفتي: مصمم ومطور مواقع
تم إضافة الدرس الثاني للدرس: اصنع إضافتك الخاصة بنفسك + مم تتركب الإضافة وكيف تعمل؟
تابع مقالاتي في موقع عالم التقنية

التعديل الأخير تم بواسطة مدوَّنتي ; 05-23-2009 الساعة 01:39 AM. سبب آخر: إضافة رابط الدرس الثاني
رد مع اقتباس
هؤولاء الاعضاء يشكرونك يا مدوَّنتي على هذه المشاركة:
3gfalcon (07-04-2009), ahmdatef (11-10-2011), الجالي (07-30-2010), dr moes (05-24-2009), Ln X (05-12-2009), OmEna (04-28-2009), يونس (05-05-2009), نجم المحبه (07-16-2010)
  #3  
قديم 04-27-2009, 07:00 AM
مدون جديد
 
تاريخ التسجيل: Jul 2008
المشاركات: 7
شكر غيره: 2
تم شكره 0 مرة في 0 موضوع
افتراضي

رائع هذا الدرس بكل المقاييس

شكرا لك









رد مع اقتباس
  #4  
قديم 04-27-2009, 07:39 AM
مدون نشيط
 
تاريخ التسجيل: Apr 2009
المشاركات: 46
شكر غيره: 6
تم شكره 51 مرة في 11 موضوع
افتراضي

عفواً أخي wjeeh

أشكرك

وأشكر الأخ AFUNA على تعليقكما

حيث استغرق مني تحضير الدرس أكثر من يوم كامل

كنت أود المواصلة في هذه السلسة، ولكن يبدو أن الدرس متقدم نوعاً ما، لذلك لا يجد الاهتمام الكافي









__________________
اسمي: محـمـد مـ ـسـاعـ ـد
وظيفتي: مصمم ومطور مواقع
تم إضافة الدرس الثاني للدرس: اصنع إضافتك الخاصة بنفسك + مم تتركب الإضافة وكيف تعمل؟
تابع مقالاتي في موقع عالم التقنية
رد مع اقتباس
  #5  
قديم 04-27-2009, 02:40 PM
مدون مميز
 
تاريخ التسجيل: Oct 2007
المشاركات: 117
شكر غيره: 22
تم شكره 17 مرة في 13 موضوع
افتراضي

الدرس رائع فعلاً .. ويبدو أني سأبدأ بتجريب إضافة ..









رد مع اقتباس
  #6  
قديم 04-28-2009, 04:19 AM
مدون نشيط
 
تاريخ التسجيل: Jul 2008
المشاركات: 35
شكر غيره: 0
تم شكره 0 مرة في 0 موضوع
افتراضي

ماشاء الله درس قيم في محتواه
ومعروض بطريقة احترافيه
ونتمنى استمرار هذه الدروس اخي ( مدونتي ) وهذه الابداعات

اسال الله ان يجزيكم عنها خير الجزاء









__________________
مدونة ابو سعد

http://www.saad-b.com/
رد مع اقتباس
  #7  
قديم 04-28-2009, 03:23 PM
مدون محترف
 
تاريخ التسجيل: Dec 2007
الدولة: فرنسا
المشاركات: 628
شكر غيره: 139
تم شكره 59 مرة في 38 موضوع
افتراضي

بارك الله فيك على هذا الشرح الرائع,









__________________
¦ as1.gif لزيارة مدونتي: اضغط هنـــــــــــــــــا
¦ :) تابعني على تويتر: من هنـــــــــــــــــــا
as4.gif قبل أن ترسلي رسالة خاصة، ابحث في المنتدى
¦ :(( ضع عنوان مدونتك في توقيعك لنتمكن من مساعدتك
¦ سأل الممكن المستحيل : أين تقيم ؟ فأجابه في أحلام العاجز!
¦---------------------------------------------------------------¦
رد مع اقتباس
  #8  
قديم 04-28-2009, 05:37 PM
مدون نشيط
 
تاريخ التسجيل: Apr 2009
المشاركات: 46
شكر غيره: 6
تم شكره 51 مرة في 11 موضوع
افتراضي

أخواني:
awam10
ابو سعد
Younes

أشكركم جميعاً، وأتمنى أني حققت الفائدة









__________________
اسمي: محـمـد مـ ـسـاعـ ـد
وظيفتي: مصمم ومطور مواقع
تم إضافة الدرس الثاني للدرس: اصنع إضافتك الخاصة بنفسك + مم تتركب الإضافة وكيف تعمل؟
تابع مقالاتي في موقع عالم التقنية
رد مع اقتباس
مدوَّنتي, تمّ شُكرك على هذه المشاركة من قبل الأعضاء:
wanafilms (04-29-2009)
  #9  
قديم 05-04-2009, 02:33 PM
مدون نشيط
 
تاريخ التسجيل: Mar 2009
المشاركات: 54
شكر غيره: 0
تم شكره 0 مرة في 0 موضوع
افتراضي

شكرا لك اخوي وفعلا .. لا خير في كاتم العلم ..
ولكن الخير الكقثير فيك لأنك علمتنا مما تعلم ..

ولكن مسألة الاظافات تحتاج خبرة ولو بسيطه بلغة البي اتش بي ..لأن الاضافة عبارة عن بريمج بلغة ال php وهذا هو الاساس ..









__________________
مدونة محمد الحسن ..
www.mhs4.com
حينما لا يصغي أحد .. ستعلم حينها أن القلم أفضل مستمع ..!!
رد مع اقتباس
  #10  
قديم 05-05-2009, 04:02 PM
مدون نشيط
 
تاريخ التسجيل: Jan 2009
الدولة: منتدى دعم ورد بريس العربي
المشاركات: 40
شكر غيره: 0
تم شكره 2 مرة في 2 موضوع
افتراضي

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









__________________

تجدني هنا دائمأ في مدونتي

مدونة كلماتي

عرب وورد بريس
رد مع اقتباس
  #11  
قديم 05-10-2009, 09:43 AM
مدون مميز
 
تاريخ التسجيل: Apr 2009
الدولة: ارض الكنانة
المشاركات: 165
شكر غيره: 17
تم شكره 63 مرة في 23 موضوع
افتراضي

شكرا لك اخي ..
وجزالك الله كل خير ..

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









رد مع اقتباس
  #12  
قديم 05-20-2009, 04:20 PM
مدون جديد
 
تاريخ التسجيل: Jan 2008
المشاركات: 4
شكر غيره: 1
تم شكره 0 مرة في 0 موضوع
افتراضي

السلام عليكم ورحمة الله

بارك الله فيك

شرح جميل وطرح مميز .. ما شاءالله .. كما أنه من الدروس المنفردة من نوعها .. اتمنى المواصلة ،،









رد مع اقتباس
  #13  
قديم 05-20-2009, 10:38 PM
مدون نشيط
 
تاريخ التسجيل: May 2009
الدولة: غرفتي المقلوب ميزانها
المشاركات: 92
شكر غيره: 5
تم شكره 51 مرة في 9 موضوع
افتراضي

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









__________________
وَمَنْ يَتَّقِ اللَّهَ يَجْعَلْ لَهُ مَخْرَجاً
رد مع اقتباس
  #14  
قديم 05-22-2009, 08:08 AM
مدون نشيط
 
تاريخ التسجيل: Apr 2008
المشاركات: 57
شكر غيره: 2
تم شكره 0 مرة في 0 موضوع
افتراضي

بارك الله فيك
فى انتظار باقى الدروس









__________________
اليكس
رد مع اقتباس
  #15  
قديم 05-23-2009, 01:20 AM
مدون نشيط
 
تاريخ التسجيل: Apr 2009
المشاركات: 46
شكر غيره: 6
تم شكره 51 مرة في 11 موضوع
افتراضي الدرس الثاني

السلام عليكم،

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

سينقسم الدرس الثاني إلى المحورين التاليين:


المحور الأول: شرح كيفية عمل صفحة إعدادات للإضافة في لوحة التحكم لإضفاء المزيد من المرونة إليها (مع تطبيق عملي)
المحور الثاني: قواعد عامة عند عمل أي إضافة.


المحور الأول: إنشاء صفحة إعدادات في لوحة التحكم

سيكون هذا الدرس امتداداً لسابقه، حيث سنستخدم الإضافة التي قمنا بإنشائها في الدرس الأول، وسنقوم بعمل صفحة إعدادات خاصة بها في لوحة التحكم.

كما تعلمون فإن وظيفة الإضافة السابقة هي استبدال كلمة "مقال" بكلمة "تدوينة" في جميع التدوينات.
من الواضح أن هذه النصوص مخصصة لمستخدم معين، لذلك يجب أن تكون هناك مرونة أكبر تسمح للمستخدمين الآخرين بالذهاب إلى صفحة الإعدادات الخاصة بالإضافة وإدخال الكلمات المراد استبدالها والكلمات التي ستحل محلها. وهذا ما سنقوم بعمله في هذا الدرس.

الأضافة السابقة عندما اكتملت كانت بالشكل التالي:

كود PHP:
<?php
/*
Plugin Name: My Plugin
Plugin URI: http://modawanaty.com/#
Description: إضافة تم تطبيقها كدرس عملي في منتديات عرب ووردبريس للمطورين.
Author: مدوًّنتي
Version: 1
Author URI: http://modawanaty.com
*/

function alter_title ($text) {
    
$text str_replace('مقال''تدوينة'$text);
    return 
$text;
}

add_filter('the_title''alter_title');
add_filter('the_content''alter_title');
?>
قبل أن أبدأ في خطوات إنشاء صفحة الإعدادات سأقوم بعمل بعض التغييرات في ملف الإضافة السابق

تعديلات:

التعديل الأول: المعلومات في رأس الإضافة:

1- اسم الإضافة سيتغير من "My Plugin" إلى "استبدال النص"
2- الوصف سيصبح: "إضافة لاستبدال نص معين في التدوينة. تم تطبيقها كدرس عملي في منتديات عرب ووردبريس."
3- رقم الاصدار 2.0 بدلاً من 1

التعديل الثاني (مهم): في الدالة الخاصة باستبدال النص

نقوم بتعريف متغيرين جديدين هما $oldStr و $newStr عن طريق إضافة السطرين التاليين

كود PHP:
$oldStr get_option('old_str');
$newStr get_option('new_str'); 
ثم نضعهما مكان الكلمتين "مقال" و "تدوينة":
$oldStr بدلاً من مقال
$newStr بدلاً من تدوينة

نقوم أيضا يتغيير اسم الدالة من alter_title إلى alter_txt
وهذا فقط للدلالة على أن الغرض من الدالة هو تغيير أي نص وليس فقط العنوان.

بعد التغييرات السابقة سيصبح سكريبت الإضافة بالشكل التالي:

كود PHP:
<?php
/*
Plugin Name: استبدال النص
Plugin URI: http://modawanaty.com/#
Description: إضافة لاستبدال نص معين في التدوينة، تم تطبيقها كدرس عملي في منتديات عرب ووردبريس.
Author: مدوًّنتي
Version: 2.0
Author URI: http://modawanaty.com
*/

function alter_txt ($text) {

    
$oldStr get_option('old_str');
    
$newStr get_option('new_str');

    
$text str_replace($oldStr$newStr$text);
    return 
$text;
}

add_filter('the_title''alter_txt');
add_filter('the_content''alter_txt');

?>
انتهاء التعديلات.

نقوم بحفظ ملف الإضافة باسم جديد وليكن text_rep.php
ونضعه في مجلد جديد اسمه Text Replacement وهو المجلد الذي سيحوي كل ملفات الإضافة والذي سيكون داخل مجلد plugins المعروف.

ملاحظة: قمت بإنشاء مجلد لأن الإضافة تتكون من ملفين.

يتبع...
.
.









__________________
اسمي: محـمـد مـ ـسـاعـ ـد
وظيفتي: مصمم ومطور مواقع
تم إضافة الدرس الثاني للدرس: اصنع إضافتك الخاصة بنفسك + مم تتركب الإضافة وكيف تعمل؟
تابع مقالاتي في موقع عالم التقنية
رد مع اقتباس
مدوَّنتي, تمّ شُكرك على هذه المشاركة من قبل الأعضاء:
3gfalcon (07-04-2009)
  #16  
قديم 05-23-2009, 01:26 AM
مدون نشيط
 
تاريخ التسجيل: Apr 2009
المشاركات: 46
شكر غيره: 6
تم شكره 51 مرة في 11 موضوع
افتراضي الدرس الثاني

البداية الفعلية للدرس الثاني

هناك خطوتين لإنشاء صفحة الإعدادات

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

تنفيذ الخطوة الأولى: إضافة الرابط

إضافة الرابط تتطلب منا استخدام دالتين وأكشن هوك واحد.
الدالة الأولى لتحديد الملف الذي يحتوي على سكريبت صفحة الإعدادات وسنسميها (أي الدالة) alter_txt_admin
الدالة الثانية لتحديد النص الذي سيظهر في القائمة و الإشارة إلى الدالة السابقة وسنسميها alter_txt_options
الأكشن هووك سيقوم بإدراح العنصر الجديد في قائمة الإعدادات وهو الأكشن هووك المسمى admin_menu

ولتتضح هذه التقاط الثلاث قمت بشرح الاسكربت في الصورة التالية



نلاحظ في الدالة الأولى نداء للملف text_rep_admin.php وهو الملف الخاص باسكريبت صفحة الإعدادات حيث سنقوم يإنشائه في الخطوات القادمة.

ملاحظة: بالإمكان وضع اسكريبت صفحة الإعدادات واسكريبت وظيفة الإضافة في ملف واحد، كما يمكن فصلهما في ملفين.

في الدالة الثانية استخدمنا دالة خاصة هي add_options_page وظيفتها إدراج الرابط تحديداً في قائمة الإعدادات.
ولها مجموعة متغيرات أشرت إليها في الصورة بالأرقام وتفصيلها كالتالي:

1- النص الذي سيظهر في شريط العنوان أعلى المتصفح بالنسبة لصفحة الإعدادات.
2- النص الذي سيظهر في قائمة الإعدادات.
3- هذا الرقم يشير إلى درجة صلاحية الوصول إلى صفحة الإعدادات، فالرقم 10 يعني أن المدير هو الوحيد الذي يستطيع رؤية رابط صفحة الإعدادات دون بقية الأعضاء. لاحظ أنه في هذه الحالة بالتحديد لن تؤثر قيمة هذا المتغيير لأن قائمة الإعدادات بشكل عام لا تظهر إلا للمدير.
4- هذا المتغير يشير إلى اسم الدالة الأولى و يحدد الوجهة عند النقر على الرابط الذي في القائمة.

الآكشن هووك في السطر الأخير هو admin_menu للإدراج في العمود الأيمن المختص بقوائم لوحة التحكم.

بعد الانتهاء من الخطوة الأولى أصبح ملف الإضافة بالشكل التالي:

كود PHP:
<?php
/*
Plugin Name: استبدال النص
Plugin URI: http://modawanaty.com/#
Description: إضافة لاستبدال نص معين في التدوينة، تم تطبيقها كدرس عملي في منتديات عرب ووردبريس.
Author: مدوًّنتي
Version: 2.0
Author URI: http://modawanaty.com
*/

function alter_txt_admin() {
    include(
'text_rep_admin.php');
}

function 
alter_txt_options() {
    
add_options_page("استبدال النص""استبدال النص"10"استبدال النص""alter_txt_admin");
}

add_action('admin_menu''alter_txt_options');



function 
alter_txt ($text) {

    
$oldStr get_option('old_str');
    
$newStr get_option('new_str');

    
$text str_replace($oldStr$newStr$text);
    return 
$text;
}

add_filter('the_title''alter_txt');
add_filter('the_content''alter_txt');

?>
لو نظرنا الآن إلى القائمة في لوحة التحكم سنجد أن رابط الإضافة في القائمة الأخيرة (قائمة الإعدادات) قد ظهر.



قبل أن نقوم بالنقر على هذا الرابط سنقوم بإنشاء صفحة جديدة باسم text_rep_admin.php وحفظها داخل مجلد الإضافة Text Replacement
لا تنسوا ضبط الترميز.

بعد الحفظ نقوم الأن بالنقر على الرابط من القائمة لتظهر أمامنا صفحة الإعدادات فارغة كما في الصورة التالية:




إذن حان وقت الخطوة الثانية: إنشاء صفحة الإعدادات

نريد الحصول على صفحة بهذا الشكل:



حتى تخرج الصفحة بهذا الشكل ولكي نحافظ على المظهر الافتراضي للوورد بريس سنضيف الاسكريبت التالي إلى صفحة text_rep_admin.php:

[html]<div class="wrap">
<div id="icon-options-general" class="icon32"><br /></div>
<h2>إعدادات استبدال النص</h2>
<form method="post" action="options.php">
<?php wp_nonce_field('update-options'); ?>
<table class="form-tabe">
<tr>
<th scope="row" style="font-weight:normal; text-align:left;"> أدخل العبارة المراد استبدالها</th>
<td><input type="text" name="old_str" value="<?php echo get_option('old_str') ;?>" size="40" /></td>
</tr>
<tr>
<th scope="row" style="font-weight:normal; text-align:left;"> العبارة الجديدة</th>
<td><input type="text" name="new_str" value="<?php echo get_option('new_str') ;?>" size="40" /></td>
</tr>
</table>
<input type="hidden" name="action" value="update" />
<input type="hidden" name="page_options" value="old_str, new_str" />
<p class="submit">
<input type="submit" class="button-primary" value="<?php _e('Save Changes') ;?>" />
</p>
</form>
</div>[/html]هناك عدة أمور يجب توضيحها في الكود السابق:

أولاً: احتوينا ما تضمنته الصفحة داخل div واحد يتسم بالـ class المسمى wrap
[html]<div class="wrap">
[/html]وهذا من أجل أن نحافظ على تنسيق الووردبريس الافتراضي.

السطر الثاني
[html]<div id="icon-options-general" class="icon32"><br /></div>[/html]وهو مسؤول عن إظهار أيقونة الإعدادات بجانب العنوان

السطران الرابع والخامس
[html]<form method="post" action="options.php">
<?php wp_nonce_field('update-options'); ?>[/html]هما بداية النموذج ولهما دور مهم عند النقر على زر حفظ التغييرات فيقومان بإرجاعك إلى نفس الصفحة مع عبارة تم حفظ الإعدادات.

السطر السادس
[html]<table class="form-tabe">[/html]عادة ما يوضع النموذج داخل جدول باستخدام السطر السابق.

السطران التاسع والثالث عشر: الحقول
[html]<td><input type="text" name="old_str" value="<?php echo get_option('old_str') ;?>" size="40" /></td>[/html][html]<td><input type="text" name="new_str" value="<?php echo get_option('new_str') ;?>" size="40" /></td>[/html]هذان هما حقلا الإدخال، الأول لإدخال النص المراد تغييره، والثاني للنص الذي سيحل مكانه.

أهم جزء في هذين السطرين هو الجزء الذي يعرّف اسم الحقل
name="old_str"
name="new_str"
لأننا سنستخدم أسماء الحقلين لجلب النصوص المدخلة بواسطة المستخدم ومن ثم تمريرها إلى المتغيرين في صفحة الإضافة الأولى.

السطر السابع عشر
[html]<input type="hidden" name="page_options" value="old_str, new_str" />[/html]جميع أسماء الحقول التي سوف يتم حفظ محتواها عند النقر على زر الحفظ يجب إضافتها إلى المتغير value في السطر السابق مع الفصل بينهم بعلامة الفاصلة.

وأخيراً زر "حفظ التغييرات" بإضافة الأسطر 18 و 19 و 20

بهذا نكون قد انتهينا من إنشاء صفحة الإعدادات.

سنقوم الآن بتجربة الإضافة

لنفترض أن لديك مدونة بها عدد كبير من التدوينات وكلما ذكر اسم الرسول صلى الله عليه وسلم في أي تدوينة كتبت الصلاة عليه بالأسلوب المختصر والخاطئ (صلعم)، وتريد الآن تغيير عبارة (صلعم) إلى (صلى الله عليه وسلم) في جميع التدوينات.

انظر الشكل التالي:



سنقوم بالذهاب إلى صفحة الإعدادات ونقوم بإدخال النصوص ثم نضغط على زر حفظ التغييرات كما في الشكل التالي:



بعد تحديث المدونة ستكون النتيجة كالآتي:




لتحميل الإضافة بشكلها النهائي وتجربتها تم وضعها في المرفقات

كما يمكنكم تحميلها من الموقع الرسمي: modawanaty.com









الملفات المرفقة
نوع الملف: rar Text Replacement.rar‏ (1.7 كيلوبايت, المشاهدات 37)
__________________
اسمي: محـمـد مـ ـسـاعـ ـد
وظيفتي: مصمم ومطور مواقع
تم إضافة الدرس الثاني للدرس: اصنع إضافتك الخاصة بنفسك + مم تتركب الإضافة وكيف تعمل؟
تابع مقالاتي في موقع عالم التقنية

التعديل الأخير تم بواسطة مدوَّنتي ; 05-24-2009 الساعة 12:24 PM. سبب آخر: إضافة رابط
رد مع اقتباس
هؤولاء الاعضاء يشكرونك يا مدوَّنتي على هذه المشاركة:
3gfalcon (07-04-2009), احمد حمودة (05-23-2009), dr moes (05-24-2009), sangam (05-27-2009), Somo5 (05-24-2009), TheSilent000 (05-23-2009), wjeeh (05-23-2009)
  #17  
قديم 05-23-2009, 01:28 AM
مدون نشيط
 
تاريخ التسجيل: Apr 2009
المشاركات: 46
شكر غيره: 6
تم شكره 51 مرة في 11 موضوع
افتراضي

سأكتفي بهذا القدر وأترك المحور الثاني من الدرس ليوم لاحق إن شاء الله









__________________
اسمي: محـمـد مـ ـسـاعـ ـد
وظيفتي: مصمم ومطور مواقع
تم إضافة الدرس الثاني للدرس: اصنع إضافتك الخاصة بنفسك + مم تتركب الإضافة وكيف تعمل؟
تابع مقالاتي في موقع عالم التقنية
رد مع اقتباس
  #18  
قديم 05-23-2009, 05:53 AM
مدون جديد
 
تاريخ التسجيل: Jul 2008
المشاركات: 7
شكر غيره: 2
تم شكره 0 مرة في 0 موضوع
افتراضي

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

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

إلى الأمام يامحمد ونحن معك وننتظر تكملة هذا الدرس الرائع.
تحياتي لك









رد مع اقتباس
  #19  
قديم 05-23-2009, 09:42 AM
مدون نشيط
 
تاريخ التسجيل: Apr 2009
المشاركات: 46
شكر غيره: 6
تم شكره 51 مرة في 11 موضوع
افتراضي

شكراً وجيه على الرد

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

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

حياك الله









__________________
اسمي: محـمـد مـ ـسـاعـ ـد
وظيفتي: مصمم ومطور مواقع
تم إضافة الدرس الثاني للدرس: اصنع إضافتك الخاصة بنفسك + مم تتركب الإضافة وكيف تعمل؟
تابع مقالاتي في موقع عالم التقنية
رد مع اقتباس
  #20  
قديم 05-27-2009, 05:36 PM
مدون نشيط
 
تاريخ التسجيل: Apr 2008
المشاركات: 57
شكر غيره: 2
تم شكره 0 مرة في 0 موضوع
افتراضي

درس جميل جدا
شكرا لك ونتمنى فى الدرس القادم ان امكن ان تذكر لنا كيف يمكن استخراج نص معين من التدوينه نفسها مثلا نريد ان نستخرج من المدونات التى بها روابط يو تيوب الكود اللى بيكون بعد v=
ان امكن يكون جيد جدا









__________________
اليكس
رد مع اقتباس
  #21  
قديم 05-27-2009, 07:24 PM
مدون نشيط
 
تاريخ التسجيل: Apr 2009
المشاركات: 46
شكر غيره: 6
تم شكره 51 مرة في 11 موضوع
افتراضي

العفو أخي sangam

بالنسبة لرابط اليوتيوب هو ليس تماماً بمحتوى التدوينة ولكنه في كود الـ HTML
تعديل: عفواً، رابط اليوتيوب يعتير داخل المحتوى، فالفلتر هووك المستخدم the_content يبحث في كود التدوينة قبل أن تترجم على المتصفح.
عذراً

في رأيي أن الطريقة المناسبة هي أن تنشئ جدول في قاعدة البيانات وتسمية مثلاُ youtube_vids

ثم تضيف إليه الـ ids الخاصة بالفيديو كلما أضفت فيديو إلى المدونة وهو الرمز الذي يلي v= كما تفضلت

ثم بعد ذلك تقوم باستدعائه من قاعدة البيانات اذا أردت ذلك.


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









__________________
اسمي: محـمـد مـ ـسـاعـ ـد
وظيفتي: مصمم ومطور مواقع
تم إضافة الدرس الثاني للدرس: اصنع إضافتك الخاصة بنفسك + مم تتركب الإضافة وكيف تعمل؟
تابع مقالاتي في موقع عالم التقنية

التعديل الأخير تم بواسطة مدوَّنتي ; 05-29-2009 الساعة 04:39 AM. سبب آخر: تصحيح معلومات
رد مع اقتباس
  #22  
قديم 05-29-2009, 06:11 AM
مدون نشيط
 
تاريخ التسجيل: Apr 2009
المشاركات: 46
شكر غيره: 6
تم شكره 51 مرة في 11 موضوع
افتراضي

مع أنني لم أعرف مالفائدة من استخراجك لمعرّف فيديو اليوتيوب -أرجو أن تخبرنا كيف ستستفيد من ذلك- إلا أنني قمت بإيجاد المعادلة التالية:

كود PHP:
<?php

function youtube_vid_id($youtube_post) {

    
preg_match_all("/(watch\?v=([A-Za-z1-9-_]+))/i"$youtube_post$out1);
    
preg_match_all("/(www.youtube.com\/v\/([A-Za-z1-9-_]+))/i"$youtube_post$out2);

    
$vid_id1 $out1[2][0];
    
$vid_id2 $out2[2][0];    

    return 
$youtube_post;
}

add_filter('the_content''youtube_vid_id');

?>
الدالة السابقة تقوم بجلب رقم (أو معرّف) الفيديو من التدوينة وتقوم بحفظه داخل متغير.

وقد وضعت جميع الاحتمالات، فالاسكريبت يعمل أياً كان شكل الرابط:

http://www.youtube.com/watch?v=Ph-3FYxVbng

أو هكذا

http://www.youtube.com/v/krQ2HA9cs2A&hl=en&fs=1

أو أي شكل من أشكال روابط اليوتيوب

بقي أن نعرف كيف نستفيد من هذا الكود، آمل أن يكون لديك مقترح.









__________________
اسمي: محـمـد مـ ـسـاعـ ـد
وظيفتي: مصمم ومطور مواقع
تم إضافة الدرس الثاني للدرس: اصنع إضافتك الخاصة بنفسك + مم تتركب الإضافة وكيف تعمل؟
تابع مقالاتي في موقع عالم التقنية

التعديل الأخير تم بواسطة مدوَّنتي ; 05-29-2009 الساعة 01:12 PM. سبب آخر: تعديل بسيط في الكود
رد مع اقتباس
  #23  
قديم 06-07-2009, 02:20 PM
مدون جديد
 
تاريخ التسجيل: Jan 2008
المشاركات: 4
شكر غيره: 1
تم شكره 0 مرة في 0 موضوع
افتراضي

ممتاز أخي مدونتي .. لاكن هناك ملاحضة : فى هذه الحالة يمكننا أستبدال جملة واحدة ،،

لمذا لا تجعل الاضافة تدعم تعدد الحقول









رد مع اقتباس
  #24  
قديم 06-07-2009, 03:28 PM
مدون نشيط
 
تاريخ التسجيل: Apr 2009
المشاركات: 46
شكر غيره: 6
تم شكره 51 مرة في 11 موضوع
افتراضي

صحيح أخي la7nal7ua

كنت أركز على كيفية عمل صفحة للإعدادات أكثر من تركيزي على توسيع وظيفة الإضافة نفسها،

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

تحياتي









__________________
اسمي: محـمـد مـ ـسـاعـ ـد
وظيفتي: مصمم ومطور مواقع
تم إضافة الدرس الثاني للدرس: اصنع إضافتك الخاصة بنفسك + مم تتركب الإضافة وكيف تعمل؟
تابع مقالاتي في موقع عالم التقنية
رد مع اقتباس
  #25  
قديم 06-08-2009, 10:52 AM
مدون جديد
 
تاريخ التسجيل: Apr 2009
المشاركات: 24
شكر غيره: 8
تم شكره 2 مرة في 2 موضوع
Smile

حقيقة الدرس رائع
وشرحة واضح وتستحق الشكر عليه
ولكنني ممن يخاف المجزافة لا أدري لماذا ..؟
جزيت الجنة









__________________
رد مع اقتباس
إضافة رد


الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1)
 
أدوات الموضوع
انواع عرض الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة
Trackbacks are معطلة
Pingbacks are متاحة
Refbacks are متاحة


المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
ويب.2 , صمم قالبك بنفسك ! #1 حسين الدليمي مقتطفات تدوينية 0 11-09-2008 10:26 PM
[استفسار] لماذا بعض الإضافات تعمل على بعض الاستضافات، ولا تعمل على البعض الآخر. عاصم خطاب مناقشة عامة 3 10-30-2008 02:17 AM
سويت عدة قواعد بيانات .. ورفعتها كم مره وعيت تتركب .. من يتكرم ويركبها لي؟ Mr.Alawinio الدعم الفني المتقدّم 2 10-13-2008 04:13 PM
اصنع قالب مدونتك بنفسك أفيــــاء مقتطفات تدوينية 0 08-21-2008 02:16 PM
آمن بنفسك - Believe Your Self صوت الحياة مقتطفات تدوينية 0 07-01-2008 02:03 PM



الساعة الآن 03:56 AM.