Array
(
[id] => 70
[type] => document
[contentType] => text/html
[pagetitle] => Плитка тротуарная “2 доски” 30х30х3 см
[longtitle] =>
[description] =>
[alias] => duplicate-of-plitka-trotuarnaya-2-doski-30-sm
[link_attributes] =>
[published] => 1
[pub_date] => 0
[unpub_date] => 0
[parent] => 13
[isfolder] =>
[introtext] => Тротуарная плитка "2 доски" имеет привлекательный нейтральный внешний вид, что дает ей возможность сочетаться со многими архитектурными и ландшафтными конструкциями. При ее устройстве создается эффект мощения доской. Узор, образуемый плиткой, похож на рисунок щитового паркета, что при сочетании разных по цвету плит позволяет создать геометрический орнамент.
[content] => <p>Тротуарная плитка "2 доски" имеет привлекательный нейтральный внешний вид, что дает ей возможность сочетаться со многими архитектурными и ландшафтными конструкциями. При ее устройстве создается эффект мощения доской. Узор, образуемый плиткой, похож на рисунок щитового паркета, что при сочетании разных по цвету плит позволяет создать геометрический орнамент. </p>
[richtext] => 1
[template] => 8
[menuindex] => 9
[searchable] => 1
[cacheable] => 1
[createdby] => 1
[createdon] => 2019-02-13 15:31:38
[editedby] => 24
[editedon] => 2020-03-26 12:38:32
[deleted] =>
[deletedon] => 0
[deletedby] => 0
[publishedon] => 2019-02-13 15:31:00
[publishedby] => 1
[menutitle] =>
[donthit] =>
[privateweb] =>
[privatemgr] =>
[content_dispo] => 0
[hidemenu] =>
[class_key] => msProduct
[context_key] => web
[content_type] => 1
[uri] => produktsiya/duplicate-of-plitka-trotuarnaya-2-doski-30-sm
[uri_override] => 1
[hide_children_in_tree] => 0
[show_in_tree] => 0
[properties] =>
[article] =>
[price] => 400
[old_price] => 0
[weight] => 5.5
[image] => /assets/images/products/70/2-doski.jpg
[thumb] => /assets/images/products/70/small/2-doski.jpg
[vendor] => 0
[made_in] =>
[new] =>
[popular] =>
[favorite] =>
[tags] =>
[color] =>
[size] =>
[source] => 2
[seo_title] =>
[seo_h1] =>
[seo_description] =>
[is_calc] => Array
(
[0] => 1
)
[is_calc.id] => 1
[is_calc.key] => is_calc
[is_calc.caption] => Калькулятор
[is_calc.description] => Если "Да", то включить калькулятор
[is_calc.measure_unit] =>
[is_calc.category] => 15
[is_calc.type] => combo-boolean
[is_calc.properties] =>
[is_calc.product_id] => 70
[is_calc.value] => 1
[is_calc.category_name] => Характеристики
[is_counter] => Array
(
[0] => м2
)
[is_counter.id] => 2
[is_counter.key] => is_counter
[is_counter.caption] => Единица измерения
[is_counter.description] =>
[is_counter.measure_unit] =>
[is_counter.category] => 15
[is_counter.type] => combo-options
[is_counter.properties] =>
[is_counter.product_id] => 70
[is_counter.value] => м2
[is_counter.category_name] => Характеристики
[char_gost] => Array
(
[0] => Серия: ГОСТ 17608-91
)
[char_gost.id] => 3
[char_gost.key] => char_gost
[char_gost.caption] => ГОСТ
[char_gost.description] =>
[char_gost.measure_unit] =>
[char_gost.category] => 15
[char_gost.type] => textfield
[char_gost.properties] =>
[char_gost.product_id] => 70
[char_gost.value] => Серия: ГОСТ 17608-91
[char_gost.category_name] => Характеристики
[char_arm] => Array
(
[0] => нет
)
[char_arm.id] => 4
[char_arm.key] => char_arm
[char_arm.caption] => Армирование
[char_arm.description] =>
[char_arm.measure_unit] =>
[char_arm.category] => 15
[char_arm.type] => combo-options
[char_arm.properties] =>
[char_arm.product_id] => 70
[char_arm.value] => нет
[char_arm.category_name] => Характеристики
[char_class] => Array
(
[0] => В30
)
[char_class.id] => 5
[char_class.key] => char_class
[char_class.caption] => Класс бетона
[char_class.description] =>
[char_class.measure_unit] =>
[char_class.category] => 15
[char_class.type] => combo-options
[char_class.properties] =>
[char_class.product_id] => 70
[char_class.value] => В30
[char_class.category_name] => Характеристики
[type_product] => Array
(
[0] => Плитка
)
[type_product.id] => 8
[type_product.key] => type_product
[type_product.caption] => Тип товара
[type_product.description] =>
[type_product.measure_unit] =>
[type_product.category] => 15
[type_product.type] => combobox
[type_product.properties] => {"values":["\u041f\u043b\u0438\u0442\u043a\u0430","\u0411\u043e\u0440\u0434\u044e\u0440","\u0414\u0440\u0443\u0433\u043e\u0435"]}
[type_product.product_id] => 70
[type_product.value] => Плитка
[type_product.category_name] => Характеристики
[size_H] => Array
(
[0] => 3см
)
[size_H.id] => 9
[size_H.key] => size_H
[size_H.caption] => Размер В
[size_H.description] =>
[size_H.measure_unit] => см
[size_H.category] => 15
[size_H.type] => textfield
[size_H.properties] =>
[size_H.product_id] => 70
[size_H.value] => 3см
[size_H.category_name] => Характеристики
[size_W] => Array
(
[0] => 30см
)
[size_W.id] => 10
[size_W.key] => size_W
[size_W.caption] => Размер Д
[size_W.description] =>
[size_W.measure_unit] => см
[size_W.category] => 15
[size_W.type] => textfield
[size_W.properties] =>
[size_W.product_id] => 70
[size_W.value] => 30см
[size_W.category_name] => Характеристики
[size_SH] => Array
(
[0] => 30см
)
[size_SH.id] => 11
[size_SH.key] => size_SH
[size_SH.caption] => Размер Ш
[size_SH.description] =>
[size_SH.measure_unit] => см
[size_SH.category] => 15
[size_SH.type] => textfield
[size_SH.properties] =>
[size_SH.product_id] => 70
[size_SH.value] => 30см
[size_SH.category_name] => Характеристики
[char_weight] => Array
(
[0] => 5.5
)
[char_weight.id] => 12
[char_weight.key] => char_weight
[char_weight.caption] => Вес (кг)
[char_weight.description] =>
[char_weight.measure_unit] => кг
[char_weight.category] => 15
[char_weight.type] => numberfield
[char_weight.properties] =>
[char_weight.product_id] => 70
[char_weight.value] => 5.5
[char_weight.category_name] => Характеристики
[vendor.id] =>
[vendor.name] =>
[vendor.resource] => 0
[vendor.country] =>
[vendor.logo] =>
[vendor.address] =>
[vendor.phone] =>
[vendor.fax] =>
[vendor.email] =>
[vendor.description] =>
[vendor.properties] =>
[_content] => {include 'header'}
<div id="msProduct" class="main-content">
<div style="display: none;">
{$_modx->resource|print}
</div>
<div class="row">
<div class="col-xl-3 col-lg-4">
{include 'sidebar'}
</div>
<div class="col-xl-9 col-lg-8">
{include 'breadCrumbs'}
<div class="content">
<div class="sub-header">
<h1 class="text-center">{$_modx->resource.seo_h1?$_modx->resource.seo_h1:$_modx->resource.pagetitle}</h1>
</div>
<div class="content-body">
<div class="product-primary">
<div class="row">
<div class="col-xl-5 col-lg-12">
<div class="product-left">
<div class="product-gallery">
<div class="product-content tab-content">
{'!msGallery'|snippet}
</div>
</div>
<!-- Форма отпраки товара в корзину -->
<div id="appGetCart" class="product-left_info">
{ignore}
<form class="ms2_form" method="post">
<input type="hidden" name="id" value="70"/>
<div class="product-config text-center">
<div class="product-price">
<strong>Стоимость:</strong> <span class="text-orange font-weight-bold">{{ price }}</span> руб/{/ignore}{$_modx->resource['is_counter'][0]}{ignore}
</div>
<div class="product-count">
<div class="label">Количество:</div>
<input id="product_price" type="number" name="count" value="1" v-model="count" class="my_count" min="0"/>
</div>
</div>
<div class="product-action text-center">
<div class="total-price">
<strong>Всего к оплате:</strong><br/>
<span class="text-orange font-weight-bold">{{ price * count }}</span> <i class="fas fa-ruble-sign"></i>
</div>
<button type="submit" name="ms2_action" value="cart/add" class="btn btn-primary">
<svg width='25' height='24' class='svg-icon icon-left'><use xlink:href='assets/template/icons/icons.svg#cart_2'/></svg>
В корзину
</button>
</div>
</form>
{/ignore}
</div>
{ignore}
<script>
var app = new Vue({
el: '#appGetCart',
data: {
count: 1,
price: {/ignore}{$_modx->resource.price}{ignore}
}
})
</script>
<script>
$(".my_count").on("change blur keyup focus", function(){
if($(this).val()<=0) {
$(this).val("1");
}
})
</script>
{/ignore}
<!-- /Форма отпраки товара в корзину -->
</div>
</div>
<div class="col-xl-7 col-lg-12">
<div class="desc">
{$id|resource:'content'}
</div>
<div class="characters mt-25">
<h3>Характеристики</h3>
{'msProductOptions'|snippet:[
'tpl' => 'tpl__product_options',
'ignoreOptions' => 'is_calc, type_product, is_counter',
'sortby' => 'menuindex'
]}
{*'!msProductOptions'|snippet*}
</div>
</div>
</div>
</div>
{if ($_modx->resource.is_calc is not empty)}
<hr class="fluid"/>
<!-- Calculator -->
<div id="appCalculator">
<div class="product-calc mb-5">
<div class="title text-center">Рассчитать стоимость по площади</div>
<div class="row">
<div class="col-xl-9 col-lg-12">
<div class="calc-primary">
<div class="calc-item">
<div class="label">Ширина <br>участка, м</div>
<input name="width"
type="number"
min="0"
v-model="width"
v-on:input="area = width * lenght">
<div class="variants">
<span>и</span>
<i class="fas fa-chevron-down"></i>
<span>или</span>
</div>
</div>
<div class="calc-item">
<div class="label">Длина <br>участка, м</div>
<input name="lenght"
type="number"
min="0"
v-model="lenght"
v-on:input="area = width * lenght">
</div>
<div class="calc-item">
<div class="label">Наименование плитки</div>
<select v-model="selected">
<option v-for="option in options" :value="option">
{ignore}
{{ option.text }}
{/ignore}
</option>
</select>
</div>
</div>
<div class="calc-secondary">
<div class="calc-item">
<div class="label">Площадь участка, м2</div>
<input name="area"
type="number"
min="0"
v-model="area">
</div>
<div class="calc-item d-block d-md-none">
<div class="label">Наименование плитки</div>
<select name="" id="">
<option value="Паутинка 300х300х30">Паутинка 300х300х30</option>
<option value="Паутинка 300х300х30">Паутинка 400х300х30</option>
</select>
</div>
<div class="calc-item">
<div class="label">Вид бордюра</div>
<select v-model="selected2">
<option v-for="option2 in options2" :value="option2">
{ignore}
{{ option2.text }}
{/ignore}
</option>
</select>
</div>
</div>
</div>
<div class="col-xl-3 col-lg-12">
<div class="calc-item">
<div class="label text-center">Бордюры</div>
<div class="border-config">
<!-- Checkbox top -->
<input type="checkbox"
class="border-checkbox"
data-pos="b-top"
name="top"
v-model="top"
true-value="1"
false-value="0">
<div class="border-block">
<!-- Checkbox left -->
<input type="checkbox"
class="border-checkbox"
data-pos="b-left"
name="left"
v-model="left"
true-value="1"
false-value="0">
<div class="element-border">
<svg width='100%' height='100%' class='svg-icon'>
<use xlink:href='assets/template/icons/icons.svg#border'/>
</svg>
<div class="b-left"></div>
<div class="b-top"></div>
<div class="b-bottom"></div>
<div class="b-right"></div>
</div>
<!-- Checkbox right -->
<input type="checkbox"
class="border-checkbox"
data-pos="b-right"
name="right"
v-model="right"
true-value="1"
false-value="0">
</div>
<!-- Checkbox bottom -->
<input type="checkbox"
class="border-checkbox"
data-pos="b-bottom"
name="bottom"
v-model="bottom"
true-value="1"
false-value="0">
</div>
</div>
</div>
</div>
</div>
<!-- /Calculator -->
<!-- Calculator Info -->
<div class="product-total">
<div class="row">
<div class="col-xl-5 col-md-6">
<div class="element">
<div class="element-body">
<div class="title text-center">
<h3>Итог расчета</h3>
</div>
<ul>
{ignore}
<li v-if="width != 0"><strong>Ширина участка:</strong> {{ width }} метров</li>
<li v-if="lenght != 0"><strong>Длина участка:</strong> {{ lenght }} метров</li>
<li><strong>Площадь мощения:</strong> {{ area }} м2</li>
<li><strong>Плитка:</strong> {{ selected.text }}</li>
<li><strong>Цена плитки:</strong> {{ selected.price }} руб/м2</li>
<li><strong>Бордюр:</strong> {{ selected2.text }}</li>
<li><strong>Цена бордюра:</strong> {{ selected2.price }} руб/шт</li>
{/ignore}
</ul>
</div>
{*
<div class="element-button">
<a href="/" class="btn btn-secondary d-block">Рассчитать</a>
</div>
*}
</div>
</div>
<div class="col-xl-7 col-md-6">
<div class="element fix">
{ignore}
<div class="element-body">
<div class="element-primary">
<div class="title text-center">
<h3>Итог общего расчета</h3>
</div>
<div class="total-body">
<div class="total-item">
<strong>Расчетное количество плитки: {{ area }} м2</strong><br/>
<strong>Стоимость:</strong> <span><span class="text-orange font-weight-bold">{{ getCost }}</span> руб.</span>
</div>
<div class="total-item">
<strong v-if="getCountBorder != Infinity">Расчетное количество бордюров: {{ getCountBorder }} шт</strong>
<strong v-else style="color: red;">Извините! Модератор допустил ошибку в настройках, мы исправим это быстрее, если вы сообщите нам.</strong><br/>
<strong>Стоимость:</strong> <span><span class="text-orange font-weight-bold">{{ getCostBorder }}</span> руб.</span>
</div>
</div>
</div>
<div class="total-summ text-center">
<strong>Итог:</strong> <span class="text-orange font-weight-bold">{{ getTotalCost }}</span> руб.
</div>
</div>
{/ignore}
{*
<div class="element-button">
<a href="/" class="btn btn-primary d-block">В корзину</a>
</div>
*}
</div>
</div>
</div>
</div>
</div>
<!--Список для Плиток-->
{'!msProducts'|snippet:[
'parents'=>'2',
'optionFilters'=>'{"type_product":"Плитка"}',
'tpl'=>'tpl_calc_option_item',
'toPlaceholder'=>'list_option_plitka',
'limit' => '100'
]}
<!-- Список для бордюров -->
{'!msProducts'|snippet:[
'parents'=>'2',
'optionFilters'=>'{"type_product":"Бордюр"}',
'tpl'=>'tpl_calc_option_item2',
'toPlaceholder'=>'list_option_border',
'limit' => '100'
]}
{*ignore*}
<script>
var calculator = new Vue({
el: '#appCalculator',
data() {
return {
item: '',
text1: 'Площадь: ',
text2: 'Колличество: ',
width: 0,
lenght: 0,
area: 0,
count: 0,
cost: 0,
top: 0,
left: 0,
right: 0,
bottom: 0,
perimeter: 0,
selected: { },
options: [
[[+list_option_plitka]]
],
selected2: { },
options2: [
[[+list_option_border]]
]
}
},
computed: {
getName1() {
return this.selected.text;
},
getArea() {
return this.width * this.lenght || 0;
},
getCost() {
return this.area / this.selected.area * this.selected.price || 0;
},
getPerimeter(){
if (this.area != 0){
this.perimeter = Number(this.top);
this.perimeter += Number(this.left);
this.perimeter += Number(this.right);
this.perimeter += Number(this.bottom);
return Math.ceil(Math.sqrt(this.area) * this.perimeter);
}
else return 0;
},
getCountBorder(){
return this.getPerimeter / this.selected2.size || 0;
},
getCostBorder(){
return this.getCountBorder * this.selected2.price || 0;
},
getTotalCost(){
return this.getCost + this.getCostBorder;
}
},
created() {
this.selected = this.options[0];
this.selected2 = this.options2[0];
}
});
</script>
{*/ignore*}
<!-- /Calculator Info-->
{/if}
</div>
</div>
</div>
</div>
</div>
{include 'footer'}
[_isForward] =>
)