Friday, November 4, 2011

Працюємо з core в magento і залишаємо його буз змін

Із серії тих же заміток для початківців:

Напевно ви вже знаєте що вносити будь які зміни в ядро magento не є хорошим тоном і взагалі неправильним варіантом користування magento оскільки вона передбачає модульність і надає всі можливості для того щоб в ядро не вносити взагалі ніяких поправок.

Для такого типу файлів як блоки все дуже просто, а саме потрібно продублювати їєрархію папок до до тих файлів які ви хочете поміняти або підкорегувати в LOCAL, ну і не забути розмістити в вашій локалній ієрархії самі файли які ви вже змінили, але якщо ви бажаєте щоб і блоки і модулі були не просто продубльовані в локал, а містились в каталозі вашого модуля то потрібно дещо також змінити файл конфігурації і розмістити файли в відповідному місці, але про це згодом тому що контролери мене більше цікавлять на даний момент))

Отже що до такого типу файлів як контролери то тут трохи складніше, оскільки просте дублювання в локал навіть і не розглядається, для мене підійшов наступний метод розширення контролера,  в моєму випадку це був контролера ядра CustomControler, який можна знайти в контролерах Adminhtml.

в файл конфігурації нашого модуля дописуємо:
(file:    app/code/local/mypak/mymod/etc/config.xml)
<global>
<rewrite>
 <mypak_mymod_customer>
  <from><![CDATA[#^/admin/customer/#]]></from>
  <to>/mymod/customer/</to>
 </mypak_mymod_customer>
</rewrite>
</global> 



контролер яким ми розширюємо стандартний виглядає так:
(file:   app/code/local/mypak/mymod/controllers/CustomerControler.php)
require_once("Mage/Adminhtml/controllers/CustomerController.php");
class Mypakage_Mymodule_CustomerController extends Mage_Adminhtml_CustomerController
{
    //My data
}


судячи з коду можна побачити що ми просто створили нащадка стандартного контролера.
А ось перелік лінків які я знайшов на тему розширення та роботи з контролерами ядра не міняючи самих файлів ядра, можливо вони вам також стануть в потребі:
Overriding a core controller

No comments:

Post a Comment

 
 
Blogger Templates