<%@ Language=JavaScript %> Arab Portal  Modules System

 Arab Portal  blocks System
نظام مجموعات القوالب  المنفصلة


اعتمد في الإصدار Arab Portal v2.0 beta 2   ( خاص بالبوابة العربية  من تطوير رفيع العتيبي )

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

  1. تضمين قيم وبيانات الملفات المحددة ( The include() statement includes and evaluates the specified file )

  2. يقرأ الملفات من داخل الموقع ويكتب المخرجات في الذاكرة المؤقتة ( Reads a file and writes it to the output buffer )

  3. يقرأ رابط صفحة  ويكتب المخرجات في الذاكرة المؤقتة ( Reads a URL and writes it to the output buffer )


مثال 1: أسلوب التضمين INC

يوجد مثال في الإصدار Arab Portal v2.0 beta 2  الذي يعرض أقسام دليل المواقع  في أسفل الصفحة الرئيسية  وهي نتيجة من ملف : block \ links.php
محتوى الملف  في الكود التالي

PHP
<?php

$linkColcount   
= 2;

if(
$linkColcount < 1 ) $linkColcount = 1;

$index_middle .= "<div style="width:80%; border-style: solid; border-width: 1px; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px">

<center><table border='0' width='100%' align='center' cellpadding='"
.$linkColcount."'><tr>";

$result = mysql_query("SELECT * FROM rafia_cat WHERE catType='4' and subcat='0' ORDER BY ordercat ASC");

while(
$row = mysql_fetch_array($result))

{

    extract($row);

    $numrows       = $countopic;

    $title         = trim(nl2br(stripslashes($title)));

    $dsc           = trim(nl2br(stripslashes($dsc)));

    $tdwidth =  100/$linkColcount;

    $index_middle .= "<td align="center" width="".$tdwidth."%"  valign="top">";



$index_middle .=<<<EOF

<table border="0" cellpadding="0" cellspacing="0" width="100%" >

<tr>

<td width="100%" style="padding: 3"><font class=fontht><img border="0" src="images/b1.gif" align="middle" width="8" height="8">  <a href=link.php?action=list&cat_id=$id> $title</a></font>

<span class=fontablt>           <img border="0" src="images/topics.gif" align="middle" alt="&Uacute;&Iuml;&Iuml; &Ccedil;&aacute;&atilde;&aelig;&Ccedil;&Ouml;&iacute;&Uacute;">

<font color="#C0C0C0">
[$numrows]

</font></span></td>

</tr>

<tr>

<td width="100%" class=fontablt><font color="#808080">    $dsc</font></td>

</tr>

</table>

EOF;


     $index_middle .= "</td>";

     $count++;

     if ($count ==  $linkColcount)

     {

         $index_middle .= "</tr>";

         $count = 0;

     }

}

$index_middle .= "</tr></table></div><br>";

echo  $index_middle;
?>
 

كما نلاحظ ان الكود السابق يعتمد على الدوال PHP العمومية , وهذا كي يتاح لكل مطور دون الحاجة لدراسة مكتبة الدوال الخاصة بالبوابة العربية ان يكتب ما يشاء
 وعند الرغبة في استخدام مكتبة البوابة العربية يمكن ذلك من خلال المتغير $block  ثم اسم الدالة في المثال السابق يمكن استبدال التالي

mysql_query('SQL')

$block->query("SQL")

 نعود لنتابع طريقة تضمين الملف block \ links.php

 أضفنا هذا السطر في احد قوالب التصميم في القالب index_block

<!--INC dir="block" file="links.php" -->

عند إضافة ملف جديد كل ما يلزم إضافة سطر مشابه لسابق مع تحديد dir  وهو اسم المجلد   و file  اسم الملف ثم تختار  احد قوالب التصميم لتضع السطر السابق فيه كي تظهر النتيجة
وربما ترغب أن يظهر في احد  القوائم من خلال إضافة قائمة جديدة وتضع السطر السابق في ( محتوى القائمة )


مثال 2 : قراءة رابط RFF

أضف قائمة جديدة ثم اذهب إلى قوائم عامة واشر أمام القائمة المضافة وضع في محتوى القائمة هذا السطر

<!--RFF dir="URL" file="http://www.arabportal.net/block/apt_menu.php" -->


مثال 3 : قراءة ملف RFF

<!--RFF dir="block" file="my_block.txt" -->

اسم المجلد dir:

اسم الملف : file

الأسلوب الثالث يجب ان يكون محتوى الملف مخرجات لا يقرأ مخرجات برنامج