menu_bgservdownloadthemesdirforumhome
Smf عربى



المحرر موضوع: كيفية التعامل مع الملف (( package-info.xml ))  (زيارة 5312 مرات)

0 الأعضاء و 1 ضيف يشاهدون هذا الموضوع.

غير متصل islam2hamy

  • فريق الإدارة
  • *
  • مشاركة: 952
  • الشعبية: +23/-0
  • الجنس: ذكر
  • أهلا بك فى موقع smf عربى
    • مشاهدة الملف الشخصي
كيفية التعامل مع الملف (( package-info.xml ))
« في: 21 , ديسمبر, 2011 - 06:54:56 صباحاً »
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله و بركاته

موضوع هذا الدرس هو شرح مفصل عن الملف ((package-info.xml))


تعريفه :

    هو الملف الذى يحتوى على الأوامر الخاصة بإجراء تعديلات على ملفات المنتدى .

بداية و نهاية الملف :

    بداية الملف تحتوى على تعريف عن لغة الملف - والتى هى xml - ونوعه - أنه مود لمنتدى Smf - ثم اسم المود وصاحبه ثم اسم المود الذى سوف يظهر عند التثبيت ثم رقم الإصدار الخاص به .

وهذا هو شكلها :


شفرة: [اختيار]
<?xml version="1.0"?>
<!DOCTYPE package-info SYSTEM "http://www.simplemachines.org/xml/package-info">
<package-info xmlns="http://www.simplemachines.org/xml/package-info" xmlns:smf="http://www.simplemachines.org/">
    <id>إسم المستخدم الذى أنت قمت بالتجسل به فى موقع الـ "simplemachines.org" :إسم المود</id>
    <name>إسم المود الذى سوف يظهر أثناء عملية التثبيت</name>
    <type>نوع الرزمة</type>
    <version>رقم الإصدار الخاص بالمود</version>

بالنسبة للأمر "type" - نوع الرزمة - سنجد أنه 3 أنواع  لتثبيت ملفات لغة "language", لتثبيت مود "modification" , لتثبيت صور شخصية  "avatar"

وهذا هو شكل النهاية و هو كود إقفال للوسم  :

شفرة: [اختيار]
</package-info>

و الأن نأتى "للحشو" :
- ما هو بين البداية و النهاية - وهى الأوامر الخاصة بإجراء عملية التثبيت .

وفى هذه النقطة نحتاج الى تحديد 3 عناصر هامة :

1- النسخة التى يتوافق معها هذا المود .
2 - نوع العمليات التى سوف تتم (( تثبيت المود , ترقية نسخة قديمة , إلغاء تثبيت المود )) .
3 - الملفات التى سوف يتم إستخدامها للتعديل , ومسارها اذا كانت سوف يتم نسخها بالكامل .

وهذه بعض المُتغيرات التى يفهمها البرنامج والتى تساعدك فى تسهيل عملية تحديد مسار الملف الذى سوف يتم تعديله :


اقتباس
  • $boarddir : وغيره من الملفات فى هذا المسار index.phpوهو يشير الى المسار الرئيسى للمنتدى حيث الملف
  • $sourcedir :  (  إلخ ...,Post.php, Admin.php)  حيث تجد الملفات /Sources  وهو يشير الى المجلد
  • $avatardir : حيث يمكنك إيجاد الصور الشخصية ./Avatars وهو يشير الى المجلد
  • $themedir:  وهو يشير إلى المجلد الخاص بالقالب - الإستايل - الرئيسى .
  • $themes_dir : وهو يشير الى المجلد الذى يحتوى على كل القوالب الخاصة بالمنتدى , بما فى ذلك القالب الرئيسى
  • $imagesdir : وهو يشير الى المجلد الخاص بالصورة للقالب الرئيسي .
  • $languagedir : وهو يشير الى المجلد الخاص بملفات اللغة الخاصة بالمنتدى .
  • $smileysdir : وهو يشير الى المجلد الخاص بالإبتسامات .


والان مع شرح هذه العملية "الحشو" :

1 - وهى تبدأ بتحديد النسخة التى سوف يعمل عليها المود :

وهى مثلا : 1.1.15 أو 2.0.1 أو الاثنين معاً إذا كانت متوافقة معهما .
ويتم كتابة هذا الامر داخل نوع العملية .

2 - تحديد نوع العملية وهناك 3 أنواع :

شفرة: [اختيار]
<install></install>, <upgrade></upgrade>, <uninstall></uninstall>

حيث يتم دمجه بإصدار المنتدى و إستخدامه بهذه الطريقة :
شفرة: [اختيار]
    <install for="1.1.0 - 1.1.99">
        الملفات التى سوف يقوم بإستخدامها توضع هنا
    </install>

وفى هذا المثال أخبرته بأن المود يعمل على جميع إصدارات المنتدى بدء من النسخة 1.1.0 وحتى النسخة 1.1.99 أو يمكننى كتابت الإصدار الحالى فقط , وهو مثلاً : 1.1.15
وتتم نفس العملية مع الاوامر الخاصة بالترقية و إلغاء التثبيت

وفى حالة اذا كان المود يعمل أيضا على النسخة 2.0 فهناك إحتمالين :
* اذا كان سوف يتم إستخدام نفس الملفات فى الإصدارين فيمكنك كتابة رقم الإصدارين وبينهما فاصلى هكذا "1.0,2.0"
* اذا كان كل اصدار له الملفات الخاصة به , فإنك سوف تقوم بفتح كود تثبيت جديد بعد الانتهاء من كود التثبيت الأول .


3 - تحديد الملفات التى سوف يتم إستخدامها و كيفية إستخدامها :

* ملف إقرأنى "readme.txt" وهذا الملف يكون به شرح بسيط عن المود وكيفية استعماله , وهذا هو الامر الخاص به


شفرة: [اختيار]
<readme type="file" parsebbc="true">readme.txt</readme>


وبالنسبة للنسخة 2.0 من المنتدى فهى تسمح لك بوضع عدة ملفات لغة بحيث تظهر للمستخدم بلغته التى يستخدمها وهى بهذا الشكل

شفرة: [اختيار]
        <readme lang="english" parsebbc="true" type="file">readme.english.txt</readme>
        <readme lang="arabic-utf8" parsebbc="true" type="file">readme.arabic-utf8.txt</readme>

* ملف التعديلات والذى سبق أن تحدثنا عنه , وهذا هو الامر الخاص به

شفرة: [اختيار]
<modification format="xml" type="file">modification.xml</modification>

* ملفات يجب نسخها الى مكان ما بالمنتدى "require-file" وهذا هو الامر الخاص بها

شفرة: [اختيار]
<require-file name="إسم ومكان الملف بالرزمة" destination="مسار مجلد اللغة" />
<require-file name="lang/UsersOnlineToday.english.php" destination="$languagedir" />

* مجلد يجب نسخه بما فى داخله من ملفات الى مكان ما بالمنتدى "require-dir" وهذا هو الامر الخاص بها

شفرة: [اختيار]
<require-dir destination="مسار المجلد" name="إسم المجلد"/>
<require-dir destination="$boarddir" name="getid3"/>


*  وفى حالة الحاجة الى إنشاء ملف او مجلد فارغ نستخدم الأمر "create-file و create-dir" بنفس الشكل فى المثال السابق

* أيضا يمكنك نقل ملف او مجلد مع خاصية تغير اسمه عن طريق الأمر "move-file و move-dir" ولكن هذا الامر لا يتم استخدامه كثيرا

* و فى حالة اذا كان المود له إعدادات يجب تهيئتها من لوحة تحكم المدير , فإنك تستطيع وضع أمر يختصر بعمل إعادة توجيه الى رابط الإعدادات الخاصة بالمود وذلك بعد الإنتهاء من عملية التثبيت , وهذا هو الأمر

شفرة: [اختيار]
<redirect url="رابط الإعدادات">ملف إقرأنى يظهر قبل التوجيه ليخبر المدير انه سوف يتم إعداة التوجيه</redirect>
<redirect url="?action=downloads;sa=adminset">redirect.txt</redirect>

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

شفرة: [اختيار]
<code>mod_sql.php</code>

و بالنسبة للنسخة 2.0 يفضل إستخدام الأمر ((<database>mod_sql.php</database>))

كل ما سبق يختص بعملية التثبيت والترقية , أما فى حالة إلغاء التثبيت فإنه يتم إستخدام الأوامر الأتية بنفس الشكل السابق

* بالنسبة لملف التعديل , يتم إضافة الامر "reverse="true"" كما هو موضح بالاسفل


شفرة: [اختيار]
<modification type="file" format="xml" reverse="true">modification.xml</modification>

* بالنسبة لحذف الملفات و المجلدات يكون الامر هكذا

شفرة: [اختيار]
<remove-file name="مسار الملف بإستخدام المُتغير/إسم الملف"/>
<remove-file name="$boarddir/newscore.php"/>

وبالمثل مع المجلد

شفرة: [اختيار]
<remove-dir name="$boarddir/getid3"/>



وهذا مثال على مود تم إنشائه لتثبيت صور شخصية :

شفرة: [اختيار]
<install>

   <readme>readme.txt</readme>

   <require-dir name="Cool_Avatars!" destination="$avatardir" />

</install>


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

شفرة: [اختيار]
<?xml version="1.0"?>
<!DOCTYPE package-info SYSTEM "http://www.simplemachines.org/xml/package-info">
<package-info xmlns="http://www.simplemachines.org/xml/package-info" xmlns:smf="http://www.simplemachines.org/">
<id>islam2hamy:WelcomeBack</id>
<name>Welcome Back</name>
<version>1.0</version>

<type>modification</type>

    <!--// Install for SMF 2.0 Beta 2 and above //-->
<install for="2.0 - 2.99.99">
    <readme type="file" parsebbc="true">read me.txt</readme>
    <modification type="file">welcomeback.2.0.x.xml</modification>
    <modification type="file">language-utf8.xml</modification>
    <modification type="file">language.xml</modification>
    <require-file name="login3.php" destination="$sourcedir" />
    <require-file name="logout3.php" destination="$sourcedir" />
    <require-file name="login3.template.php" destination="$themedir" />
    <require-file name="logout3.template.php" destination="$themedir" />
</install>

    <!--// Install for SMF 2.0 Beta 2 and above //-->
<uninstall for="2.0 - 2.99.99">
    <modification type="file" reverse="true">welcomeback.2.0.x.xml</modification>
    <modification type="file" reverse="true">language-utf8.xml</modification>
    <modification type="file" reverse="true">language.xml</modification>
    <remove-file name="$sourcedir/login3.php" />
    <remove-file name="$sourcedir/logout3.php" />
    <remove-file name="$themedir/login3.template.php"  />
    <remove-file name="$themedir/logout3.template.php"  />
</uninstall>
</package-info>

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