يعتمد سكربت المتجر الالكتروني بالاساس على
AMHSOFT FrameWork 1.3 و التي تم برمجتها بلغة
PHP
اما بالنسبة لقواعد البيانات فيتم الاعتماد على
MySQL الغني عن التعريف
مما يميز برمجة سكربت المتجر عن باقي البرمجيات و اعتماده على نظام
Model-view-controller او مايعبر عنه باختصار
MVC
استخدام هذا النظام في هندسة البرمجات يتيح للمبرمج سهولة فائقة في تصميم البرمجية و هذا يوفر جهد كبير عند تطويرها.
كما ان استعمال هذا النظام يساعد على اعادة استعمال الوحدات التي تمت برمجتها
صورة توضح هذا النظام
كان بامكاننا منذ البداية استخدام
Zend FrameWork او
Cakephp او غيرها من الانظمة انما كانت الحاجة الى الجمع بين
MVC Design Pattern و نظام الوحدات او ما يعبر عنه ب
Module System اي برمجة برامج مستقلة داخل البرنامج الام تتعامل فيما بينها البين من خلال
Interface معينة
كذلك كانت الحاجة لتوفر نظام
Plugins او ما يسمى بنظام الملحقات
ثم كانت الحاجة ايضا الى توفر نظام القوالب
Template System
عزيزي القارئ الجمع بين هذه الامور لم يكن متوفر في اي من البرامج مفتوحة المصدر المذكورة اعلاه فادركنا انه لابد من برمجة
FrameWork جديدة و من هنا كان ميلاد
AMHSOFT FrameWork
بعد هذه المقدمة فلنعاود الحديث عن سكربت المتجر الالكتروني
تعريفات
سكربت المتجر متكون من الملفات التالية:
- amhsoft: يحتوي على AMHSOFT FrameWork
- admin: لوحة الحكم
- modules: هذا الملف يحتوي على الوحدات المستقلة
- pages: على صفحات عادية مثل من نحن ...
- views: يحتوي على قوالب الصفحات العادية
- utils: الادوات
- plugins
- skins: الصور و الانماط
الخطوة الاولى
عزيزي المبرمج فلنبدا الان بالخطوة الاولى و هي اظافة صفحة جديدة للمتجر حتى نوضح كيف تعمل
AMHSOFT FrameWork
ملاحظة: يمكن للمستخدم اضافة صفحة جديدة من خلال لوحة التحكم لكنها صفحة ثابتة اي بمعنى اخر لو اردنا انشاء صفحة ديناميكية لا بد من اضافتها برمجيا مثال لذلك صفحة تعرض لنا عدد المنتجات
الخطوة الاولى: اضافة صفحة
PHP جديدة تسمى على سبيل المثال
itemscount.class.php تحت ملف
pages
ملاحظة: لابد ان يكون ملحق الصفحة
class.php.
المحتوى:
| 1 |
/*my first page*/
|
| 2 |
<?php
|
| 3 |
/*the class name must be like the page name*/
|
| 4 |
/*the difference is described below:*/
|
| 5 |
/*the first letter of the class name must be: "c"*/
|
| 6 |
/*and the first letter of the page name must be upper case*/
|
| 7 |
/*for example: if the page name is "items.class.php",*/
|
| 8 |
/*then the class name must be "cItems"*/
|
| 9 |
|
| 10 |
/*In the MVC-Model the class Page represents the model.*/
|
| 11 |
/*this class extends Page*/
|
| 12 |
class cItemscount extends Page{
|
| 13 |
function __default()
|
| 14 |
{
|
| 15 |
$count = 0; /*initialize my variable*/
|
| 16 |
$count = $this->connection->getCount("SELECT * FROM products");
|
| 17 |
/*$this->connection: is a library included in */
|
| 18 |
/*the AMHSOFT Framework,*/
|
| 19 |
/*that permits to handle mysql commands*/
|
| 20 |
$this->template->assign("count_of_products", $count);
|
| 21 |
$this->show()
|
| 22 |
}
|
| 23 |
?>
|
الخطوة الثانية: اضافة صفحة
HTML جديدة تسمى
itemscount.tpl.html تحت ملف
views
ملاحظة: لابد ان يتوافق اسم الصفحتين و ان يكون ملحق الصفحة
tpl.html.
المحتوى:
| 1 |
<h1>Count of products: {$count_of_products}</h1>
|
منادات الصفحة يكون كالاتي:
http://www.mysite.com/index.php?page=itemscount
او
http://www.mysql.com/itemscount.html
الدرس الثاني
الدرس الثاني مبني على الدرس الاول
نريد في الدرس الثاني انشاء صحة جديدة نعرض فيها عدد المنتجات المفعلة فقط
AMHSOFT FrameWork توفر لك جهدا كبير سوف تكتشف ذلك بنفسك
في هذه المرة سوف لن نقوم بانشاء صفحة جديدة انما سنعتمد على الصفحة القديمة و ذلك باضافة فقط
function
| 1 |
/*my first page*/
|
| 2 |
<?php
|
| 3 |
/*the class name must be like the page name*/
|
| 4 |
/*the difference is described below:*/
|
| 5 |
/*the first letter of the class name must be: "c"*/
|
| 6 |
/*and the first letter of the page name must be upper case*/
|
| 7 |
/*for example: if the page name is "items.class.php",*/
|
| 8 |
/*then the class name must be "cItems"*/
|
| 9 |
|
| 10 |
/*In the MVC-Model the class Page represents the model.*/
|
| 11 |
/*this class extends Page*/
|
| 12 |
class cItemscount extends Page{
|
| 13 |
function __default()
|
| 14 |
{
|
| 15 |
$count = 0; /*initialize my variable*/
|
| 16 |
$count = $this->connection->getCount("SELECT * FROM products");
|
| 17 |
/*$this->connection: is a library included in */
|
| 18 |
/*the AMHSOFT Framework,*/
|
| 19 |
/*that permits to handle mysql commands*/
|
| 20 |
$this->template->assign("count_of_products", $count);
|
| 21 |
$this->show()
|
| 22 |
}
|
| 23 |
function __online()
|
| 24 |
{
|
| 25 |
$count = 0; /*initialize my variable*/
|
| 26 |
$count = $this->connection->getCount("SELECT * FROM products WHERE online = 1");
|
| 27 |
$this->template->assign("count_of_products", $count);
|
| 28 |
$this->show()
|
| 29 |
}
|
| 30 |
?>
|
منادات الصفحة يكون كالاتي:
http://www.mysite.com/index.php?page=itemscount&event=online
او
http://www.mysite.com/itemscount-online.html
عزيزي المبرمج في دروس اخرى نقوم بشرح كيفية زيادة وحدة للمتجر و كيفية زيادة وحدة للوحة التحكم كذلك كيفية تغيير الستايل