يعتمد سكربت المتجر الالكتروني بالاساس على 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
عزيزي المبرمج في دروس اخرى نقوم بشرح كيفية زيادة وحدة للمتجر و زيادة وحدة للوحة التحكم و كيفية تغيير الستايل