درس في برمجة الهاكات
سنتحدث في هذا الموضوع عن طرق جلب البيانات
وكيفية تنسيقها مع التمبلتات وبعض الخصائص الى يمكننا ان نستخدمها
في الرد الثاني عن تقسيم النتائج على عدة صفحات
اولا:
عند جلب صف واحد من قاعدة البيانات
نستخدم الــquery_first
مثال
لاكن عند جلب عدة صفوف لوفرضنا ان اردنا جلب اسماء جميع الاعضاء .كود PHP:$rating=$DB_site->query_first("SELECT username from user where
userid=2");
echo $rating[username];
هنا لانستخدم الquery_first
اولا نكتب الاستعلام
ومن ثم نمرره بالداله while وايظا $DB_site->fetch_arrayكود PHP:$r=$DB_site->query("SELECT username,userid from user");
وقمنا بذلك لنستطيع عمل التكرار
كود PHP:while($vbulletin_arab=$DB_site->fetch_array($r)){
echo $rating[username];
}
والان اذا اردنا عمل ذلك على التمبلت
اولا ننشىء التمبلت الرئيسي للصفحه المراده
مثلا نسميه swalif
ونعمل تمبلت اخر نضع الاشياء الى راح تكرر مثل اسم العضو في حالتنا هذه
او مثل ماشفنا في صفحة المواضيع
التمبلت الرئيسي للموضوع هو showthread
والتمبلت الفرعي هو postbit
وهو الى من خلاله نظهر الردود عن طريق التكرار
وننشىء تمبلت فرعي
ونسميه مثلا swalif_bits
ونضيف فيه الاشياء الى بتتكر مثل الاسم
ونضيف مثلا في التمبلت الرئيسي للصفحهكود:<table width="100%"> <tr> <td width="15%" bgcolor="{secondaltcolor}"> <p align="center"><font face="Tahoma"><a href="member.php? s=$session[sessionhash]&action=getinfo&userid=$vbulletin_arab[userid]" >$vbulletin_arab[username]</a></font> </tr> </table>
الان نأتي لتعريف التمبلت في ملف الـphpكود:<html dir=rtl> <head><title>$bbtitle - اسماء الاعضاء</title> </head> <body> {htmldoctype} <p> $headinclude <p> {htmldoctype} <p> $headinclude <p> $header <br> <table cellpadding="{tableouterborderwidth}" cellspacing="0" border="0" bgcolor="{tablebordercolor}" {tableouterextra} width="{contenttablewidth}" align="center"><tr><td> <table cellpadding="4" cellspacing="{tableinnerborderwidth}" border="0" {tableinnerextra} width="100%"> <tr id="cat"> <td bgcolor="{categorybackcolor}" colspan="4" width="100%"><normalfont color="{categoryfontcolor}"><b>$bbtitle</b>-<b> </b><b><fo nt face="Tahoma"> </font></b><font face="Tahoma"><b>اسماء الاعضاء</b></font></normalfont></td> </tr> <tr> <td bgcolor="{tableheadbgcolor}" align="center" width="15%"><font face="Tahoma"><smallfont color="{tableheadtextcolor}"></smallfont><b>العضو</b></font></td> </tr> <tr> <bgcolor="#C0C0C0">$swalif_bits</tr> </table> </td></tr></table> <table cellpadding="{tableouterborderwidth}" cellspacing="0" border="0" bgcolor="{tablebordercolor}" {tableouterextra} width="{contenttablewidth}" align="center"><tr><td> <table cellpadding="4" cellspacing="{tableinnerborderwidth}" border="0" {tableinnerextra} width="100%"> <tr> <td bgcolor="{tableheadbgcolor}" align="center"><smallfont color="{tableheadtextcolor}"><b><a href="http://arabs-soft.com"> ©</a></b><b><a href="http://arabs-soft.com">by All-the-vb</a></b></smallfont></td> </tr></table></td></tr></table> $footer <!-- all-the-vb (vbulletin-arab.com !--> </body> </html>
1)التمبلت الرئيسي
هنا swalif تعني اسم التمبلت.كود PHP:eval("dooutput(\"".gettemplate("swalif")."\");");
وطبعا نضعه باخر ملف الــphp
2) التمبلت الفرعي
هنا swalif_bits اسم التمبلت الفرعيكود PHP:eval("\$all_the_vb .= \"".gettemplate("swalif_bits")."\";");
و $all_the_vb اسم المتغير الى نعرف به هذا التمبلت حتى نظهره في تمبلت swalif
وطبعا هذا الكود لا يوضع الا في التكرار الى عملناه مثال:
كود PHP:while($vbulletin_arab=$DB_site->fetch_array($r)){
eval("\$all_the_vb .= \"".gettemplate("swalif_bits")."\";");
}
وهنا عرض كامل للملف الphp
كود PHP:<?php
error_reporting(7);
require("./global.php");
$r=$DB_site->query("SELECT username,userid from user");
while($vbulletin_arab=$DB_site->fetch_array($r)){
eval("\$all_the_vb .= \"".gettemplate("swalif_bits")."\";");
}
eval("dooutput(\"".gettemplate("swalif")."\");");
?>



