Задать вопрос
  • Как добавить Тип поля: [file] Файл к самописной вебформе Bitrix?

    @SnakeSanders Автор вопроса
    template.php пока получилось сделать так за неимением более правильного или элегантного решения.

    <? if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); ?>
    <style>
    .row.write-us-row .col-lg-12.col-xl-4.pismo:last-child {
        flex: 0 0 100%;
    margin-top: 30px;
        max-width: 100%;
    }
    </style>
        <div class="section-header">
            <h2 class="sub-header">Письмо с сайта</h2><a class="main-link close-btn">закрыть</a>
        </div>
        <span>В течение суток мы на него обязательно ответим</span>
        <?=str_replace("<form", '<form class="row" ', $arResult["FORM_HEADER"]);?>
    	<div class="col-lg-12 col-xl-9">
            <div class="row write-us-row">
    <?
    	
    	$arErrors = array();
    	foreach ($arResult["QUESTIONS"] as $FIELD_SID => $arQuestion) {
    	    
    	    //	print_r($arQuestion['STRUCTURE']);
    		$name = "form_" . $arQuestion['STRUCTURE'][0]['FIELD_TYPE'] . "_" . $arQuestion['STRUCTURE'][0]['ID'];
            $pl = $arQuestion["CAPTION"].(($arQuestion["REQUIRED"] == "N")?' *':'');
            $classAlarm = (is_array($arResult["FORM_ERRORS"]) && array_key_exists($FIELD_SID, $arResult['FORM_ERRORS'])) ? "input-text-wrapper": "";
    
    		if ($arQuestion['STRUCTURE'][0]['FIELD_TYPE'] == 'hidden') { 
    				echo $arQuestion["HTML_CODE"];
    		} elseif ($arQuestion['STRUCTURE'][0]['FIELD_TYPE'] == 'textarea') {
                echo  '<div class="'.$classAlarm.'"><textarea class="last-input" name="'.$name.'" placeholder="'.$pl.'">'.$arResult["arrVALUES"][$name].'</textarea></div>';
    		} elseif ($arQuestion['STRUCTURE'][0]['FIELD_TYPE'] == 'file') {
                echo  '<div class="'.$classAlarm.'"><input type="file" value="'.$arResult["arrVALUES"][$name].'" name="'.$name.'" placeholder="'.$pl.'" >'.$arResult["arrVALUES"][$name].' </div>';
    	}	else {	?>
    
    
    <? //echo'<pre>';print_r($arQuestion);echo'</pre>'; ?>
    
                    <div class="col-lg-12 col-xl-4 pismo"><div class="<?=$classAlarm?>">
    				<input type="text" name="<?= $name ?>"
    				   class="<?=($arQuestion['STRUCTURE'][0]['ID'] == 13) ? ' phone-mask' : '' ?>"
    				   value="<?= $arResult["arrVALUES"][$name] ?>" size="0" placeholder="<?= $pl ?>">
                    </div>
                    </div>
                    
                    
                
    			<?
    			if (is_array($arResult["FORM_ERRORS"]) && array_key_exists($FIELD_SID, $arResult['FORM_ERRORS'])) { 
    				$arErrors[] = $arQuestion["CAPTION"];
    			}
    		}
    
    	}
    
    	if ($arResult["isUseCaptcha"] == "N") { ?>
    		<b><?= GetMessage("FORM_CAPTCHA_TABLE_TITLE") ?></b>
    
    		<input type="hidden" name="captcha_sid" value="<?= htmlspecialcharsbx($arResult["CAPTCHACode"]); ?>"/>
    		<img src="/bitrix/tools/captcha.php?captcha_sid=<?= htmlspecialcharsbx($arResult["CAPTCHACode"]); ?>"
    			 width="180" height="40"/>
    		<?= GetMessage("FORM_CAPTCHA_FIELD_TITLE") ?><?= $arResult["REQUIRED_SIGN"]; ?>
    		<input type="text" name="captcha_word" size="30" maxlength="50" value="" />
    
    		<?
    	}
    	?>
            </div>
    
            <div class="col-sm-12  col-xl-9 margin-bottom-50"><b style="color:red;font-size:24px;">*</b> - обозначены обязательные пункты для заполнения.</div>
    
    
    	</div>
    
        <div class="col-lg-12 col-xl-3 btn-container">
            <input class="main-btn" <?= (intval($arResult["F_RIGHT"]) < 10 ? "disabled=\"disabled\"" : ""); ?>
                   type="submit" name="web_form_submit"
                   value="<?= htmlspecialcharsbx(strlen(trim($arResult["arForm"]["BUTTON"])) <= 0 ? GetMessage("FORM_ADD") : $arResult["arForm"]["BUTTON"]); ?>"/>
        </div>
    
    	<?=$arResult["FORM_FOOTER"] ?>
    	<div class="row text-wrapper">
    		<div class="col-sm-12 col-md-6">вся предоставленная персональная информация будет<br>конфиденциальна и не будет передана третьим лицам</div>
    	</div>
    
    	<?$APPLICATION->IncludeComponent("bitrix:main.include","",Array(
    			"AREA_FILE_SHOW" => "file",
    			"PATH" => "/include_area/block-social-btn.php",
    			"AREA_FILE_SUFFIX" => "inc",
    			"AREA_FILE_RECURSIVE" => "Y",
    			"EDIT_TEMPLATE" => "standard.php"
    		)
    	);?>
    	<? /* 	<p>
    			<? if (!empty($arErrors)) { echo "Не заполнены обязательные поля: <br>".implode("<br>", $arErrors); }?>
    		</p>
    	*/	?>
    
    <script>
        $(document).ready(function () {
            $('.phone-mask').mask('+7 (999) 999-99-99');
            <? if ($arResult["isFormNote"] == "Y") { ?>
            $.magnificPopup.open({
                items: {
                    src: $('#thanks'),
                    type: 'inline'
                }
            });
            <? } ?>
        });
    </script>