values)) { $content = implode(", ", $parameter->values); } elseif (isset($parameter->valuesLabels)) { $content = implode(", ", $parameter->valuesLabels); } else { $content = 'Brak'; } if (isset($parameter->unit)) { $content .= " ".$parameter->unit; } return $content; } function st_allegro_parameter($name, $parameter, array $values, &$dependencies) { // echo "
".var_export($parameter, true)."
"; $type = 'st_allegro_parameter_' . $parameter->type; $value = isset($values[$parameter->id]) ? $values[$parameter->id] : null; $required = $parameter->required; $display = "flex"; if ($parameter->options->dependsOnParameterId) { $parameterValueIds = isset($values[$parameter->options->dependsOnParameterId]) ? $values[$parameter->options->dependsOnParameterId]->valuesIds : array(); if ($parameter->options->requiredDependsOnValueIds) { $intersect = array_intersect($parameter->options->requiredDependsOnValueIds, $parameterValueIds); $required = count($intersect) > 0; } if ($parameter->options->displayDependsOnValueIds) { $intersect = array_intersect($parameter->options->displayDependsOnValueIds, $parameterValueIds); $display = count($intersect) > 0 ? "flex" : "none"; } $dependencies[$parameter->options->dependsOnParameterId][$parameter->id] = array( 'required' => $parameter->options->requiredDependsOnValueIds, 'display' => $parameter->options->displayDependsOnValueIds, ); } $options = array( 'required' => $required, 'parameter' => $parameter, 'postfix' => $parameter->unit ? ''.$parameter->unit.'' : null, 'row_attr' => array( 'style' => 'display: ' . $display ), 'id' => 'st_allegro_offer_parameter_' . $parameter->id, ); if ($parameter->type == 'dictionary' && $parameter->restrictions->multipleChoices) { $options['row_attr']['data-selected-ids'] = json_encode($value ? $value->valuesIds : array()); } if (isset($parameter->restrictions->min)) { $options['help'] = __("Wartość minimalna: %min%, wartość mayksymalna: %max%", array('%min%' => $parameter->restrictions->min, '%max%' => $parameter->restrictions->max)); } echo st_admin_get_form_field($name . '[' . $parameter->type . '][' . $parameter->id . ']', $parameter->name, $value, $type, $options); } function st_allegro_parameter_dictionary($name, $value, array $params) { $parameter = $params['parameter']; if (!$parameter->restrictions->multipleChoices) { return st_allegro_parameter_dictionary_single($name, $value, $params); } else { return st_allegro_parameter_dictionary_multiple($name, $value, $params); } } function st_allegro_parameter_dictionary_single($name, $value, array $params) { $parameter = $params['parameter']; $options = array(); foreach ($parameter->dictionary as $dictionary) { $options[$dictionary->id] = array( 'label' => $dictionary->value, 'attr' => array( 'data-depends-on-value-ids' => $dictionary->dependsOnValueIds ? json_encode(array_values($dictionary->dependsOnValueIds)) : null, ), ); } $value_id = $value && $value->valuesIds ? $value->valuesIds[0] : null; $options_for_select = options_for_select($options, $value_id, array('include_custom' => __("Wybierz"))); $content = select_tag($name.'[value]', $options_for_select, array( 'id' => $params['id'], 'class' => 'st_allegro_parameter_dictionary st_allegro_parameter', 'data-ambiguous-value-id' => $parameter->options->ambiguousValueId, 'data-custom-value-enabled' => $parameter->options->customValuesEnabled, 'data-parameter-id' => $parameter->id, )); if ($parameter->options->ambiguousValueId && $parameter->options->customValuesEnabled) { $visible = $parameter->options->ambiguousValueId == $value_id; $content .= " ".input_tag($name.'[custom]', $visible && $value && isset($value->values) && !empty($value->values) ? $value->values[0] : null, array( 'disabled' => !$visible, 'style' => !$visible ? 'display: none' : '', 'placeholder' => __('Wprowadź własną wartość'), 'size' => '40', 'class' => 'st_allegro_parameter_dictionary_custom' )); } return $content; } function st_allegro_parameter_dictionary_multiple($name, $value, array $params) { $parameter = $params['parameter']; $values = $value ? $value->valuesIds : array(); ob_start(); foreach ($parameter->dictionary as $dictionary) { echo ''; } return ob_get_clean(); } function st_allegro_parameter_float($name, $value, array $params) { return st_allegro_parameter_numeric($name, $value, $params); } function st_allegro_parameter_integer($name, $value, array $params) { return st_allegro_parameter_numeric($name, $value, $params); } function st_allegro_parameter_numeric($name, $value, array $params) { $parameter = $params['parameter']; if (!$parameter->restrictions->range) { return input_tag($name, $value && $value->values ? $value->values[0] : null, array( 'id' => $params['id'], 'class' => 'number-type st_allegro_parameter', 'size' => 10, 'data-min' => $parameter->restrictions->min, 'data-max' => $parameter->restrictions->max, 'data-precision' => isset($parameter->restrictions->precision) && $parameter->restrictions->precision ? $parameter->restrictions->precision : 0, )); } else { return input_tag($name . '[from]', $value && $value->rangeValue ? $value->rangeValue->from : null, array( 'id' => $params['id'] . '_from', 'class' => 'number-type st_allegro_parameter', 'size' => 10, 'data-min' => $parameter->restrictions->min, 'data-max' => $parameter->restrictions->max, 'data-precision' => isset($parameter->restrictions->precision) && $parameter->restrictions->precision ? $parameter->restrictions->precision : 0, )) . ' - ' . input_tag($name . '[to]', $value && $value->rangeValue ? $value->rangeValue->to : null, array( 'id' => $params['id'] . '_to', 'class' => 'number-type st_allegro_parameter', 'size' => 10, 'data-min' => $parameter->restrictions->min, 'data-max' => $parameter->restrictions->max, 'data-precision' => isset($parameter->restrictions->precision) && $parameter->restrictions->precision ? $parameter->restrictions->precision : 0, )); } } function st_allegro_parameter_string($name, $value, array $params) { $parameter = $params['parameter']; if ($parameter->restrictions->allowedNumberOfValues == 1) { return st_allegro_parameter_string_single($name, $value, $params); } else { return st_allegro_parameter_string_multiple($name, $value, $params); } } function st_allegro_parameter_string_single($name, $value, array $params) { $parameter = $params['parameter']; return input_tag($name, $value && $value->values ? $value->values[0] : null, array( 'class' => 'string-type st_allegro_parameter', 'maxlength' => $parameter->restrictions->maxLength, 'size' => '40', )); } function st_allegro_parameter_string_multiple($name, $value, array $params) { $parameter = $params['parameter']; $values = $value ? $value->values : array(); ob_start(); for ($i = 0; $i < $parameter->restrictions->allowedNumberOfValues; $i++) { echo '
'; echo input_tag($name . '[' . $i . ']', isset($values[$i]) ? $values[$i] : null, array('class' => 'string-type st_allegro_parameter', 'maxlength' => $parameter->restrictions->maxLength, 'size' => '40', 'placeholder' => __('Wartość %no%', array('%no%' => $i + 1)))); echo '
'; } return ob_get_clean(); }