Із серії тих же заміток для початківців:
Напевно ви вже знаєте що вносити будь які зміни в ядро 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
Напевно ви вже знаєте що вносити будь які зміни в ядро 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