Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/header.php");
- $APPLICATION->SetTitle("Регистрация сертифицирующего органа");
- //Добавление офисов
- if (isset($_POST['form_send'])) {
- $message = '';
- if (CModule::IncludeModule("iblock")) {
- $CIBlockSection = new CIBlockSection;
- $sectionArray = array(
- 'IBLOCK_ID' => BxClass::OFFICE_IBLOCK_ID,
- 'IBLOCK_CODE' => BxClass::OFFICE_IBLOCK_CODE,
- 'NAME' => $USER->GetLogin(),
- 'CHECK_PERMISSIONS' => 'N',
- );
- $section_result = $CIBlockSection->GetList(array(), $sectionArray);
- if ($section_result->SelectedRowsCount() != 0) {
- $section_id = $section_result->Fetch();
- foreach ($_POST['office'] as $office) {
- $officeArray = array(
- 'IBLOCK_ID' => BxClass::OFFICE_IBLOCK_ID,
- 'IBLOCK_SECTION_ID' => $section_id['ID'],
- 'NAME' => BxClass::mb_ucfirst($office['city']) . ' ' . BxClass::mb_ucfirst($office['street']),
- 'PROPERTY_VALUES' => array(
- 'city' => BxClass::mb_ucfirst($office['city']),
- 'street' => BxClass::mb_ucfirst($office['street']),
- 'phones' => $office['phones'],
- 'main' => ((int)$office['main'] ? '14' : false),
- ),
- );
- $CIBlockElement = new CIBlockElement;
- if (!(int)$office['id']) {
- if($CIBlockElement->Add($officeArray)) {
- $message = '<p style="color: green; padding-bottom: 20px;">Данные успешно обновлены, <a href="/">перейти на главную</a></p>';
- }
- } else {
- if($CIBlockElement->Update($office['id'], $officeArray)) {
- $message = '<p style="color: green; padding-bottom: 20px;">Данные успешно обновлены, <a href="/">перейти на главную</a></p>';
- }
- }
- }
- } else {
- $CIBlockSection->Add($sectionArray);
- }
- }
- }
- //Выборка офисов
- if (CModule::IncludeModule("iblock")) {
- $CIBlockSection = new CIBlockSection;
- $sectionArray = array(
- 'IBLOCK_ID' => BxClass::OFFICE_IBLOCK_ID,
- 'IBLOCK_CODE' => BxClass::OFFICE_IBLOCK_CODE,
- 'NAME' => $USER->GetLogin(),
- 'CHECK_PERMISSIONS' => 'N',
- );
- $section_result = $CIBlockSection->GetList(array(), $sectionArray);
- if ($section_result->SelectedRowsCount() != 0) {
- $section_array = $section_result->Fetch();
- if ((int)$section_array['ID']) {
- $officeFilter = array(
- 'IBLOCK_ID' => BxClass::OFFICE_IBLOCK_ID,
- 'SECTION_ID' => $section_array['ID']
- );
- $office_result = CIBlockElement::GetList(array('PROPERTY_main' => 'DESC'), $officeFilter, false, false, array('IBLOCK_ID', 'ID', 'NAME', 'PROPERTY_city', 'PROPERTY_street', 'PROPERTY_phones', 'PROPERTY_main'));
- while($office_tmp = $office_result->GetNext()) {
- $performer_offices[] = $office_tmp;
- }
- // debug($performer_offices);
- }
- }
- }
- $city = BxClass::getCityArray();
- ?>
- <div class="body-section transparent-bg">
- <div class="w-container body-container">
- <div class="content-container mid">
- <div class="w-form request-form-container customer-reg">
- <h1 class="content-title customer-reg">Укажите все ваши офисы</h1>
- <span class="content-title">Головной офис</span><br/><br/>
- <?= (!empty($message) ? $message : ''); ?>
- <form method="post">
- <?php if(is_array($performer_offices)):
- $i = 0;
- ?>
- <?php foreach($performer_offices as $performer_office):
- if((int)$performer_office['PROPERTY_MAIN_ENUM_ID']):?>
- <div class="office">
- <div class="form-row">
- <label class="form-label customer-reg" for="">Город:</label>
- <select name="office[<?=$i?>][city]" class="w-input form-input customer-reg" required="required"/>
- <?php foreach($city as $value):?>
- <option <?php echo($performer_office['PROPERTY_CITY_VALUE'] == $value ? 'selected' : '')?> value="<?=$value?>"><?=$value?></option>
- <?php endforeach; ?>
- </select>
- </div>
- <div class="form-row">
- <label class="form-label customer-reg" for="">Адрес:</label>
- <input name="office[<?=$i?>][street]" size="30" value="<?=$performer_office['PROPERTY_STREET_VALUE']?>" class="w-input form-input customer-reg"
- required="required"/>
- </div>
- <div class="form-row">
- <label class="form-label customer-reg" for="">Телефон(ы):</label>
- <input name="office[<?=$i?>][phones]" size="30" value="<?=$performer_office['PROPERTY_PHONES_VALUE']?>" class="w-input form-input customer-reg"
- required="required"/>
- </div>
- <input type="hidden" name="office[<?=$i?>][main]" value="1">
- <input type="hidden" name="office[<?=$i?>][id]" value="<?=$performer_office['ID']?>">
- </div>
- <?php else: ?>
- <div class="office">
- <div class="form-row">
- <label class="form-label customer-reg" for="">Город:</label>
- <input name="office[<?=$i?>][city]" size="30" value="<?=$performer_office['PROPERTY_CITY_VALUE']?>" class="w-input form-input customer-reg green-bg" />
- </div>
- <div class="form-row">
- <label class="form-label customer-reg" for="">Адрес:</label>
- <input name="office[<?=$i?>][street]" size="30" value="<?=$performer_office['PROPERTY_STREET_VALUE']?>" class="w-input form-input customer-reg green-bg" />
- </div>
- <div class="form-row">
- <label class="form-label customer-reg" for="">Телефон(ы):</label>
- <input name="office[<?=$i?>][phones]" size="30" value="<?=$performer_office['PROPERTY_PHONES_VALUE']?>" class="w-input form-input customer-reg green-bg" />
- </div>
- <input type="hidden" name="office[<?=$i?>][main]" value="0">
- <input type="hidden" class="office_id" name="office[<?=$i?>][id]" value="<?=$performer_office['ID']?>">
- <a href="javascript:void(0)" class="deleteOffice">Удалить офис</a>
- </div>
- <?php endif;
- $i++;
- ?>
- <?php endforeach; ?>
- <?php else:?>
- <div class="office">
- <div class="form-row">
- <label class="form-label customer-reg" for="">Город:</label>
- <select name="office[0][city]" class="w-input form-input customer-reg" required="required"/>
- <?php if(count($city) > 0) {
- foreach($city as $value):?>
- <option value="<?=$value?>"><?=$value?></option>
- <?php endforeach;
- }
- ?>
- </select>
- </div>
- <div class="form-row">
- <label class="form-label customer-reg" for="">Адрес:</label>
- <input name="office[0][street]" size="30" class="w-input form-input customer-reg"
- required="required"/>
- </div>
- <div class="form-row">
- <label class="form-label customer-reg" for="">Телефон(ы):</label>
- <input name="office[0][phones]" size="30" class="w-input form-input customer-reg"
- required="required"/>
- </div>
- <input type="hidden" name="office[0][main]" value="1">
- <input type="hidden" name="office[0][id]" value="">
- </div>
- <?php endif;?>
- <div>
- <a href="javascript:void(0)" id="add" style="color: #2c8600; float: left;">Добавить еще
- офис</a>
- </div>
- <?php if(count($performer_offices) != 0):?>
- <input type="submit" class="w-inline-block button form form-button on-main green" name="form_send"
- value="Обновить"/>
- <?php else: ?>
- <input type="submit" class="w-inline-block button form form-button on-main green" name="form_send"
- value="Начать работу"/>
- <?php endif;?>
- </form>
- <script type="template" data-template="form-item">
- <div data-form-item="{id}">
- <div class="office">
- <div data-form-item="{id}">
- <div class="form-row">
- <label class="form-label customer-reg" for="">Город:</label>
- <input data-form-item-city name="office[{id}][city]" size="30" class="w-input form-input customer-reg green-bg"/>
- </div>
- <div class="form-row">
- <label class="form-label customer-reg" for="">Адрес:</label>
- <input name="office[{id}][street]" size="30" class="w-input form-input customer-reg green-bg"/>
- </div>
- <div class="form-row">
- <label class="form-label customer-reg" for="">Телефон(ы):</label>
- <input name="office[{id}][phones]" size="30" class="w-input form-input customer-reg green-bg"/>
- </div>
- <a href="" class="remOfficeElement">Удалить офис</a>
- <input type="hidden" name="office[' + cnt_offices + '][main]" value="0">
- </div>
- </div>
- </div>
- </script>
- <script type="template" data-template="form-item-city">
- <select name="office[{id}][city]">
- <?php if(count($city) > 0) {
- foreach($city as $value):?>
- <option value="<?=$value?>"><?=$value?></option>
- <?php endforeach;
- }
- ?>
- </select>
- </script>
- <script>
- 'use strict';
- var view = {
- templates: {},
- getTemplate: function(template) {
- if (!this.templates[template]) {
- this.templates[template] = document.querySelector('script[type="template"][data-template="' + template + '"]').innerHTML;
- }
- return this.templates[template];
- },
- render: function(template, data) {
- var i,
- regex;
- if (typeof data !== 'object') {
- data = {};
- }
- template = this.getTemplate(template);
- for (i in data) {
- regex = new RegExp('{' + i + '}', 'g');
- template = template.replace(regex, data[i]);
- }
- return template;
- },
- renderDom: function(template, data) {
- return $(this.render(template, data))[0];
- }
- };
- (function() {
- var form = document.getElementById('form'),
- items = form.querySelectorAll('[data-form-item]'),
- add = document.getElementById('add'),
- lastId = 0,
- prepare,
- i;
- prepare = function(item) {
- var id = parseInt(item.dataset.formItem),
- city = item.querySelector('[data-form-item-city]'),
- citySelect = view.renderDom('form-item-city', {
- id: id
- });
- id > lastId ? lastId = id : null;
- citySelect.value = city.value;
- item.insertBefore(citySelect, city);
- item.removeChild(city);
- };
- for (i = items.length - 1; i >= 0; i--) {
- prepare(items[i]);
- }
- add.onclick = function(event) {
- event.preventDefault();
- var item = view.renderDom('form-item', {
- id: ++lastId
- });
- form.appendChild(item);
- prepare(item);
- };
- })();
- </script>
- <script>
- $('#addOffice').click(function () {
- // var cnt_offices = ++$('.office').length;
- // var html =
- // '<div class="office">' +
- // '<div class="form-row">' +
- // '<label class="form-label customer-reg" for="">Город:</label>' +
- // '<input name="office[' + cnt_offices + '][city]" size="30" class="w-input form-input customer-reg green-bg"/>' +
- // '</div>' +
- // '<div class="form-row">' +
- // '<label class="form-label customer-reg" for="">Адрес:</label>' +
- // '<input name="office[' + cnt_offices + '][street]" size="30" class="w-input form-input customer-reg green-bg" />' +
- // '</div>' +
- // '<div class="form-row">' +
- // '<label class="form-label customer-reg" for="">Телефон(ы):</label>' +
- // '<input name="office[' + cnt_offices + '][phones]" size="30" class="w-input form-input customer-reg green-bg" />' +
- // '</div>' +
- // '<a href="" class="remOfficeElement">Удалить офис</a>' +
- // '<input type="hidden" name="office[' + cnt_offices + '][main]" value="0">' +
- // '</div>';
- // $(html).insertAfter($('.office').last());
- // });
- $(document).on("click", '.remOfficeElement', function() {
- $(this).parent().remove();
- })
- $('.deleteOffice').on('click', function(event) {
- var $this = $(this),
- office_id = $this.siblings('.office_id').val();
- event.preventDefault();
- if(office_id) {
- $.post('./delete.php', {id: office_id}, function(response) {
- if (response.success) {
- $this.parent().remove();
- }
- });
- }
- })
- </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement