is_array($data) ? '' : $data, 'cols' => '40', 'rows' => '10', ]; if (! is_array($data) || ! isset($data['value'])) { $val = $value; } else { $val = $data['value']; unset($data['value']); // textareas don't use the value attribute } // Unsets default rows and cols if defined in extra field as array or string. if ((is_array($extra) && array_key_exists('rows', $extra)) || (is_string($extra) && stripos( preg_replace('~\s+~', '', $extra), 'rows=' ) !== false)) { unset($defaults['rows']); } if ((is_array($extra) && array_key_exists('cols', $extra)) || (is_string($extra) && stripos( preg_replace('~\s+~', '', $extra), 'cols=' ) !== false)) { unset($defaults['cols']); } return '\n"; } } if (! function_exists('parse_form_attributes')) { /** * Parse the form attributes * * Helper function used by some of the form helpers * * @param array|string $attributes List of attributes * @param array $default Default values */ function parse_form_attributes(array|string $attributes, array $default): string { if (is_array($attributes)) { foreach (array_keys($default) as $key) { if (isset($attributes[$key])) { $default[$key] = $attributes[$key]; unset($attributes[$key]); } } if (! empty($attributes)) { $default = array_merge($default, $attributes); } } $att = ''; foreach ($default as $key => $val) { if (! is_bool($val)) { if ($key === 'name' && ! strlen((string) $default['name'])) { continue; } $att .= $key . '="' . $val . '"' . ($key === array_key_last($default) ? '' : ' '); } else { $att .= $key . ' '; } } return $att; } }