menu_bgservdownloadthemesdirforumhome
Smf عربى



المحرر موضوع: كيفية التعديل على الإستايلات لتعمل بشكل جيد مع المودات  (زيارة 8432 مرات)

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

غير متصل islam2hamy

  • فريق الإدارة
  • *
  • مشاركة: 952
  • الشعبية: +23/-0
  • الجنس: ذكر
  • أهلا بك فى موقع smf عربى
    • مشاهدة الملف الشخصي
بسم الله الرحمن الرحيم
السلام عليكم و رحمة الله و بركاته

فى هذا الموضوع إن شاء الله سوف نتعلم كيف نجعل المودات
تعمل بشكل جيد مع الإستايلات المختلفة (ليس الاستايل الافتراضى)

عندما تقوم بتثبيت مود فإن بعض المودات تحتاج لعمل بعض التغييرات على الإستايل
و يتم التعديل على الإستايل الإفتراضى تلقائيا أما الإستايلات الأخرى فيجب التعديل عليها يدويا

و هناك طرقتين للقيام بذلك :

1 - عن طريق تحميل المود و فك ضغط الرزمة و اتباع الشارح التالى .

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

لنقم مثلا بالتجربة على مود الإعلانات Ad Mod

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


اقتباس
Ads.php
Ads.english.php
Ads.template.php
install.php
install.xml
LoadAds.php
package-info.xml
readme.txt

ما يهمنا فى هذه الملفات ,هو الملفات التى باللون الأحمر

و الأن حان وقت العمل , لنقم بفتح الملف install.xml و هو الملف الذى يشرح لنا كيفية تثبية الرزمة

بعد فتحه نبحث عن السطر الذى يحتوى كلمة "themedir$" و هو أمر  يعنى التعديل على ملفات الاستايل

و هذا السطر مثال على هذا الأمر :


شفرة: [اختيار]
<file name="$themedir/index.template.php">
و هو أمر المقصود به التعديل على الملف "index.template.php"

و هذا هو الأمر بالكامل لكى نشرح بالتفصيل :


شفرة: [اختيار]
<file name="$themedir/index.template.php">
<operation>
<search position="before"><![CDATA[<body>';]]></search>

<add><![CDATA[
//Display ads on the top of the page
if (function_exists("show_topofpageAds"))
{
$ads = show_topofpageAds();
if(!empty($ads))
if($ads['type']==0)
echo $ads['content'];
else
eval($ads['content']);
unset($ads);
}
]]>
</add>
</operation>
<operation>
<search position="before"><![CDATA[ </td>]]></search>
<add><![CDATA[';
//Welcome Ads
if (function_exists("show_welcomeAds"))
{
$ads = show_welcomeAds();
if(!empty($ads))
{
echo '<td class="windowbg2">';
if($ads['type']==0)
echo $ads['content'];
else
eval($ads['content']);
echo '</td>';
}
unset($ads);
}
echo ']]>
</add>
</operation>


<operation>
<search position="before"><![CDATA[ template_menu();]]></search>

<add><![CDATA[
//Below the menu ads
if (function_exists("show_indexAds") && function_exists("show_towerleftAds") && function_exists("show_towerrightAds"))
{
$ads = show_indexAds();
if(!empty($ads))
if($ads['type']==0)
echo $ads['content'];
else
eval($ads['content']);
unset($ads);

//Tower left Ads
$ads = show_towerleftAds();
if(!empty($ads))
echo '<table><tr><td valign="top">', $ads['type']==0 ? $ads['content'] : eval($ads['content']) ,'</td><td width="100%" valign="top">';

unset($ads);
//Tower Right Ads
$ads = show_towerrightAds();
if(!empty($ads))
echo '<table><tr><td width="100%" valign="top">';
unset($ads);
}
]]>
</add>
</operation>


<operation>
<search position="after"><![CDATA[ // Show the "Powered by" and "Valid" logos, as well as the copyright. Remember, the copyright must be somewhere!]]>
</search>

<add><![CDATA[
//Close table for towerright ads
if (function_exists("show_towerrightAds") && function_exists("show_towerleftAds") && function_exists("show_bottomAds"))
{
$ads = show_towerrightAds();
if(!empty($ads))
echo '</td><td valign="top">', $ads['type']==0 ? $ads['content'] : eval($ads['content']) ,'</td></tr></table>';

unset($ads);
//Close table for towerleft ads
$ads = show_towerleftAds();
if(!empty($ads))
echo '</td></tr></table>';
unset($ads);

//Show ads on the bottom of the page
$ads = show_bottomAds();
if(!empty($ads))
if($ads['type']==0)
echo $ads['content'];
else
eval($ads['content']);
unset($ads);
}
]]>
</add>
</operation>

</file>

الأمر التالى هو
شفرة: [اختيار]
<operation>
<search position="before"><![CDATA[<body>';]]></search>

<add><![CDATA[
//Display ads on the top of the page
if (function_exists("show_topofpageAds"))
{
$ads = show_topofpageAds();
if(!empty($ads))
if($ads['type']==0)
echo $ads['content'];
else
eval($ads['content']);
unset($ads);
}
]]>
</add>
</operation>

و المقصود به البحث عن ما بين القوسين و هو ";'<body>" و كلمة "before" تعنى ان تقوم بإضافة الأسطر التى تلى السطر "<add><![CDATA[" بعد السطر ";'<body>" بملف الـ "index.template.php"

ملحوظه نحن نقوم فقط بإضافة الاسطر التى باللون الأحمر كما هو موضح بالأسفل

اقتباس
<operation>
search position="before"><![CDATA[<body>';]]></search>
      
<add><![CDATA[   
   //Display ads on the top of the page
   if (function_exists("show_topofpageAds"))
   {
      $ads = show_topofpageAds();   
      if(!empty($ads))
         if($ads['type']==0)
            echo $ads['content'];
         else
            eval($ads['content']);   
      unset($ads);
   }

]]>
</add>
</operation>

و الأمر "</operation> و <operation>" تعنى بداية و نهاية هذه العملية

و هذا هو الأمر الثالث


اقتباس
   <operation>
      <search position="before"><![CDATA[   template_menu();]]></search>

<add><![CDATA[
   //Below the menu ads
   if (function_exists("show_indexAds") && function_exists("show_towerleftAds") && function_exists("show_towerrightAds"))
   {
      $ads = show_indexAds();   
      if(!empty($ads))
         if($ads['type']==0)
            echo $ads['content'];
         else
            eval($ads['content']);
      unset($ads);

      //Tower left Ads
      $ads = show_towerleftAds();
      if(!empty($ads))
         echo '<table><tr><td valign="top">', $ads['type']==0 ? $ads['content'] : eval($ads['content']) ,'</td><td width="100%" valign="top">';

      unset($ads);
      //Tower Right Ads
      $ads = show_towerrightAds();   
      if(!empty($ads))
         echo '<table><tr><td width="100%" valign="top">';
      unset($ads);
   }
   
]]>
</add>
</operation>

اذا كنت قد فهمت المثال السابق , فإنه سوف يمكنك فهم الامر السابق و هو يعنى البحث عن "   template_menu();" ثم إضافة الأسطر باللون الاحمر بعد هذا السطر
و هكذا تتم كل التعديلات .

ربما أيضا تجد أن المود يقوم بتعديل عدة ملفات مثل :

شفرة: [اختيار]
<file name="$themedir/BoardIndex.template.php">
<file name="$themedir/Display.template.php">
<file name="$themedir/MessageIndex.template.php">

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

أما إذا كان هناك تعديل على ملفات اللغه فستجد هذا السطر مثلا :

شفرة: [اختيار]
<file name="$languagedir/Modifications.english.php">و هو يعنى التعديل على ملف اللغه "Modifications.english.php"

فى أغلب الاحيان لن تحتاج الى تعديل ملف اللغه يدويا
الإ إذا كان الاستايل الذى تستخدمه له ملف لغه خاص به بمجلد اللغه الموجود داخل الاستايل

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



غير متصل Mr. Anaboussi

  • الدعم الفنى
  • *
  • مشاركة: 33
  • الشعبية: +2/-0
    • مشاهدة الملف الشخصي
الحقيقة صري فترة عم فكر اشرحها بس امنيح ما أشرحتها لأنو مستحيل تطلع بهل الاسلوب السهل والجميل
يعطيك العافية أخي اسلام

غير متصل islam2hamy

  • فريق الإدارة
  • *
  • مشاركة: 952
  • الشعبية: +23/-0
  • الجنس: ذكر
  • أهلا بك فى موقع smf عربى
    • مشاهدة الملف الشخصي
شكرا لك أخى
جزاك الله كل خير



غير متصل SAFAD

  • الدعم الفنى
  • *
  • مشاركة: 392
  • الشعبية: +11/-1
  • الجنس: ذكر
  • دمتم في حفظ الرحمن
    • مشاهدة الملف الشخصي
    • أكاديمية صفد سوفت
شح بسيط ورائع
لا تنسى شرح replace أيضا
دمتم في حفظ الرحمن
Sadaoui "SAFAD" Abderrahim - Lead Developer @ Electron inc

غير متصل amoune93

  • عضو جديد
  • *
  • مشاركة: 28
  • الشعبية: +1/-0
    • مشاهدة الملف الشخصي
شكرا أخي على الموضوع المميز وبارك الله.

غير متصل islam2hamy

  • فريق الإدارة
  • *
  • مشاركة: 952
  • الشعبية: +23/-0
  • الجنس: ذكر
  • أهلا بك فى موقع smf عربى
    • مشاهدة الملف الشخصي
شكر لكم اخوانى
جزاكم الله كل خير

بالنسبة للامر "replace" فهو يعنى إستبدال الكود المكتوب بالاحمر بالكود الذى قمت بالبحث عنه