whoami7 - Manager
:
/
home
/
rattkxnv
/
www
/
wp-content
/
plugins
/
fluentform
/
app
/
Services
/
FormBuilder
/
Components
/
Upload File:
files >> /home/rattkxnv/www/wp-content/plugins/fluentform/app/Services/FormBuilder/Components/Checkable.php
<?php namespace FluentForm\App\Services\FormBuilder\Components; use FluentForm\Framework\Helpers\ArrayHelper; class Checkable extends BaseComponent { /** * Compile and echo the html element * * @param array $data [element data] * @param \stdClass $form [Form Object] * * @return void */ public function compile($data, $form) { $elementName = $data['element']; $data = apply_filters_deprecated( 'fluentform_rendering_field_data_' . $elementName, [ $data, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/rendering_field_data_' . $elementName, 'Use fluentform/rendering_field_data_' . $elementName . ' instead of fluentform_rendering_field_data_' . $elementName ); $data = apply_filters('fluentform/rendering_field_data_' . $elementName, $data, $form); $data['attributes']['class'] = trim( 'ff-el-form-check-input ' . 'ff-el-form-check-' . $data['attributes']['type'] . ' ' . ArrayHelper::get($data, 'attributes.class') ); if ('checkbox' == $data['attributes']['type']) { $data['attributes']['name'] = $data['attributes']['name'] . '[]'; } $defaultValues = (array) $this->extractValueFromAttributes($data); if ($dynamicValues = $this->extractDynamicValues($data, $form)) { $defaultValues = $dynamicValues; } $elMarkup = ''; $firstTabIndex = \FluentForm\App\Helpers\Helper::getNextTabIndex(); if (! $formattedOptions = ArrayHelper::get($data, 'settings.advanced_options')) { $options = ArrayHelper::get($data, 'options', []); $formattedOptions = []; foreach ($options as $value => $label) { $formattedOptions[] = [ 'label' => $label, 'value' => $value, 'calc_value' => '', 'image' => '', ]; } } $hasImageOption = ArrayHelper::get($data, 'settings.enable_image_input'); if ($hasImageOption) { if (empty($data['settings']['layout_class'])) { $data['settings']['layout_class'] = 'ff_list_buttons'; } $elMarkup .= '<div class="ff_el_checkable_photo_holders">'; } $data['settings']['container_class'] .= ' ' . ArrayHelper::get($data, 'settings.layout_class'); if ('yes' == ArrayHelper::get($data, 'settings.randomize_options')) { shuffle($formattedOptions); } // @todo : Find a alternative screen reader support // $legendId = $this->getUniqueid(str_replace(['[', ']'], ['', ''], $data['attributes']['name'])); // $elMarkup .= '<fieldset role="group" style="border: none!important;margin: 0!important;padding: 0!important;background-color: transparent!important;box-shadow: none!important;outline: none!important; min-inline-size: 100%;" aria-labelledby="legend_' . $legendId . '">'; // // $elMarkup .= '<legend style=" position: absolute;width: 1px;height: 1px;padding: 0;margin: 0;overflow: hidden;clip: rect(0, 0, 0, 0);border: 0;" role="heading" id="legend_' . $legendId . '" class="ff-sreader-only">' . esc_attr($this->removeShortcode($data['settings']['label'])) . '</legend>'; foreach ($formattedOptions as $option) { $displayType = isset($data['settings']['display_type']) ? ' ff-el-form-check-' . $data['settings']['display_type'] : ''; $parentClass = 'ff-el-form-check' . esc_attr($displayType) . ''; if (in_array($option['value'], $defaultValues)) { $data['attributes']['checked'] = true; $parentClass .= ' ff_item_selected'; } else { $data['attributes']['checked'] = false; } if ($firstTabIndex) { $data['attributes']['tabindex'] = $firstTabIndex; $firstTabIndex = '-1'; } $data['attributes']['value'] = $option['value']; $data['attributes']['data-calc_value'] = ArrayHelper::get($option, 'calc_value'); $atts = $this->buildAttributes($data['attributes']); $id = $this->getUniqueid(str_replace(['[', ']'], ['', ''], $data['attributes']['name'])); if ($hasImageOption) { $parentClass .= ' ff-el-image-holder'; } $elMarkup .= "<div class='" . esc_attr($parentClass) . "'>"; $id = esc_attr($id); $label = fluentform_sanitize_html($option['label']); $ariaLabel = esc_attr($label); // Here we can push the visual items if ($hasImageOption) { $elMarkup .= "<label style='background-image: url(" . esc_url($option['image']) . ")' class='ff-el-image-input-src' for='{$id}' aria-label='{$this->removeShortcode($ariaLabel)}'></label>"; } $ariaRequired = 'false'; if (ArrayHelper::get($data, 'settings.validation_rules.required.value')) { $ariaRequired = 'true'; } $disabled = ArrayHelper::get($option, 'disabled') ? 'disabled' : ''; $elMarkup .= "<label class='ff-el-form-check-label' for={$id}><input {$disabled} {$atts} id='{$id}' aria-label='{$this->removeShortcode($ariaLabel)}' aria-invalid='false' aria-required={$ariaRequired}> <span>" . $label . '</span></label>'; $elMarkup .= '</div>'; } if ($hasImageOption) { $elMarkup .= '</div>'; } // $elMarkup .= '</fieldset>'; $html = $this->buildElementMarkup($elMarkup, $data, $form); $data = apply_filters_deprecated( 'fluentform_rendering_field_html_' . $elementName, [ $html, $data, $form ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/rendering_field_html_' . $elementName, 'Use fluentform/rendering_field_html_' . $elementName . ' instead of fluentform_nonce_verify.' ); $this->printContent('fluentform/rendering_field_html_' . $elementName, $html, $data, $form); } }
Copyright ©2021 || Defacer Indonesia