Advertisement:

Author Topic: كيفية التعامل مع الملف (( package-info.xml ))  (Read 8191 times)

Offline islam2hamy

  • Sophist Member
  • *****
  • Posts: 1,363
  • Gender: Male
  • SMF أنا بحب
    • First Arabic Support Site For SMF
كيفية التعامل مع الملف (( package-info.xml ))
« on: December 21, 2011, 12:00:04 AM »
بسم الله الرحمن الرحيم
 السلام عليكم ورحمة الله و بركاته

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

 
 تعريفه :
 

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

 
 
Code: [Select]
<?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"
 
 وهذا هو شكل النهاية و هو كود إقفال للوسم  :

 
Code: [Select]
</package-info>

 و الأن نأتى "للحشو" :
 - ما هو بين البداية و النهاية - وهى الأوامر الخاصة بإجراء عملية التثبيت .
 
 وفى هذه النقطة نحتاج الى تحديد 3 عناصر هامة :
 
 1- النسخة التى يتوافق معها هذا المود .
 2 - نوع العمليات التى سوف تتم (( تثبيت المود , ترقية نسخة قديمة , إلغاء تثبيت المود )) .
 3 - الملفات التى سوف يتم إستخدامها للتعديل , ومسارها اذا كانت سوف يتم نسخها بالكامل .
 
 وهذه بعض المُتغيرات التى يفهمها البرنامج والتى تساعدك فى تسهيل عملية تحديد مسار الملف الذى سوف يتم تعديله :
 
 

 
Quote
  • $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 أنواع :

 
Code: [Select]
<install></install>, <upgrade></upgrade>, <uninstall></uninstall>
 

 حيث يتم دمجه بإصدار المنتدى و إستخدامه بهذه الطريقة :
 
Code: [Select]
     <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" وهذا الملف يكون به شرح بسيط عن المود وكيفية استعماله , وهذا هو الامر الخاص به

 
 
Code: [Select]
<readme type="file" parsebbc="true">readme.txt</readme>

 
 وبالنسبة للنسخة 2.0 من المنتدى فهى تسمح لك بوضع عدة ملفات لغة بحيث تظهر للمستخدم بلغته التى يستخدمها وهى بهذا الشكل
 
 
Code: [Select]
        <readme lang="english" parsebbc="true" type="file">readme.english.txt</readme>
         <readme lang="arabic-utf8" parsebbc="true" type="file">readme.arabic-utf8.txt</readme>

 * ملف التعديلات والذى سبق أن تحدثنا عنه , وهذا هو الامر الخاص به
 
 
Code: [Select]
<modification format="xml" type="file">modification.xml</modification>

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

 * مجلد يجب نسخه بما فى داخله من ملفات الى مكان ما بالمنتدى "require-dir" وهذا هو الامر الخاص بها
 
 
Code: [Select]
<require-dir destination="مسار المجلد" name="إسم المجلد"/>
 <require-dir destination="$boarddir" name="getid3"/>

 
 *  وفى حالة الحاجة الى إنشاء ملف او مجلد فارغ نستخدم الأمر "create-file و create-dir" بنفس الشكل فى المثال السابق
 
 * أيضا يمكنك نقل ملف او مجلد مع خاصية تغير اسمه عن طريق الأمر "move-file و move-dir" ولكن هذا الامر لا يتم استخدامه كثيرا
 
 * و فى حالة اذا كان المود له إعدادات يجب تهيئتها من لوحة تحكم المدير , فإنك تستطيع وضع أمر يختصر بعمل إعادة توجيه الى رابط الإعدادات الخاصة بالمود وذلك بعد الإنتهاء من عملية التثبيت , وهذا هو الأمر
 

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

 * فى حالة اذا كان المود سوف يقوم بعمل تعديلات على قاعدة البيانات فهذا هو الأمر
 
 
Code: [Select]
<code>mod_sql.php</code>

 و بالنسبة للنسخة 2.0 يفضل إستخدام الأمر ((<database>mod_sql.php</database>))
 
 كل ما سبق يختص بعملية التثبيت والترقية , أما فى حالة إلغاء التثبيت فإنه يتم إستخدام الأوامر الأتية بنفس الشكل السابق
 
 * بالنسبة لملف التعديل , يتم إضافة الامر "reverse="true"" كما هو موضح بالاسفل

 
 
Code: [Select]
<modification type="file" format="xml" reverse="true">modification.xml</modification>

 * بالنسبة لحذف الملفات و المجلدات يكون الامر هكذا
 
 
Code: [Select]
<remove-file name="مسار الملف بإستخدام المُتغير/إسم الملف"/>
 <remove-file name="$boarddir/newscore.php"/>

 وبالمثل مع المجلد
 
 
Code: [Select]
<remove-dir name="$boarddir/getid3"/>

 


 وهذا مثال على مود تم إنشائه لتثبيت صور شخصية :
 
 
Code: [Select]
<install>
 
    <readme>readme.txt</readme>
 
    <require-dir name="Cool_Avatars!" destination="$avatardir" />
 
 </install>
 



 وهذا هو مثال للملف النهائى لكى تطبق عليها ما تعلمناه مأخوذ من مود الترحيب عند تسجيل الدخول :
 
 
Code: [Select]
<?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>

 
و فى الختام أتمنى أن يكون الشرح بسيط و مفيد
 وما توفيقى إلا بالله
Arabic Translator - Web Designer
My Mods / My Themes  //  GfxLand





Offline Salem80

  • Newbie
  • *
  • Posts: 5
Re: كيفية التعامل مع الملف (( package-info.xml ))
« Reply #1 on: April 21, 2012, 11:12:15 AM »
شرح مميز تشكر عليه ..

Offline islam2hamy

  • Sophist Member
  • *****
  • Posts: 1,363
  • Gender: Male
  • SMF أنا بحب
    • First Arabic Support Site For SMF
Re: كيفية التعامل مع الملف (( package-info.xml ))
« Reply #2 on: April 23, 2012, 10:35:11 AM »
العفو أخى
Arabic Translator - Web Designer
My Mods / My Themes  //  GfxLand