Створення власної вкладки в системному модулі

Завдання: не зачіпаючи системний код кастомизировать системний модуль через додавання власної вкладки.

У класі def_module знаходиться метод __implement в завдання якого входить зібрати всі необхідні для роботи модуля класи разом. Імплементятся всі класи, що знаходяться в файлах з подвійним підкресленням, серед зібраних буде і клас __emarket_custom_admin. що знаходиться в файлі __custom_adm.php. Далі, за допомогою php-функції get_class_methods із зібраних класів отримуємо масив всіх методів з усіх класів. Далі, в змінну fn поміщається назва функції onImplement і за допомогою функції in_array ми шукаємо, чи є дане значення серед оголошених методів. Якщо таке значення є, то система виконує код описаний в функції onImplement.

Таким чином, якщо ми хочемо отримати доступ до системних методів, нам необхідно їх задіяти в класі __emarket_custom_admin і в методі onImplement ().

Тепер додамо нову вкладку в модуль Інтернет-магазину.
Для цього відкриємо файл /classes/modules/emarket/__custom_adm.php і в класі __emarket_custom_admin напишемо метод onImplement ().

В результаті вкладки отримають нормальні імена.

При переході на створену вкладку ми отримаємо повідомлення про помилку:

Ресурс не існує

Щоб помилка зникла, нам необхідно описати наші створені вкладки у вигляді функцій (в тому ж файлі __custom_adm.php):

Для відображенням даних на вкладці, необхідно створити файл /styles/skins/mac/data/modules/emarket/list.view.custom.xsl. де описати шаблон для вкладки: