رفتن به مطلب

آموزش ساخت هوک


faradost

پست های پیشنهاد شده

آموزش ساخت هوک (Hook) در پرستاشاپ 

هوک محل قرار گرفتن ماژول های قالب پرستاشاپ است. شما با ایجاد یک هوک جدید می تونید مدیریت بهتری روی ماژول ها داشته باشید و در نتیجه طراحی یا ویرایش قالب براتون راحت تر میشه. خوب ، ساخت یک هوک جدید کار بسیار راحتیه فقط باید به دقت مراحل زیر رو انجام بدید:

مرحله ۱: ابتدا باید هوک جدید را در فایل FrontController.php ایجاد کنید. برای این کار به مسیر “prestashop\classes” رفته و فایل FrontController.php را باز کنید. کد زیر پیدا کنید:

 

 

self::$smarty->assign(array(
'HOOK_HEADER' => Module::hookExec('header'),
'HOOK_TOP' => Module::hookExec('top'),
'HOOK_LEFT_COLUMN' => Module::hookExec('leftColumn')
));

 

 

 

برای اضافه کردن هوک جدید باید کد زیر را به کدهای بالا اضافه کنید. (من اسم هوک جدیدم را yourHook گذاشتم. میتونید هر نامی که خواستید برای هوک جدید انتخاب کنید) :

 

'HOOK_Top_Center' => Module::hookExec('yourHook') // New Hook

 

 

 

بنابراین کد شما باید به این صورت باشد

 

 

 

self::$smarty->assign(array(
'HOOK_HEADER' => Module::hookExec('header'),
'HOOK_TOP' => Module::hookExec('top'),
'HOOK_LEFT_COLUMN' => Module::hookExec('leftColumn'),
'HOOK_Top_Center' => Module::hookExec('yourHook')
));

 

 

 

مرحله ۲: در این مرحله باید اطلاعات هوک جدید را در دیتابیس وارد کنید. برای این کار وارد “php_myadmin” هاست شده و دیتابیس پرستاشاپ را انتخاب کنید. از میان گزینه های سمت چپ صفحه روی گزینه “ps_hook” کلیک کنید تا لیست تمام هوک های موجود باز شود. همانطور که مشاهده می کنید هر هوک شامل چند مشخصه است. یکی از این مشخصه ها “id_hook” است. ببینید “id_hook” مربوط به آخرین هوک، چند است. حالا بر روی گزینه “insert” در بالای صفحه کلیک کنید. در قسمت value مقادیر زیر را برای هر فیلد وارد کنید.

 

 

[align=right]id_hook ——> شناسه هوک که مقدار آن باید یکی بیشتر از شناسه آخرین هوک باشد.

 

name ——–> نام هوک (برای مثال : yourHook)

 

title ———> عنوان هوک (برای مثال : Top of Center)

 

description –> توضیحاتی درباره هوک که اختیاریه. می تونید خالی بزارید.

 

در آخر روی “GO” کلیک کنید تا هوک جدید ساخته بشه.

 

 

مرحله ۳: حالا باید مشخص کنید که چه ماژول هایی می تونن تو این هوک قرار بگیرن. به عنوان مثال در اینجا میخواهیم این هوک را برای ماژول blockpermanentlinks (بخش لینک های دائمی) تعریف کنیم. پس به مسیر prestashop\modules\blockpermanentlinks رفته و فایل blockpermanentlinks.php را باز کنید. همانطور که مشاهده می کنید هوک ها در این فایل به وسیله تابع زیر فراخوانی شده اند:

 

 

    function hookLeftColumn($params){
    return $this->display(__FILE__, 'blockpermanentlinks-header.tpl');
}

 

 

پس شما هم هوک جدید را به وسیله این تابع به این فایل اضافه کنید:

 

    function hookyourHook($params){
    return $this->display(__FILE__, 'blockpermanentlinks-header.tpl');
}

 

 

مرحله ۴: در این مرحله باید هوک جدید را با توجه به نیازتون در یکی از فایل های tpl قالبتون فراخوانی کنید. مثلا این هوک را می خواهیم در header.tpl فراخوانی کنیم. به مسیر prestashop\themes\yourtheme رفته و فایل header.tpl را باز کنید. با استفاده از کد {$HOOK_Top_Center} هوک جدید را فراخوانی می کنیم:

 

{$HOOK_Top_Center}
 

مرحله ۵: به قسمت مدیریت پرستاشاپ و مسیر “ماژول ها > موقعیت ها” رفته و روی گزینه نشاندن یک ماژول کلیک کنید. از قسمت ماژول نام ماژولی که هوک را برای آن تعریف کردید (ماژول بخش لینک های دائمی) و از قسمت “جایگیری در” نام هوک جدید را انتخاب کنید و روی ذخیره کلیک کنید.

حالا با فعال کردن کامپایل اجباری از مسیر “تنظیمات > کارایی ها” و رفرش سایت می تونید تغییرات را مشاهده کنید.

 

این آموزش رو داخل یه سایت دیدم و گفتم اینجا بزارم شاید کسی استفاده کرد

منبع:http://amozesh.bspersian.ir

 

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

لطفا شکل و فرم متن آموزشیتون رو اصلاح کنید

در نسخه 1.6 پرستا دیگه نیازی به این کار نیست. کافیه داخل فایل tpl بنویسید:

{hook h='yourhookname'}

سپس ماژول مدنظرتون رو داخل این هوک قرار بدید. به همین سادگی

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

لطفا شکل و فرم متن آموزشیتون رو اصلاح کنید

در نسخه 1.6 پرستا دیگه نیازی به این کار نیست. کافیه داخل فایل tpl بنویسید:

{hook h='yourhookname'}

سپس ماژول مدنظرتون رو داخل این هوک قرار بدید. به همین سادگی

متن اصلاح شد

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

لطفا شکل و فرم متن آموزشیتون رو اصلاح کنید

در نسخه 1.6 پرستا دیگه نیازی به این کار نیست. کافیه داخل فایل tpl بنویسید:

{hook h='yourhookname'}

سپس ماژول مدنظرتون رو داخل این هوک قرار بدید. به همین سادگی

سلام. من اینکارهایی که گفتید رو انجام دادم ولی عمل نمیکنه در جایگاه ها، هوک ساختگی من نمایش داده نمیشه. از فایل php ماژول هم بخش ریجستر هوک قرار دادم بازهم نشد. نباید توی php myadmin بارگذاری بشه؟؟ لطفاً روشن تر توضیح بدید

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

به طور مثال در یک بخش از فایل tpl تون کدی که گفتم رو قرار میدید و اسم هوک رو میذارید myTestHook. حالا چند بخش در ماژولمون رو باید تنظیم کنیم. یکی:

public function install()
    {
        if (!parent::install() ||
            !$this->registerHook('header') ||
            !$this->registerHook('myTestHook')) {
            return false;
        }

        return true;
    }

بخش بعدی هم مربوط میشه به اختصاص متغیرها و کارهای مدنظر مرتبط با این هوک:

public function hookmyTestHook($param)
    {
       ...
    }
لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

  • 1 month later...

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

در حال بارگذاری


  • کاربران آنلاین در این صفحه

    هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.

×
×
  • اضافه کردن...