Neler yeni
Presta-TR

Forumumza kayıt olarak hem destek alabilir hem de destek verebilirsiniz!

Şimdiden aramıza hoş geldiniz.

PS 1.4 versiyonunda nasıl yeni hook oluştururum.

fuvtev

Yeni Üye
Katılım
27 Nis 2011
Mesajlar
7
Tepkime puanı
0
Puanları
0
Merhaba,

Prestashop 1.4 versiyonu kullanıcam ve yeni bir hook oluşturmak istiyorum. Bunu nasıl yapabilirim ?
 
Cvp: PS 1.4 versiyonunda nasıl yeni hook oluştururum.

İngilizce:
Took me quite a while and lots of meddling to figure this out? thought I would share with the rest of you guys on how to create a hook so u can NOT waste the number of hours like I did

1. Goto your database and modify ps_hook? (ps_ is what I named my database, so it can be replaced by what you named yours.)

2. find the last id_hook number and insert a new number after with the hook that you want to name e.g. I name it ?cat?

3. goto the php of the pages you want the hook to be in? e.g footer.php

4. insert ?HOOK_CAT? => Module::hookExec(?cat?), into the below

$smarty->assign(array(
'HOOK_RIGHT_COLUMN' => Module::hookExec('rightColumn'),
'HOOK_FOOTER' => Module::hookExec('footer'),
'content_only' => intval(Tools::getValue('content_only'))));
$smarty->display(_PS_THEME_DIR_.'footer.tpl');
5. this is the final code?

$smarty->assign(array(
'HOOK_RIGHT_COLUMN' => Module::hookExec('rightColumn'),
'HOOK_FOOTER' => Module::hookExec('footer'),
'HOOK_CAT' => Module::hookExec('cat'),
'content_only' => intval(Tools::getValue('content_only'))));
$smarty->display(_PS_THEME_DIR_.'footer.tpl');
6.insert {$HOOK_CAT} into where you want in footer.tpl and you are in business

NOTE : For the hook to appear YOU HAVE TO assign the array in the page?s php? Would be good if we can have a master HOOK array list?

Türkçe:

1- Veritabanınızı phpMyAdmin gibi bir araç ile açınız (Not ps_ ön tnaımlıdır değiştirdiyseniz kendi ön takınızı kullanmalaısınız)
2- Son hook numarasına bakarak yeni bir numara ile yeni ismi kaydedin örnek olarak `alanim`
3- PHP olarak hangi alanda istiyorsak oraya ekleme yapmalıyız. Örn : zemin için footer.php yada üst kısım için header.php
4- Açtığınız dosyanın içine

[code type=php]?HOOK_CAT? => Module::hookExec(?cat?),[/code]

bu kodu alttaki gibi bir alanın içine ekleyin

[code type=php]$smarty->assign(array(
'HOOK_RIGHT_COLUMN' => Module::hookExec('rightColumn'),
'HOOK_FOOTER' => Module::hookExec('footer'),
'content_only' => intval(Tools::getValue('content_only'))));
$smarty->display(_PS_THEME_DIR_.'footer.tpl');[/code]

5- Son hali:

[code type=php]$smarty->assign(array(
'HOOK_RIGHT_COLUMN' => Module::hookExec('rightColumn'),
'HOOK_FOOTER' => Module::hookExec('footer'),
?HOOK_CAT? => Module::hookExec(?cat?),
'content_only' => intval(Tools::getValue('content_only'))));
$smarty->display(_PS_THEME_DIR_.'footer.tpl');[/code]

Modülleri bu andan itibaren hook_cat içine naklederek sonrada footer.tpl de {$HOOK_CAT} bu şekilde istediğiniz alana oturtabilirsiniz..

Yalnız footer.php ye eklendiği için sadece footer da görünücektir. header.php ye eklenirse tüm alanlarda (ödeme ekranları, ürün inceleme ekranları, ) kullanabilir olucaktır

Bol kazançlar
 
Cvp: PS 1.4 versiyonunda nasıl yeni hook oluştururum.

Dediğiniz gibi yaptım,

FrontController.php dosyasına 'HOOK_TOPBAR' => Module::hookExec('topbar'), kodunu aşağıdaki gibi ekledim

Kod:
public function displayHeader()
	{
		global $css_files, $js_files;

		if (!self::$initialized)
			$this->init();

		// P3P Policies (http://www.w3.org/TR/2002/REC-P3P-20020416/#compact_policies)
		header('P3P: CP="IDC DSP COR CURa ADMa OUR IND PHY ONL COM STA"');

		/* Hooks are volontary out the initialize array (need those variables already assigned) */
		self::$smarty->assign(array(
			'time' => time(),
			'static_token' => Tools::getToken(false),
			'token' => Tools::getToken(),
			'logo_image_width' => Configuration::get('SHOP_LOGO_WIDTH'),
			'logo_image_height' => Configuration::get('SHOP_LOGO_HEIGHT'),
			'priceDisplayPrecision' => _PS_PRICE_DISPLAY_PRECISION_,
			'content_only' => (int)(Tools::getValue('content_only'))
		));
		self::$smarty->assign(array(
			'HOOK_HEADER' => Module::hookExec('header'),
			'HOOK_TOP' => Module::hookExec('top'),
                        'HOOK_TOPBAR' => Module::hookExec('topbar'),
			'HOOK_LEFT_COLUMN' => Module::hookExec('leftColumn')
		));

daha sonra veritabanında ps_hook tablosunu buldum ve en son id 66 görünüyordu yeni bir satır oluşturup 67 id numarası ile hook bilgilerini girip kaydettim ve header.tpl dosyasınada {$HOOK_TOPBAR} şeklinde tanımladım.

Fakat tüm işlemleri yapmama rağmen admin panelinde hook görünmüyor. Modül naklet kısmından gerekli modülleri nakletmek istediğimde hook göremiyorum.

Problem veya yanlış yaptığım nokta neresidir ?
 
Cvp: PS 1.4 versiyonunda nasıl yeni hook oluştururum.

header.php ye ekleseydiniz kodu birde ps_hook tablosuna satırı ekledinizmi
 
Cvp: PS 1.4 versiyonunda nasıl yeni hook oluştururum.

header.php derken hangi dosyadan bahsediyorsunuz ?

Birde şöyle
http://landofcoder.com/download/guides-docs/docs-guide-prestashop/128-how-to-add-new-hook-in-prestashop-14.html
bir yazı buldum modul dosyasınada fonksiyon ekliyor valla birşey anlamadım ben bu işten. Hiç tema yaparken bu kadar zorlanmadım ben çok saçma bir sistemi var.

Veritabanında yeni satır oluşturdum.
 
Üst Alt