private function injectDefaultValues(XMLElement &$form, Event $event, Section $section) { // Create the Default Values fieldset $fieldset = new XMLElement('fieldset', null, array('class' => 'settings')); $fieldset->appendChild(new XMLElement('legend', __('Default Values'))); $fieldset->appendChild(new XMLElement('p', __('Use Default Values to set field values without having them in your Frontend markup. Use <code>{$param}</code> syntax to use page parameters.'), array('class' => 'help'))); $div = new XMLElement('div', null); $div->appendChild(new XMLElement('p', __('Add Default Value'), array('class' => 'label'))); // Create Duplicators $ol = new XMLElement('ol'); $ol->setAttribute('class', 'filters-duplicator'); $custom_default_values = $event->eDefaultValues; // Loop over this event's section's fields foreach ($section->fetchFields() as $field) { // Remove this from the `custom_default_values` array unset($custom_default_values[$field->get('element_name')]); // Add template $this->createDuplicatorTemplate($ol, $field->get('label'), $field->get('element_name')); // Create real instance with real data if (isset($event->eDefaultValues[$field->get('element_name')])) { $filter = $event->eDefaultValues[$field->get('element_name')]; $this->createDuplicatorTemplate($ol, $field->get('label'), $field->get('element_name'), $filter); } } $this->createCustomValueDuplicatorTemplate($ol); if (is_array($custom_default_values)) { $custom_default_values = array_filter($custom_default_values); if (!empty($custom_default_values)) { foreach ($custom_default_values as $name => $values) { $this->createCustomValueDuplicatorTemplate($ol, $name, $values); } } } $div->appendChild($ol); $fieldset->appendChild($div); $form->insertChildAt(1, $fieldset); }