From Joomla! Documentation

This page contains changes which are not marked for translation.
Joomla 4 Custom FormFields

This will help with creating your own custom formfield for your component ready for Joomla 4.

An Example Custom Field Type

Suppose you're working on your component named com_phonebook and you want to define a field that contains cities. Create the file administrator/components/com_phonebook/src/Field/CityField.php and write something similar to the following:


namespace yourname\Component\Phonebook\Administrator\Field;

// Check to ensure this file is included in Joomla!
defined('_JEXEC') or die('Restricted access');

use \Joomla\CMS\Factory;
use \Joomla\CMS\Form\FormField;
use \yourname\Component\Phonebook\Administrator\Helper\PhonebookHelper;

class CityField extends FormField 
	protected $type = 'City';

	// getLabel() left out

	public function getInput() {
		return '<select id="'.$this->id.'" name="'.$this->name.'">'.
		       '<option value="1" >New York</option>'.
		       '<option value="2" >Chicago</option>'.
		       '<option value="3" >San Francisco</option>'.