: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
namespace Nextend\Framework\Form\Element;
use Nextend\Framework\Asset\Js\Js;
use Nextend\Framework\Form\AbstractField;
use Nextend\Framework\Form\ContainerInterface;
use Nextend\Framework\Form\TraitFieldset;
class MixedField extends AbstractFieldHidden implements ContainerInterface {
private $separator = '|*|';
protected $rowClass = 'n2_field_mixed ';
protected function fetchElement() {
$default = explode($this->separator, $this->defaultValue);
$value = explode($this->separator, $this->getValue());
$value = $value + $default;
$element->setExposeName(false);
$element->setDefaultValue($value[$i]);
$html .= $this->decorateElement($element);
$subElements[$i] = $element->getID();
$element = $element->getNext();
$html .= parent::fetchElement();
Js::addInline('new _N2.FormElementMixed("' . $this->fieldID . '", ' . json_encode($subElements) . ', "' . $this->separator . '");');
return $this->decorate($html);
public function setStyle($style) {
public function getControlName() {
return $this->name . $this->controlName;
* @param AbstractField $element
public function decorateElement($element) {
return $this->parent->decorateElement($element);
protected function decorate($html) {
return '<div class="n2_field_mixed__container" style="' . $this->style . '">' . $html . '</div>';