Skip to content

Latest commit

 

History

History
47 lines (36 loc) · 1.57 KB

extend.md

File metadata and controls

47 lines (36 loc) · 1.57 KB

Как наследовать поля в php и расширять

Загрузите путь

Сначала вам надо зарегистрировать путь поля.

\Joomla\CMS\Form\FormHelper\FormHelper::addFieldPath();

Например, зарегистрируем поле listarticles.

\Joomla\CMS\Form\FormHelper\FormHelper::addFieldPath(
    JPATH_ROOT . '/libraries/lib_fields/fields/listarticles' 
);

Загрузите класс

Чтобы унаследоваться вам надо загрузить класс, в джумле есть хелпер для этого, который ранее использовался

\Joomla\CMS\Form\FormHelper\FormHelper::loadFieldClass();

Например, загрузим поле listarticles.

\Joomla\CMS\Form\FormHelper\FormHelper::loadFieldClass('listarticles');

Напишите класс и унаследуйте

После этого всего вы готовы создавать свой класс поля и наследоваться.
Полный код от выше примеров:

<?php defined('JPATH_PLATFORM') or die;

use Joomla\CMS\Form\FormHelper;

\Joomla\CMS\Form\FormHelper\FormHelper::addFieldPath(
    JPATH_ROOT . '/libraries/lib_fields/fields/listarticles' 
);

FormHelper::loadFieldClass('listarticles');

class JFormFieldMyListarticles extends JFormFieldListarticles
{

}

Дальше вы добавляете и переопределяете методы доступные из класса родителя.