PluginProbe
Woody Code Snippets – Insert PHP, CSS, JS, and Header/Footer Scripts / 2.3.1
Woody Code Snippets – Insert PHP, CSS, JS, and Header/Footer Scripts v2.3.1
2.7.7 2.7.6 2.7.5 2.7.4 trunk 1.3 2.0.4 2.0.6 2.1.91 2.2.4 2.2.7 2.2.9 2.3.1 2.3.10 2.4.10 2.4.2 2.4.4 2.4.5 2.4.6 2.4.7 2.4.8 2.4.9 2.6.0 2.6.1 2.7.0 All 28 releases
insert-php / libs / factory / forms / controls / integer.php

integer.php in Woody Code Snippets – Insert PHP, CSS, JS, and Header/Footer Scripts 2.3.1, at libs/factory/forms/controls/integer.php

160 lines 5.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * Integer Control
5 * Main options:
6 * name => a name of the control
7 * way => Тип значения 'slider' - слайдер, 'checkbox-slider' - чекбокс активирует слайдер, по умолчанию input
8 * checkbox => Указывается если, 'way' имеет значение 'checkbox-slider'
9 * Пример:
10 * array(
11 * 'on' => __('Show shadow', 'bizpanda'),
12 * 'off' => __('Hide shadow', 'bizpanda'),
13 * )
14 * title => Заголовок контрола
15 * slider-title => Заголовок слайдера( Только если 'way' имеет значение 'checkbox-slider' )
16 * range => Диапазон значений, указывается если 'way' имеет значение 'slider' или 'checkbox-slider'
17 * Пример: array(0,100)
18 * units => Единицы измерения(px,pt,em,%)
19 * isActive => Включение, отключение поля
20 * value => a value to show in the control
21 * default => a default value of the control if the "value" option is not specified
22 *
23 * @author Alex Kovalev <alex.kovalevv@gmail.com>
24 * @copyright (c) 2018, Webcraftic Ltd
25 *
26 * @package factory-forms
27 * @since 1.0.0
28 */
29
30 // Exit if accessed directly
31 if( !defined('ABSPATH') ) {
32 exit;
33 }
34
35 if( !class_exists('Wbcr_FactoryForms420_IntegerControl') ) {
36
37 class Wbcr_FactoryForms420_IntegerControl extends Wbcr_FactoryForms420_Control {
38
39 public $type = 'integer';
40
41 /**
42 * Converting string to integer.
43 *
44 * @since 1.0.0
45 * @return integer
46 */
47 public function html()
48 {
49
50 $name = $this->getNameOnForm();
51 $value = esc_attr($this->getValue());
52 $step = 1;
53 $range = $checkbox = array();
54 $is_active = $this->getOption('isActive', 1);
55 $unit = esc_attr($this->getOption('units'));
56
57 $way = $this->getOption('way');
58
59 if( empty($way) ) {
60 $way = 'text';
61 }
62
63 $has_slider = false;
64
65 if( in_array($way, array('slider', 'checkbox-slider')) ) {
66 $range = $this->getOption('range', array(0, 99));
67 $slider_title = $this->getOption('slider-title');
68 $checkbox = $this->getOption('checkbox');
69 $step = $this->getOption('step', 1);
70 $has_slider = true;
71 }
72
73 $this->addCssClass('factory-way-' . $way);
74
75 if( $has_slider ) {
76 $this->addCssClass('factory-has-slider');
77 }
78 ?>
79
80 <div <?php $this->attrs() ?>>
81 <?php if( $has_slider ) { ?>
82
83 <?php if( 'checkbox-slider' == $way ) { ?>
84
85 <div>
86 <label for="<?php echo $name; ?>_checker"><?php echo $is_active
87 ? $checkbox['off']
88 : $checkbox['on']; ?></label><br>
89 <input type="checkbox" id="<?php echo $name; ?>_checker" class="factory-checkbox" name="<?php echo $name; ?>_checker" <?php echo $is_active
90 ? 'checked'
91 : '' ?>>
92 </div>
93
94 <?php } ?>
95
96 <div
97 data-units="<?php echo $unit ?>"
98 data-range-start="<?php echo $range[0] ?>"
99 data-range-end="<?php echo $range[1] ?>"
100 data-step="<?php echo $step ?>"
101 <?php echo !$is_active
102 ? ' style="display:none;"'
103 : '' ?>
104 class="factory-slider-container factory-slider-container-<?php echo $name; ?>">
105 <?php if( !empty($slider_title) ): ?>
106 <label class="factory-title">
107 <?php echo $this->getOption('slider-title'); ?>
108 </label>
109 <?php endif; ?>
110
111 <div class="factory-slider">
112 <div class="factory-bar"></div>
113 <span class="factory-visible-value">
114 <?php echo $value ?><?php echo $unit ?>
115 </span>
116 </div>
117 <input type="hidden" name="<?php echo $name; ?>" class="factory-result" value="<?php echo $value; ?>"/>
118 </div>
119
120 <?php } else { ?>
121
122 <input type="number" id="<?php echo $name; ?>" name="<?php echo $name; ?>" value="<?php echo $value; ?>" class="factory-input-text"/>
123 <span class="factory-units"><?php echo $unit ?></span>
124
125 <?php } ?>
126 </div><!-- .factory-integer -->
127 <?php
128 }
129
130 /**
131 * Форматирует значение без единиц измерения
132 * @param string $values
133 * @param string $unit
134 * @return string
135 */
136 public function valueFormatWithoutUnit($values, $unit)
137 {
138 if( !is_numeric($values) ) {
139 return str_replace($unit, '', $values);
140 } else {
141 return $values;
142 }
143 }
144
145 /**
146 * Форматирует значение c единицами измерения
147 * @param string $values
148 * @param string $unit
149 * @return string
150 */
151 public function valueFormatWithUnit($values, $unit)
152 {
153 if( is_numeric($values) ) {
154 return $values . $unit;
155 } else {
156 return $values;
157 }
158 }
159 }
160 }