بسم الله الرحمن الرحيم
السلام عليكم و رحمة الله و بركاته
فى هذا الموضوع إن شاء الله سوف نتعلم كيف نجعل المودات
تعمل بشكل جيد مع الإستايلات المختلفة (ليس الاستايل الافتراضى)
عندما تقوم بتثبيت مود فإن بعض المودات تحتاج لعمل بعض التغييرات على الإستايل
و يتم التعديل على الإستايل الإفتراضى تلقائيا أما الإستايلات الأخرى فيجب التعديل عليها يدويا
و هناك طرقتين للقيام بذلك :
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"
فى أغلب الاحيان لن تحتاج الى تعديل ملف اللغه يدويا
الإ إذا كان الاستايل الذى تستخدمه له ملف لغه خاص به بمجلد اللغه الموجود داخل الاستايل
و فى الختام أتمنى أن أكون قد وفقت فى الشرح و إن كان ذلك فهو توفيق من عند الله
و السلام عليكم و رحمة الله وبركاته