Commit 4476eb3511969dc118646c9c5759449e9fae3e84
1 parent
236a608c
test
Showing
5 changed files
with
100 additions
and
64 deletions
Show diff stats
.gitignore
common/widgets/views/phone_field.php
1 | <?php | 1 | <?php |
2 | use yii\helpers\Html; | 2 | use yii\helpers\Html; |
3 | - use yii\validators\RegularExpressionValidator; | ||
4 | - use yii\widgets\MaskedInput; | ||
5 | 3 | ||
6 | ?> | 4 | ?> |
7 | <fieldset> | 5 | <fieldset> |
8 | 6 | ||
9 | <div class="field_list"> | 7 | <div class="field_list"> |
10 | 8 | ||
11 | - | ||
12 | <?php $t = 0; | 9 | <?php $t = 0; |
13 | 10 | ||
14 | $label = 0; // add this var | 11 | $label = 0; // add this var |
@@ -17,14 +14,29 @@ | @@ -17,14 +14,29 @@ | ||
17 | $row = $i; | 14 | $row = $i; |
18 | ?> | 15 | ?> |
19 | <?= Html::beginTag('div', [ | 16 | <?= Html::beginTag('div', [ |
20 | - 'class' => 'form-group', | 17 | + 'class' => 'form-group form-group-phone-' . ( isset( $model[ $i ][ 'parent_key' ] ) ? $model[ $i ][ 'parent_key' ] : 0 ), |
21 | 'id' => isset( $model[ $i ][ 'parent_key' ] ) ? $model[ $i ][ 'parent_key' ] : 0, | 18 | 'id' => isset( $model[ $i ][ 'parent_key' ] ) ? $model[ $i ][ 'parent_key' ] : 0, |
22 | ]) ?> | 19 | ]) ?> |
23 | <div class="input-blocks"> | 20 | <div class="input-blocks"> |
24 | <label for="cont-phone-<?= ++$label ?>">Телефон</label> | 21 | <label for="cont-phone-<?= ++$label ?>">Телефон</label> |
25 | - <input id="cont-phone-<?= $label ?>" type="tel" pattern="^\+?(?:\d{0,3})?[\(\s]?\d{0,5}[\)\s]?\d{3}[-\s]?\d{2}[-\s]?\d{2}$" placeholder="+xx(xxx)xxx-xx-xx" class="form-control custom-input-2" value="<?= isset( $model[ $t ][ 'value' ] ) ? $model[ $t ][ 'value' ] : '' ?>" name="Fields[phone][<?= $row ?>][0][phone]"/> | 22 | + <input id="cont-phone-<?= $label ?>" type="tel" placeholder="+xx(xxx)xxx-xx-xx" class="form-control custom-input-2" value="<?= isset( $model[ $t ][ 'value' ] ) ? $model[ $t ][ 'value' ] : '' ?>" name="Fields[phone][<?= $row ?>][0][phone]"/> |
26 | </div> | 23 | </div> |
24 | + <div class="help-block"></div> | ||
27 | <span data-id="<?= isset( $model[ $i ][ 'parent_key' ] ) ? $model[ $i ][ 'parent_key' ] : 0 ?>" title="<?= Yii::t('app', 'add') ?>" class="glyphicon glyphicon-trash delete-field-item"></span> | 25 | <span data-id="<?= isset( $model[ $i ][ 'parent_key' ] ) ? $model[ $i ][ 'parent_key' ] : 0 ?>" title="<?= Yii::t('app', 'add') ?>" class="glyphicon glyphicon-trash delete-field-item"></span> |
26 | + <?php | ||
27 | + $js = " | ||
28 | + var id = 'cont-phone-" . $label . "'; | ||
29 | + $('#w0').yiiActiveForm('add', { | ||
30 | + container: '.form-group-phone-" . ( isset( $model[ $i ][ 'parent_key' ] ) ? $model[ $i ][ 'parent_key' ] : 0 ) . "', | ||
31 | + error: '.help-block', | ||
32 | + id: id, | ||
33 | + input: '#'+id, | ||
34 | + name: 'Fields[phone][" . $row . "][0][phone]', | ||
35 | + validate: function(attribute, value, messages, deferred) {yii.validation.regularExpression(value, messages, {'pattern':/^\+?(?:\d{0,3})?[\(\s]?\d{0,5}[\)\s]?\d{3}[-\s]?\d{2}[-\s]?\d{2}$/,'not':false,'message':'Телефон введен неверно . ','skipOnEmpty':1});} | ||
36 | + }); | ||
37 | + "; | ||
38 | + $this->registerJs($js, $this::POS_LOAD); | ||
39 | + ?> | ||
28 | <?= Html::endTag('div') ?> | 40 | <?= Html::endTag('div') ?> |
29 | <?php $i = ++$t; ?> | 41 | <?php $i = ++$t; ?> |
30 | <?php endfor; ?> | 42 | <?php endfor; ?> |
@@ -33,25 +45,28 @@ | @@ -33,25 +45,28 @@ | ||
33 | <p class="btn btn-success add_field_<?= $this->context->id ?>">Добавить еще</p> | 45 | <p class="btn btn-success add_field_<?= $this->context->id ?>">Добавить еще</p> |
34 | 46 | ||
35 | </fieldset> | 47 | </fieldset> |
36 | -<script> | ||
37 | - var start_i_<?=$this->context->id?> = <?=$i?>; | ||
38 | - var start_label_<?=$this->context->id?> = <?=$label?>; // add this var | ||
39 | - $(document).ready( | ||
40 | - function() | ||
41 | - { | ||
42 | - $('.add_field_<?=$this->context->id?>').click( | ||
43 | - function() | ||
44 | - { | ||
45 | - var block = $(this) | 48 | +<?php |
49 | + $js = " | ||
50 | + var start_i_" . $this->context->id . " = " . $i . "; | ||
51 | + var start_label_" . $this->context->id . " = " . $label . "; | ||
52 | + $(document).on('click', '.add_field_" . $this->context->id . "', function() { | ||
53 | + var block = $(this) | ||
46 | .siblings('.field_list'); | 54 | .siblings('.field_list'); |
47 | var block_id = $(this).parent('fieldset'); | 55 | var block_id = $(this).parent('fieldset'); |
48 | - var sub_block = '<div class="form-group" >' + '<div class="input-blocks">' + '<label for="cont-phone-' + ++start_label_<?=$this->context->id?> + '">Телефон</label>' + '<input id="cont-phone-' + start_label_<?=$this->context->id?> + '" type="tel" pattern="^\\+?(?:\\d{0,3})?[\\(\\s]?\\d{0,5}[\\)\\s]?\\d{3}[-\\s]?\\d{2}[-\\s]?\\d{2}$" placeholder="+xx(xxx)xxx-xx-xx" class="form-control custom-input-2" value="" name="Fields[phone][' + start_i_<?=$this->context->id?>++ + '][0][phone]" />' + '</div>' + '<span class="glyphicon glyphicon-trash delete-field-item custom-remove-ico"></span>' + '<div>'; | 56 | + ++start_label_" . $this->context->id . "; |
57 | + var sub_block = '<div class=\"form-group form-group-phone-'+start_label_" . $this->context->id . "+'\" >' + '<div class=\"input-blocks\">' + '<label for=\"cont-phone-' + start_label_" . $this->context->id . " + '\">Телефон</label>' + '<input id=\"cont-phone-' + start_label_" . $this->context->id . " + '\" type=\"tel\" placeholder=\"+xx(xxx)xxx-xx-xx\" class=\"form-control custom-input-2\" value=\"\" name=\"Fields[phone][' + start_i_" . $this->context->id . "++ + '][0][phone]\" />' + '</div><div class=\"help-block\"></div><span class=\"glyphicon glyphicon-trash delete-field-item custom-remove-ico\"></span>' + '<div>'; | ||
49 | block.append(sub_block); | 58 | block.append(sub_block); |
50 | - | ||
51 | - } | ||
52 | - ); | ||
53 | - } | ||
54 | - ); | ||
55 | -</script> | 59 | + $('#w0').yiiActiveForm('add', { |
60 | + container: '.form-group-phone-'+start_label_" . $this->context->id . ", | ||
61 | + error: '.help-block', | ||
62 | + id: 'cont-phone-'+start_label_" . $this->context->id . ", | ||
63 | + input: '#cont-phone-'+start_label_" . $this->context->id . ", | ||
64 | + name: 'Fields[phone][' + start_label_" . $this->context->id . "++ + '][0][phone]', | ||
65 | + validate: function(attribute, value, messages, deferred) {yii.validation.regularExpression(value, messages, {'pattern':/^\+?(?:\d{0,3})?[\(\s]?\d{0,5}[\)\s]?\d{3}[-\s]?\d{2}[-\s]?\d{2}$/,'not':false,'message':'Телефон введен неверно . ','skipOnEmpty':1});} | ||
66 | + }); | ||
67 | + }); | ||
68 | + "; | ||
69 | + $this->registerJs($js, $this::POS_LOAD); | ||
70 | +?> | ||
56 | 71 | ||
57 | 72 |
common/widgets/views/site_field.php
1 | <?php | 1 | <?php |
2 | -use yii\behaviors\SluggableBehavior; | ||
3 | -use yii\helpers\Html; | 2 | + use yii\helpers\Html; |
4 | 3 | ||
5 | ?> | 4 | ?> |
6 | <fieldset> | 5 | <fieldset> |
7 | 6 | ||
8 | - | ||
9 | <div class="field_list"> | 7 | <div class="field_list"> |
10 | 8 | ||
9 | + <?php $t = 0; | ||
11 | 10 | ||
12 | - <?php $t = 0; | ||
13 | - | ||
14 | - $label = 0; | ||
15 | - | ||
16 | - for($i=1; $i <= count($model); $i++): | ||
17 | - $row = $i; | 11 | + $label = 0; |
18 | 12 | ||
19 | - ?> | ||
20 | - | ||
21 | - <?= Html::beginTag('div',['class'=>'form-group','id'=>isset($model[$i]['parent_key']) ? $model[$i]['parent_key'] : 0 ])?> | ||
22 | - <div class="input-blocks"> | ||
23 | - <label for="cont-site-<?= ++$label ?>">Сайт</label> | ||
24 | - <input id="cont-site-<?= $label ?>" type="url" placeholder="http://" class="form-control custom-input-2" value="<?= isset($model[$t]['value']) ? $model[$t]['value'] : '' ?>" name="Fields[site][<?=$row?>][0][site]" /> | ||
25 | - </div> | ||
26 | - <span data-id="<?= isset($model[$i]['parent_key']) ? $model[$i]['parent_key'] : 0 ?>" title="<?= Yii::t('app','add') ?>" class="glyphicon glyphicon-trash delete-field-item"></span> | ||
27 | - <?= Html::endTag('div')?> | ||
28 | - <?php $i = ++ $t; ?> | ||
29 | - <?php endfor; ?> | 13 | + for($i = 1; $i <= count($model); $i++): |
14 | + $row = $i; | ||
15 | + ?> | ||
16 | + <?= Html::beginTag('div', [ | ||
17 | + 'class' => 'form-group form-group-site-'. ( isset( $model[ $i ][ 'parent_key' ] ) ? $model[ $i ][ 'parent_key' ] : 0 ), | ||
18 | + 'id' => isset( $model[ $i ][ 'parent_key' ] ) ? $model[ $i ][ 'parent_key' ] : 0, | ||
19 | + ]) ?> | ||
20 | + <div class="input-blocks"> | ||
21 | + <label for="cont-site-<?= ++$label ?>">Сайт</label> | ||
22 | + <input id="cont-site-<?= $label ?>" type="text" placeholder="http://" class="form-control custom-input-2" value="<?= isset( $model[ $t ][ 'value' ] ) ? $model[ $t ][ 'value' ] : '' ?>" name="Fields[site][<?= $row ?>][0][site]"/> | ||
23 | + </div> | ||
24 | + <div class="help-block"></div> | ||
25 | + <span data-id="<?= isset( $model[ $i ][ 'parent_key' ] ) ? $model[ $i ][ 'parent_key' ] : 0 ?>" title="<?= Yii::t('app', 'add') ?>" class="glyphicon glyphicon-trash delete-field-item"></span> | ||
26 | + <?php | ||
27 | + $js = " | ||
28 | + var id = 'cont-site-" . $label . "'; | ||
29 | + $('#w0').yiiActiveForm('add', { | ||
30 | + container: '.form-group-site-" . ( isset( $model[ $i ][ 'parent_key' ] ) ? $model[ $i ][ 'parent_key' ] : 0 ) . "', | ||
31 | + error: '.help-block', | ||
32 | + id: id, | ||
33 | + input: '#'+id, | ||
34 | + name: 'Fields[site][" . $row . "][0][site]', | ||
35 | + validate: function(attribute, value, messages, deferred) {yii.validation.url(value, messages, {\"pattern\":/^(http|https):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(?::\d{1,5})?(?:$|[?\/#])/i,\"message\":\"Введенный адрес не является правильным URL.\",\"enableIDN\":false,\"skipOnEmpty\":1});} | ||
36 | + }); | ||
37 | + "; | ||
38 | + $this->registerJs($js, $this::POS_LOAD); | ||
39 | + ?> | ||
40 | + <?= Html::endTag('div') ?> | ||
41 | + <?php $i = ++$t; ?> | ||
42 | + <?php endfor; ?> | ||
30 | </div> | 43 | </div> |
31 | - <p class="btn btn-success add_field_<?= $this->context->id ?>"><?= Yii::t('app','add_more') ?></p> | 44 | + <p class="btn btn-success add_field_<?= $this->context->id ?>"><?= Yii::t('app', 'add_more') ?></p> |
32 | 45 | ||
33 | </fieldset> | 46 | </fieldset> |
34 | -<script> | ||
35 | - var start_i_<?=$this->context->id?> = <?=$i?>; | ||
36 | - var start_label_<?=$this->context->id?> = <?=$label?>; // add this var | ||
37 | - $( document ).ready(function(){ | ||
38 | - $('.add_field_<?=$this->context->id?>').click(function(){ | ||
39 | - var block = $ (this) | ||
40 | - .siblings('.field_list'); | ||
41 | - var block_id = $(this).parent('fieldset'); | ||
42 | - var sub_block = '<div class="form-group" >'+ | ||
43 | - | ||
44 | - '<div class="input-blocks">'+ | ||
45 | - '<label for="cont-site-' + ++start_label_<?=$this->context->id?> +'">Сайт</label>'+ | ||
46 | - '<input id="cont-site-' + start_label_<?=$this->context->id?> +'" type="url" placeholder="http://" class="form-control custom-input-2" value="" name="Fields[site]['+ start_i_<?=$this->context->id?>++ +'][0][site]" />'+ | ||
47 | - '</div>'+ | ||
48 | - '<span title="<?= Yii::t('app','add') ?>" class="glyphicon glyphicon-trash delete-field-item"></span>'+ | ||
49 | - '<div>'; | ||
50 | - block.append(sub_block); | ||
51 | - | ||
52 | - }); | ||
53 | - }); | ||
54 | -</script> | 47 | +<?php |
48 | + $js = " | ||
49 | + var start_i_" . $this->context->id . " = " . $i . "; | ||
50 | + var start_label_" . $this->context->id . " = " . $label . "; | ||
51 | + $(document).on('click', '.add_field_" . $this->context->id . "', function() { | ||
52 | + var block = $(this) | ||
53 | + .siblings('.field_list'); | ||
54 | + var block_id = $(this).parent('fieldset'); | ||
55 | + ++start_label_" . $this->context->id . "; | ||
56 | + var sub_block = '<div class=\"form-group form-group-site-'+start_label_" . $this->context->id . "+'\" >' + '<div class=\"input-blocks\">' + '<label for=\"cont-site-' + start_label_" . $this->context->id . " + '\">Сайт</label>' + '<input id=\"cont-site-' + start_label_" . $this->context->id . " + '\" type=\"text\" placeholder=\"http://\" class=\"form-control custom-input-2\" value=\"\" name=\"Fields[site][' + start_i_" . $this->context->id . "++ + '][0][site]\" />' + '</div><div class=\"help-block\"></div><span class=\"glyphicon glyphicon-trash delete-field-item custom-remove-ico\"></span>' + '<div>'; | ||
57 | + block.append(sub_block); | ||
58 | + $('#w0').yiiActiveForm('add', { | ||
59 | + container: '.form-group-site-'+start_label_" . $this->context->id . ", | ||
60 | + error: '.help-block', | ||
61 | + id: 'cont-site-'+start_label_" . $this->context->id . ", | ||
62 | + input: '#cont-site-'+start_label_" . $this->context->id . ", | ||
63 | + name: 'Fields[site][' + start_label_" . $this->context->id . "++ + '][0][site]', | ||
64 | + validate: function(attribute, value, messages, deferred) {yii.validation.url(value, messages, {\"pattern\":/^(http|https):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(?::\d{1,5})?(?:$|[?\/#])/i,\"message\":\"Введенный адрес не является правильным URL.\",\"enableIDN\":false,\"skipOnEmpty\":1});} | ||
65 | + }); | ||
66 | + }); | ||
67 | + "; | ||
68 | + $this->registerJs($js, $this::POS_LOAD); | ||
69 | +?> | ||
55 | 70 | ||
56 | 71 |
frontend/views/site/index.php
frontend/web/css/style.css
@@ -7838,6 +7838,10 @@ input.disabled.admin-check:checked + label, input.disabled.admin-check:checked + | @@ -7838,6 +7838,10 @@ input.disabled.admin-check:checked + label, input.disabled.admin-check:checked + | ||
7838 | background: #fff | 7838 | background: #fff |
7839 | } | 7839 | } |
7840 | 7840 | ||
7841 | +.field_list .help-block { | ||
7842 | + float: left; | ||
7843 | +} | ||
7844 | + | ||
7841 | .help-block:before { | 7845 | .help-block:before { |
7842 | content: ''; | 7846 | content: ''; |
7843 | width: 20px; | 7847 | width: 20px; |