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

[ حصريا ] دورة برمجة الاضافات - [ الدرس الاخير - تصدير الاضافة ]

shqawe

ربي أشرح لي صدري
27 يونيو 2019
3,164
23
2,082
113
K.S.A
www.shqawe.net
بسم الله الرحمن الرحيم

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

اللهم لا علم لنا إلا ما علمتنا، إنك أنت العليم الحكيم، اللهم علمنا ما ينفعنا، وانفعنا بما علمتنا، وزدنا علما،

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



في الدرس السابق قمنا بالتعامل مع تعديلات القوالب تلقائيا ً دون التعديل على اي قالب

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

ملف addon.json

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

JavaScript:
{
    "legacy_addon_id": "معرف الاضافة",
    "title": "اسم الاضافة",
    "description": "وصف الاضافة",
    "version_id": "1000010", // اصدار الاضافة 
    "version_string": "1.0.0 النسخة", // اصدار الاضافة
    "dev": "اسم مبرمج الاضافة",
    "dev_url": "رابط موقع مبرمج الاضافة",
    "faq_url": "رابط التعليمات",
    "support_url": "رابط الدعم",
    "extra_urls": [],// روابط اضافية
    "require": [], // متطلبات اضافية
    "icon": "fa-users" // ايقونة الاضافة
}


الان سوف نقوم بالتعديل على الملف الخاص بالاضافة ونضيف له المعلومات التالية :

JavaScript:
{
    "legacy_addon_id": "",
    "title": "اول اضافة لدورة زين فورو",
    "description": "هذه هي اول اضافة لدورة برمجة الاضافات من معهد الزين فورو",
    "version_id": 1,
    "version_string": "1.0.0",
    "dev": "SHQAWE",
    "dev_url": "https://xenarabia.com/threads/363/",
    "faq_url": "https://xenarabia.com/threads/363/",
    "support_url": "https://xenarabia.com/threads/363/",
    "extra_urls": [],
    "require": [],
    "icon": "fa-user"
}

الان بعد اضافة المعلومات احفظ الملف وتوجه الى:

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


l-1.jpg

ستلاحظون ان العنوان والايقونة لم يتغيران

و رابط المطور و رابط التعليمات و رابط الدعم لم يظهرون

ولكن كما ترون هناك مربع ازرق مكتوب عليه [ التغييرات المعلقة ] وهذا معناة ان التغيير الذي قمنا به يحتاج الى مزامنة لكي يتم تطبيقة

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

l-2.jpg

الان لو عدنا الى الى الاضافات وقمنا بتحديث الصفحة سوف نرى النتيجة التالية:


l-3.jpg

ستلاحظون ان العنوان تغير والايقونة كذلك وروابط المطور والتعليمات والدعم تم ظهورها وتطبيقها.

الان لم يتبقى لنا الا تصدير الاضافة ولتصدير الاضافة نحتاج لان نعود الى اول نقطة بدأنا بها دورتنا وهي شاشة اوامر التشغيل او ما يسمى بال DOS او Terminal

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

HTML:
C:\xampp\htdocs\xenforo


ونقوم بكتابة هذا الكود

PHP:
 php cmd.php xf-addon:build-release MyFirstAddon

ولنشرح الكود قليلاً

اول الاوامر وهو :

كود:
php cmd.php xf

وهذا الامر استطيع ان اوقول هو الامر الرئيسي لبرنامج الزين فورو فلو كتبت هذا الامر فقط وضغط Enter سوف تظهر لك نتيجة كتابته جميع سطور اوامر الزين فورو

ونحن لا نحتاج من هذه الاوامر الا الامر

HTML:
 xf-addon:build-release

وبعد هذا الامر نقوم بكتابة اسم اضافتنا وفي دورتنا كان اسم اضافتنا هو MyfirstAddon وهو نفس اسم مجلد اضافتنا لمن لم يتذكره

الان بعد كتابة الامر والضغط على Enter سوف يتم تصدير ملف مضغوط خاص باضافتنا سوف تجدونه على المسار التالي:

كود:
C:\xampp\htdocs\xenforo\src\addons\MyFirstAddon\_releases

عند الذهاب الى هذا المجلد سوف تجدون ملف مضغوط باسم اضافتنا ونسختها

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

بعض النصائح:

- اتمنى ممن تابع هذه الدورة ان يقوي نفسه في اللغات التي ذكرتها في اول الدورة HTML, CSS, PHP ,JAVASCRIPT او JQUERY فمن لديه المعرفة في هذه اللغات سوف يستطيع الابحار بسهولة.

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

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

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

في النهاية ان اصبت فمن فضل الله علي وان اخطأت فجل من لايخطأ

احترامي وتقديري
اخوكم
شقاوي
 
بسم الله ما شاء الله
أسأل الله أن يبارك في صحتك و رزقك و أهلك

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

فاسال الله ان يجعلها في ميزان حسناتك ..

دمت بود يالغالي
 
التعديل الأخير:
بسم الله ما شاء الله
أسأل الله أن يبارك في صحتك و رزقك و أهلك

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

فاسال الله ان يجعلها في ميزان حسناتك ..

دمت بود يالغالي

الله يتقبل دعواتك اخوي @XenArabia

واحمد الله ان اعانني على اتمام هذه الدورة واسأل الله ان يعينني على تقديم المزيد باذن الله

وانتم والمعهد تستحقون ان يبذل لكم الغالي والنفيس 🙏


في ميزان حسناتكم ان شاء الله اخي شقاوي
كفيت و وفيت :)

اللهم امين واياك اخوي @bousaid

واتمنى ان تفيدنا بخبرتك ببعض الدروس المتقدمة كـ php callback و model و controller

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

احترامي وتقديري
اخوكم
شقاوي
 
ماشاء الله تبارك الله

الله يعطيك الصحة والعافية يا استاذ تركي

ابدعت في الشرح وكفيت ووفيت الله يجزاك عنا خير الجزاء

شكرا لك ياغالي :love:(y)

يالله حي الشيخ @أبو عبدالله

وازين ما قلت ذكر الله واحمد الله الي بذكره تتم الصالحات ان وفقنا في الشرح

ونتمنى ان الدورة تفيد وتكون واضحة للكل ان شاء الله

احترامي وتقديري
اخوك
شقاوي
 
أخيي الحبيب شقاوي
جربت حظي مع إضافة ويظهر لي هذا الخطأ
JSON:
{
    "legacy_addon_id": "AddPaginationToTop",
    "title": "إضافة ترقيم الصفحات إلى أعلى القوائم",
    "description": "تقوم هذه الإضافة بإضافة ترقيم الصفحات إلى أعلى قائمة المستخدمين والقوالب والعبارات لتسهيل التنقل",
    "version_id": 1,
    "version_string": "1.0.0",
    "dev": "MesterPerfect",
    "dev_url": "https://xenarabia.com/members/6/",
    "faq_url": "https://xenarabia.com",
    "support_url": "https://xenarabia.com",   
}
هذه المعلومات في ملف addon.json ولكن في لوحة التحكم يخرج لي هذا الخطأ
عدم تطابق الإصدار
ملفات الإضافة لا تظهر أنها من الإصدار الصحيح. يرجى إعادة تحميل الملفات الصحيحة.
فما السبب يا ترا
 
حي الله الغالي احمد

السبب في رقم اﻻصدار version_id ﻻبد ان يكون بهذه الطريقة 1000010 وانت واضع فقط رقم واحد ولذلك رقم اﻻصدار ﻻ يتطابق جرب تغييره واعطائنا النتائج
 
حي الله الغالي احمد

السبب في رقم اﻻصدار version_id ﻻبد ان يكون بهذه الطريقة 1000010 وانت واضع فقط رقم واحد ولذلك رقم اﻻصدار ﻻ يتطابق جرب تغييره واعطائنا النتائج
حياك الله يالغالي
نفس المشكلة بعد التعديل
JSON:
{
    "legacy_addon_id": "AddPaginationToTop",
    "title": "إضافة ترقيم الصفحات إلى أعلى القوائم",
    "description": "تقوم هذه الإضافة بإضافة ترقيم الصفحات إلى أعلى قائمة المستخدمين والقوالب والعبارات لتسهيل التنقل",
    "version_id": 1000010,
    "version_string": "1.0.0",
    "dev": "MesterPerfect",
    "dev_url": "https://xenarabia.com/members/6/",
    "faq_url": "https://xenarabia.com",
    "support_url": "https://xenarabia.com",   
}
 
بمجرد ما تقوم بانشاء اﻻضافة عن طريق اﻻوامر يتم زرع معلومات ملف addon.json الى قاعدة البيانات فاﻻن عليك الذهاب الى قاعدة البيانات وفتح جدول xf_addon

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

وراح تجد اﻻضافة الخاصة بك في هذا الجدول تأكد من حقل version_id هل قيمته مطابقة لنفس القيمة الموجودة في ملف json او ﻻ
عدلتها فعلا ونفس المشكلة
سأجرب إنشائها من البداية ربما هناك خطأ ما
 
أخي الحبيب @shqawe
انا أقوم بإنشاء الإضافة بشكل طبيعي
في الID اكتب اسمها بالإنجليزية دون فواصل MyAddon
وفي الtitle اكتب اسمها بالإنجليزية أيضا My addon
ولكن عند تعديل ملف addon.json وتغيير ال title بآخر عربي تظهر مشكلة عدم التوافق
أنا استخدم Xampp على نظام windows
سوف أجرب الssh على الserver بعد أن يتحسن الأنترنت ربما العيب من Xampp
 
حياك الله حيبي احمد

عند التعديل على ملف addon.json ﻻبد من مزامنة التغييرات التي اجريتها على الملف من لوحة التحكم عن طريق صفحة اﻻضافات

ومن ثم من القائمة المنسدلة التي تأتي بجانب اﻻضافة سوف تجدي خيار باسم مزامنة التغييرات قم بالضغط عليه لكي يقوم بتحديث معلومات اﻻضافة في قاعدة البيانات ويتم مزامنة الملف مع قاعدة البيانات لكي يتم التوافق بدون مشاكل
 
حياك الله حيبي احمد

عند التعديل على ملف addon.json ﻻبد من مزامنة التغييرات التي اجريتها على الملف من لوحة التحكم عن طريق صفحة اﻻضافات

ومن ثم من القائمة المنسدلة التي تأتي بجانب اﻻضافة سوف تجدي خيار باسم مزامنة التغييرات قم بالضغط عليه لكي يقوم بتحديث معلومات اﻻضافة في قاعدة البيانات ويتم مزامنة الملف مع قاعدة البيانات لكي يتم التوافق بدون مشاكل
تمام يا غالي تم الأمر وكله تمام
عندي سؤال آخر هذه المرة 😊
انا قمت بإنشاء إضافة وطبعا مسارها يكون بهذا الشكل
src/addons/MyFirstAddons
أريد جعله هاكذا
src/addons/MesterPerfect/MyFirstAddons
how? كيف؟
 
تمام يا غالي تم الأمر وكله تمام
عندي سؤال آخر هذه المرة 😊
انا قمت بإنشاء إضافة وطبعا مسارها يكون بهذا الشكل
src/addons/MyFirstAddons
أريد جعله هاكذا
src/addons/MesterPerfect/MyFirstAddons
how? كيف؟

بكل سهولة عند انشاء اﻻضافة اضف المجلد قبل مجلد اﻻضافة بمعنى اﻻمر سوف يكون بهذه الطريقة

كود:
php cmd.php xf-addon:create MesterPerfect/MyFirstAddons
 
بكل سهولة عند انشاء اﻻضافة اضف المجلد قبل مجلد اﻻضافة بمعنى اﻻمر سوف يكون بهذه الطريقة

كود:
php cmd.php xf-addon:create MesterPerfect/MyFirstAddons
رائع, جميل,
طيب لو إضافة موجودة لدي مسبقا هل أقدر أعدلها ولا لازم أعيد إنشائها
 
اتوقع صعب التعديل عليها وللامانة لم اقم بالتجربة سابقا ً خصوصا ً انه عند انشاء اي اضافة يتم استخدام الهاش hash في تشفير خصائص اﻻضافة فاتوقع صعب تعديلها
 
اتوقع صعب التعديل عليها وللامانة لم اقم بالتجربة سابقا ً خصوصا ً انه عند انشاء اي اضافة يتم استخدام الهاش hash في تشفير خصائص اﻻضافة فاتوقع صعب تعديلها
it's ok
سأعيد إنشائها من الصفر فهي ليست معضلة
 

إحصائيات المنتدى

المواضيع
1,589
المشاركات
17,895
الأعضاء
1,156
آخر عضو مسجل
hamodsekik
أعلى