File "acf-input-functions.php"
Full path: /home/kosmetik/public_html/wp-content/plugins/advanced-custom-fields/includes/acf-input-functions.php
File
size: 4.41 B
MIME-type: text/x-php
Charset: utf-8
Download Open Edit Advanced Editor Back
<?php
function acf_filter_attrs($attrs)
{
$filtered = array_filter($attrs, 'acf_not_empty');
foreach (array('required', 'readonly', 'disabled', 'multiple') as $key) {
unset($filtered[$key]);
if (!empty($attrs[$key])) {
$filtered[$key] = $key;
}
}
return $filtered;
}
function acf_esc_attrs($attrs)
{
$html = '';
foreach ($attrs as $k => $v) {
if (is_string($v) && $k !== 'value') {
$v = trim($v);
} elseif (is_bool($v)) {
$v = $v ? 1 : 0;
} elseif (is_array($v) || is_object($v)) {
$v = json_encode($v);
}
$html .= sprintf(' %s="%s"', esc_attr($k), esc_attr($v));
}
return trim($html);
}
function acf_esc_html($string = '')
{
return wp_kses((string) $string, 'acf');
}
function _acf_kses_allowed_html($tags, $context)
{
global $allowedposttags;
if ($context === 'acf') {
return $allowedposttags;
}
return $tags;
}
add_filter('wp_kses_allowed_html', '_acf_kses_allowed_html', 0, 2);
function acf_hidden_input($attrs = array())
{
echo acf_get_hidden_input($attrs);
}
function acf_get_hidden_input($attrs = array())
{
return sprintf('<input type="hidden" %s/>', acf_esc_attrs($attrs));
}
function acf_text_input($attrs = array())
{
echo acf_get_text_input($attrs);
}
function acf_get_text_input($attrs = array())
{
$attrs = wp_parse_args($attrs, array('type' => 'text'));
if (isset($attrs['value']) && is_string($attrs['value'])) {
$attrs['value'] = htmlspecialchars($attrs['value']);
}
return sprintf('<input %s/>', acf_esc_attrs($attrs));
}
function acf_file_input($attrs = array())
{
echo acf_get_file_input($attrs);
}
function acf_get_file_input($attrs = array())
{
return sprintf('<input type="file" %s/>', acf_esc_attrs($attrs));
}
function acf_textarea_input($attrs = array())
{
echo acf_get_textarea_input($attrs);
}
function acf_get_textarea_input($attrs = array())
{
$value = '';
if (isset($attrs['value'])) {
$value = $attrs['value'];
unset($attrs['value']);
}
return sprintf('<textarea %s>%s</textarea>', acf_esc_attrs($attrs), esc_textarea($value));
}
function acf_checkbox_input($attrs = array())
{
echo acf_get_checkbox_input($attrs);
}
function acf_get_checkbox_input($attrs = array())
{
$attrs = wp_parse_args($attrs, array('type' => 'checkbox'));
$label = '';
if (isset($attrs['label'])) {
$label = $attrs['label'];
unset($attrs['label']);
}
$checked = isset($attrs['checked']);
return '<label' . ($checked ? ' class="selected"' : '') . '><input ' . acf_esc_attr($attrs) . '/> ' . acf_esc_html($label) . '</label>';
}
function acf_radio_input($attrs = array())
{
echo acf_get_radio_input($attrs);
}
function acf_get_radio_input($attrs = array())
{
$attrs['type'] = 'radio';
return acf_get_checkbox_input($attrs);
}
function acf_select_input($attrs = array())
{
echo acf_get_select_input($attrs);
}
function acf_get_select_input($attrs = array())
{
$value = (array) acf_extract_var($attrs, 'value');
$choices = (array) acf_extract_var($attrs, 'choices');
return sprintf('<select %s>%s</select>', acf_esc_attrs($attrs), acf_walk_select_input($choices, $value));
}
function acf_walk_select_input($choices = array(), $values = array(), $depth = 0)
{
$html = '';
if ($depth == 0) {
$values = array_map('esc_attr', $values);
}
if ($choices) {
foreach ($choices as $value => $label) {
if (is_array($label)) {
$html .= sprintf('<optgroup label="%s">%s</optgroup>', esc_attr($value), acf_walk_select_input($label, $values, $depth + 1));
} else {
$attrs = array('value' => $value);
$pos = array_search(esc_attr($value), $values);
if ($pos !== false) {
$attrs['selected'] = 'selected';
$attrs['data-i'] = $pos;
}
$html .= sprintf('<option %s>%s</option>', acf_esc_attr($attrs), esc_html($label));
}
}
}
return $html;
}
function acf_clean_atts($attrs)
{
return acf_filter_attrs($attrs);
}
function acf_esc_atts($attrs)
{
return acf_esc_attrs($attrs);
}
function acf_esc_attr($attrs)
{
return acf_esc_attrs($attrs);
}
function acf_esc_attr_e($attrs)
{
echo acf_esc_attrs($attrs);
}
function acf_esc_atts_e($attrs)
{
echo acf_esc_attrs($attrs);
}