در حال گشت و گذار در اینترنت بودم که به مقاله ی جالبی بر خوردم که در اون آموزش ساخت یک ماژول ساده رو برای پرستا شاپ داده بود و من به خاطر سادگی و گیرایی این مقاله اون رو در این جا قرار میدم تا همه ی دوستان بتونن استفاده کنن. این مقاله رو کمی خلاصه میکنم: ساختن ماژول برای پرستا شاپ بسیار مقوله ی ساده ایست و فقط کافی است بدانید ماژول های پرستا شاپ چگونه کار می کنند. تمام ماژول ها توسط یک Hook سر جای خود قرار میگیرند. Hook در واقع محل قرار گرفتن ماژول ها را مشخص میکند. پرستا شاپ در حالت پیشفرض شامل چند Hook است مانند: rightColumn، leftColumn، payment, paymentReturn، updateOrderStatus، top، footer، productActions، cart، customerAccount، header، productTab، productTabContent، home و بسیاری Hook های دیگر. روش ساختن یک Hook جدید را در آموزش های بعدی خواهم داد (برای مشاهده ی آموزش به زبان انگلیسی میتوانید از این لینک استفاده کنید: http://www.prestashop.com/forums/viewthread/12637/) در اینجا قصد داریم تا ماژوی به نام fas*hio*n طراحی کنیم تا با نحوه ی عملکرد ماژول ها بیشتر آشنا شوید. این ماژول یک عکس را نمایش خواهد داد. طراحی بخش صفحه ی اصلی: 1. یک پوشه به نام fashion درون modules ایجاد کنید. 2. یک فایل با نام fashion.tpl برای نمایش عکس در صفحه اصلی ایجاد کنید. 3. کد های زیر را درون فایل fashion.tpl قرار دهیذ: Fashion اولین ماژول پرستا شاپ من {$module_dir}fashion.jpg کد {$module_dir} متغیر پرستا شاپ است که مکان فعلی ماژول را بر میگرداند. طراحی بخش صفحه ی اصلی به پایان رسید. بخش مدیریت: 1. یک فایل با نام fashion.php ایجاد کنید. 2. این کدها را درون آن قرار دهید. (توضیحات ربعد از کدها قرار خواهیم داد) name = 'fashion'; $this->tab = 'Blocks'; $this->version = 1.0; parent::__construct(); // The parent construct is required for translations $this->page = basename(__FILE__, '.php'); $this->displayName = $this->l('Block Fashion'); $this->description = $this->l('Add a fashion block'); } function install() { if (!parent::install()) return false; if (!$this->registerHook('leftColumn')) return false; return true; } /** * Returns module content * * @param array $params Parameters * @return string Content */ function hookLeftColumn($params) { return $this->display(__FILE__, 'fashion.tpl'); } } ?> توضیحات: کد __construct() به صورت اتوماتیک هنگامی که یک class خوانده میشوددرخواست میدهد. من توضیحات خود را جلوی هر خط اضافه کرده ام. function __construct() { $this->name = 'fashion'; // this is your module id/name $this->tab = 'Blocks'; // tab is actually a hook holder $this->version = 1.0; // and here is your program version parent::__construct(); // The parent construct is required for translations $this->page = basename(__FILE__, '.php');//please note your folder name and module name should match. $this->displayName = $this->l('Block Fashion'); // display module name in admin panel modules list $this->description = $this->l('Add a fashion block'); // and this is your modules description } تابع install() توسط فریم ورک پرستا شاپ بازخوانی میشود. این تابع بررسی میکند که آیا این ماژول نصب شده است یا خیر. شما میتوانید نام Hook را در اینجا تنظیم کنید. توجه کنید که شما باید جایگاه های Hook را به ترتیب مشخص کنید و همچنین قادر خواهید بود تا چند Hook را به صورت همزمان استفاده کنید! function install() { if (!parent::install()) return false; if (!$this->registerHook('leftColumn')) return false; return true; } و اما به مرحله ی آخر رسیدیم. کار ما با مشخص کردن registerHook('leftColumn') به پایان رسیده بنا بر این ما تابع زیر را اضافه میکنیم: function hookLeftColumn($params) { return $this->display(__FILE__, 'fashion.tpl'); // this is your .tpl file. You can add css/javascript links in your tpl file. } کار تمام است. اگر سوالی دارید میتوانید در همینجا مطرح کنید. منبع: http://www.marghoobsuleman.com/blog/how-to-create-prestashop-modules موفق باشید مهرشاد ذاکریان