السلام عليكم ورحمة الله وبركاته، وبعد
فألاحظ الحاجة الماسة لبرنامج استعراض كتاب على الإنترنت. ولم أجد برنامجا قويا لهذه المهمة، قد يعود هذا لعدم أهمية هذا الأمر عند الغرب لهذا لم يفكروا في برمجته.
أنا لست مبرمجا، ولا نية عندي لتعلم البرمجة. لأن هذا يؤثر على تخصصي الأصلي وهو اللغة العربية.
ولو كان هناك مبرمجون لا يخطئون في اللغة العربية لما كلفت نفسي عناء التعب في تعلم تركيب البرامج والخوادم وتعريبها.
بما أنني لست مبرمجا فهذا اعتراف صريح مني بعجزي عن كتابة برنامج.
لكن من خلال تعريبي لكثير من البرامج الصغيرة والكبيرة اكتسبت بعض المهارة التي تكفي لتعديل البرنامج أو إضافة بعض الخصائص له.
من أجل هذا كتبت برمجة أولية لبرنامج ( تصفح الكتاب ).
والذي ينقصني هو شخص يستطيع أن يتعامل مع php متصلة بقواعد البيانات mysql.
حيث إني قليل البضاعة جدا، ولا أعرف تماما كيفية تصدير المعلومات أو اسيترادها من القاعدة.
ولا أعرف كيفية وضع المتغيرات في الرابط نحو : showcat=$cat
وهكذا.
ماذا عملت؟
أولا حاولت قدر الاستطاعة إنشاء قاعدة بيانات وهي كالتالي :
القاعدة تشتمل على ثلاثة جداول :
الجدول الأول : يتعلق بالمؤلف وسميته (arp_auther). ويتضمن أربعة حقول :
1 - رقم المؤلف (auther_number )
2 - اسم المؤلف (auther_name )
3 - نبذة قصيرة عن المؤلف (auther_des )
4 - عدد الكتب المتوفرة له (auther_numberofbooks )
الجدول الثاني : يتعلق بالأقسام المتوفرة للكتب ( لإسلامية، لغوية، جغرافية ... ) وسميته (arp_cat)ويتضمن أربعة حقول :
1 - اسم القسم (cat_name )
2 - رقم القسم (cat_num )
3 - وصف القسم (cat_des )
4 - عدد الكتب المتوفرة في القسم (cat_booknumber )
الجدول الثالث : يتعلق بالكتاب وسميته (arp_showbook) ويتضمن عشرة حقول :
1 - القسم الذي يندرج تحته (book_cat )
2 - مؤلف الكتاب (book_auther )
3 - اسم الكتاب (book_name )
4 - رقم الكتاب (book_number )
5 - عدد المجلدات (book_moglad )
6 - عدد صفحات الكتاب (book_pages )
7 - رقم الصفحة للنص (book_numberofpages )
8 - نص الصفحة (book_showpage )
9 - رقم المجلد (book_numofmoglad)
10 - وصف الطبعة المعتمدة (book_des)
آمل ممن لديه القدرة أن يفحص القاعدة ويصحح الأخطاء.
ثانيا : أنشأت الملفات التالية :
1 - ملف الإعدادات (config.php)
وهذه برمجته :
كود:
<?
// بدأت في برمجة هذا البرنامج يوم 17 / 9 / 1422 هـ
// إذا كا لديك استعداد لمساعدتي فيه فأنا أرحب بذلك
// يمكنك مراسلتي على العنوان ababab90@yahoo.com
// إعدادات قاعدة البيانات ///
// عنوان المستضيف
$config['dserver'] = "localhost";
// اسم المستخدم للقاعدة
$config['duser'] = "";
// كلمة المرور
$config['dpass'] = "";
// اسم القاعدة
$config['dname'] = "seebook";
// هل ترغي في إظهار خانة (الجديد)؟
//1 = نعم| 0 = لا
$config['shownew'] = 1;
// هل تغب في السماح بالبحث؟
//1 = نعم| 0 = لا
$config['search'] = 1;
// هل تريد إظهار خانة (إضافة كتاب)؟
//1 = نعم| 0 = لا
$config['advnew'] = 1;
// تحديد اتجاه الصفحة، وملف scc
$dir="<html dir=rtl>";
echo "<link rel=\"stylesheet\" href=\"scc.css\" type=\"text/css\">";
?>
2 - ملف index.php
وهذه برمجته :
كود:
<?
// طلب الملفات اللازمة : ملف الإعداد، وملف اللغة
require ("config.php");
require ("lang/arabic.php");
// تضمين رأس الصفحة
include ("head.php");
// إعدادات طلب المعلومات من قاعدة البيانات
$db = $config['dname'] ;
$host = $config['dserver'];
$name = $config['duser'];
$pass = $config['dpass'];
$config[url] = $config['url'];
// عرض خانة الجديد
if ($config['shownew'] ) {
$ALGADED ="<a href=\"new.php\" >$lang[ALGADED]</a>";
}
// عرض خانة البحث
if ($config['search'] ) {
$SEACRH = "<a href=\"search.php\">$lang[SEARCH]</a>";
}
// عرض خانة إضافة كتاب
if ($config['advnew'] ) {
$ADDNEW = "<a href=\"addnew.php\" >$lang[ADDBOOK]</a>";
}
// طباعة المتغيرات السابقة
echo "
<p align=\"center\" font class=\"fontnormal\">$ALGADED | $SEACRH | $ADDNEW </p>
";
// طلب عدد البوابات من القاعدة
$link= mysql_connect($host, $name, $pass)
or die ("$lang[MYSQL_NOCOONECT]");
mysql_select_db ($db)
or die ("$lang[MYSQL_NOSELECTBASE] ");
$query = "SELECT * FROM arp_cat order by cat_name DESC ";
$result = mysql_query ($query)
or die ("$lang[MYSQL_QFILED]");
$rows=mysql_num_rows ($result) ;
// طباعة عدد البوابات
echo "<p align=\"center\" font class=\"fontnormal\">$lang[CATNUMBER] <font color=\"red\"> ($rows)</font>";
echo "<br></p>";
// طباعة أسماء البوابات ووصفها وعدد كتبها
echo "<p align=\"center\"><table border=1> \n";
echo "<tr><td align=\"center\" width=200 font class=\"fontnormal\">$lang[CATNAME]<td align=\"center\" width=200 font class=\"fontnormal\">$lang[BOOKNUM]</tr>\n";
while ($myrow = mysql_fetch_row($result)) {
printf("<tr><td><a href=\"showcat?cat=$cat\">%s</a><p> %s</td><td>%s</td></tr>%s</td></tr>\n", $myrow[0], $myrow[2], $myrow[3],$myrow[4]);
}
?>
النقص :
1 - نحتاج إلى وضع متغير $cat بحيث يكون موافقا برقم البوابة.
2 - توسيط رقم عدد الكتب.
ملفات أخرى :
في ملف index.php تظهر البوابات، عند الضغط عليها تفتح صفحة (showcat.php).
1 - المطلوب : برمجة صفحة showcat.php بحيث تستورد من القاعدة اسم الكتاب في هذه البوابة والمؤلف وإن أمكن عداد للقراءة وعداد للتحميل.
اسم البوابة ( استيراد من الجدول cat_name )
م اسم الكتاب_____________________ المؤلف
(متغير+) (استيراد منbook_name) استيراد من (book_auther )
ويكون اسم الكتاب له متغير $ مرتبط بصفحة عرض الكتاب showbook.php حيث يكون مثلا : showbook.php?id=$booknumber
2 - برمجة ملف showbook.php ، والمطلوب فيه :
استيراد اسم البوابة السابقة وطبعها (cat_name )ثم علامة > استيراد اسم الكتاب السابق وطبعه (book_name)
ثم معلومات الكتاب :
استيراد :
المؤلف (book_auther)، عدد المجلدات (book_moglad)، عدد الصفحات (book_pages )، الطبعة المعتمدة (book_des).
عرض الصفحة (استيراد رقم الصفحة book_numberofpages) من المجلد (استيراد رقم المجلدbook_numofmoglad)
الصفحة التالية(متغير+) الصفحة السابقة (متغير-)
النص ( استيراد نص الصفحة المطلوبة book_showpage )
الصفحة التالية(متغير+) الصفحة السابقة (متغير-)
طباعة هذه الصفحة ( متغير إلى صفحة print.php )
انتقل إلى صفحة (استيراد رقم الصفحة) من المجلد (استيراد رقم المجلد)
ابحث في هذا الكتاب :
ملف البحث : search.php
انظر صفحة التجربة
ملف إضافة كتاب addbook.php
انظر صفحة التجربة، وهذه أستطيع تعديل برمجتها من برنامج آخر.
ملف طباعة النص print.php :
يمكن للقارئ اختيار نوع الخط وحجمه.
ثم النص
ثم أمر الطباعة
ملف اللغة في مجلد lang باسم lang.php
كود:
<?
$lang[install_welcome] = "السلام عليكم";
$lang[INSTALL_INFO] = "حربا بك في برنامج تصفح الكتاب";
$lang[INSATLL_SUS] = "تم إنشاء قاعدة البيانات بنجاح";
$lang[INSATLL_NEWDATA] = "اسم القاعدة";
$lang[INSATLL_HOST] = "عنوان الخادم";
$lang[INSATLL_USER] = "اسم المستخدم";
$lang[INSATLL_TABLE] = "اسم الجدول";
$lang[INSATLL_PRESS] = "اضغط هنا للدخول إلى لوحة التحكم";
$lang[YES] = "نعم";
$lang[NO] = "لا";
$lang[SEND] = "أرسل";
$lang[ALGADED] = "الجديد";
$lang[SEARCH] = "البحث";
$lang[ADDBOOK] = "إضافة كتاب";
$lang[MYSQL_GOBACK] = "العودة";
$lang[MYSQL_NOCONNECT] = "لا يمكن الاتصال بقاعدة البيانات";
$lang[MYSQL_NODATA] = "لا يمكن إنشاء قاعدة البيانات";
$lang[MYSQL_NOSELECT] = "لم نتمكن من تحديد القاعدة";
$lang[CATNUMBER] = "عدد البوابات :";
$lang[CATNAME] = "اسم البوابة";
$lang[BOOKNUM] = "عدد الكتب";
$lang[MYSQL_NOCOONECT] = "لم نتمكن من الاتصال بقاعدة البيانات";
$lang[MYSQL_NOSELECTBASE] = "لم نتمكن من تحديد القاعدة";
$lang[MYSQL_QFILED] = "تعذر تنفيذ أوامر SQL";
$lang[admin_HEAD] ="لوحة التحكم بالبرنامج";
$lang[admin_MYSQLHOST] ="عنوان المستضيف";
$lang[admin_MYSQLUSER] ="اسم المستخدم للقاعدة";
$lang[admin_MYSQLPASS] ="كلمة المرور";
$lang[admin_MYSQLBASE] ="اسم القاعدة";
$lang[admin_ALLOW_NEW] ="هل ترغب في إظهار خانة الجديد؟";
$lang[admin_ALLOW_SEARCH] ="هل ترغب في السماح بالبحث؟";
$lang[admin_ALLOWADDBOOK] ="هل ترغب في إظهار خانة إضافة كتاب؟";
$lang[admin_GENRAL] ="الأعدادات العامة";
$lang[admin_ADDBOOK] ="إضافة كتاب";
$lang[admin_EDITBOOK] ="تعديل كتاب";
$lang[admin_DELBOOK] ="حذف كتاب";
$lang[admin_EDITAUTHER] ="تعديل معلومات مؤلف";
$lang[admin_DELAUTHER] ="حذف مؤلف";
$lang[admin_ADDAUTHER] ="إضافة مؤلف";
$lang[admin_ADDCAT] ="إضافة بوابة";
$lang[admin_EDITCAT] ="تعديل بوابة";
$lang[admin_DELCAT] ="حذف بوابة";
?>
====== ملفات المسؤول ---
3 - مجلد admin :
أ - ملف index.php
وهذه برمجته :
كود:
<?
require ("config.php");
require ("lang/arabic.php");
echo "<html dir=\"rtl\">";
echo "
<a href=\"genral.php\" >$lang[admin_GENRAL]</a><br>
<a href=\"addcat.php\" >$lang[admin_ADDCAT]</a><br>
<a href=\"editcat.php\" >$lang[admin_EDITCAT]</a><br>
<a href=\"delcat.php\" >$lang[admin_DELCAT]</a><br>
<a href=\"addauther.php\" >$lang[admin_ADDAUTHER]</a><br>
<a href=\"editauther.php\" >$lang[admin_EDITAUTHER]</a><br>
<a href=\"delauther.php\" >$lang[admin_DELAUTHER]</a><br>
<a href=\"addbook.php\" >$lang[admin_ADDBOOK]</a><br>
<a href=\"editbook.php\" >$lang[admin_EDITBOOK]</a><br>
<a href=\"delbook.php\" >$lang[admin_DELBOOK]</a><br>
";
?>
ملف head.php
كود:
<?
require ("config.php");
echo "<html dir=\"rtl\">";
?>
النقص في ملف index.php
1 - حماية الملف باسم مستخدم وكلمة مرور.
2 - إذا أمكن وضع جميع الملفات في ملف واحد فهذا جيد، ربما عن طريق function
بقية الملفات سيأتي الكلام عليها لاحقا إن شاء الله
=== ملف التركيب :3 - ملف التركيب install.php
وأعمل الآن على برمجته.
اضغط هنا للحصول على ملف مضغوط يحتوي على الملفات السابقة بما فيها قاعدة البيانات
http://www.toarabic.net/read/readbook.zip
أنتظر جوابكم