Переносы строк в сниппете
        Вопрос к знатокам: подскажите, пожалуйста. Есть вот такой самописный сниппет:
    
    
                                                                                
            <?php
$info = explode(";", $_GET[info]);
$bid=$info[0];
$summ=$info[1];
$message=$info[2];
$akcept=$info[3];
$avans=$info[4];
$pr=$info[5];
$ou=$info[6];
$bg44=$info[7];
$bg223=$info[8];
$com=$info[9];
$no=$info[10];
$time=$info[11];
$result='Банк: '.$bank.'\r\n '.
        'Сумма гарантии: '.$summ.'\r\n '.
        'Срок: '.$time.'\r\n '.
        'Комиссия: '.$rate.'\r\n '.
        'Р/c: '.$message.'\r\n '.
        'Безакцептное списание: '.$akcept.'\r\n '.
        'Аванс: '.$avans.'\r\n\r\n '.
        'Обеспечение: '.$pr.'\r\n '.
        'Особые условия: '.$ou.'\r\n '.
        '44-ФЗ: '.$bg44.'\r\n '.
        '2232-ФЗ: '.$bg223.'\r\n '.
        'Коммерческие: '.$com.'\r\n '.
        'Фонд капремонта: '.$no;
return $result;В итоге в письме приходить вот такая строка:Банк: \r\n Сумма гарантии: 0.05\r\n Срок: да\r\n Комиссия: \r\n Р/c: Банк Солидарность (экспресс)\r\n Безакцептное списание: с открытием\r\n Аванс: да\r\n\r\n Обеспечение: нет\r\n Особые условия: поручительство\r\n 44-ФЗ: Рассрочка платежа, премия до 12 мес. \r\n 2232-ФЗ: да\r\n Коммерческие: да\r\n Фонд капремонта: даКак написать чтобы были переносы строк?    Комментарии: 16
return str_replace('\r\n',"\r\n",$result);            
                Спасибо! Теперь приходит так:
                    Банк: ' 'Сумма гарантии: 0.0518 Срок: нет Комиссия: Р/c: ОК банк Безакцептное списание: без открытия Аванс: да, без К Обеспечение: да, К=1,25 Особые условия: без обеспечения 44-ФЗ: Особые условия по шаблону заказчика 2232-ФЗ: да Коммерческие: да Фонд капремонта: нетА как сделать чтобы вот такой вид получился:Банк: ' 'Сумма гарантии: 0.0518
Срок: нет 
Комиссия: Р/c
.......            
                Если вы отправляете письмо своей функцией, укажите Content-type: text/plain.
По поводу переносов строк (php.net): «В отличие от синтаксиса двойных кавычек и heredoc, переменные и управляющие последовательности для специальных символов, заключенных в одинарные кавычки, не обрабатываются.»
                    По поводу переносов строк (php.net): «В отличие от синтаксиса двойных кавычек и heredoc, переменные и управляющие последовательности для специальных символов, заключенных в одинарные кавычки, не обрабатываются.»
                Письмо отправляется сниппетом AjaxForm.            
                    
                Куда возвращает сниппет свой результат? В textarea?            
                    
                В input:
                    <input type="hidden" id="info" name="info" value="[[!getInfo?]]" placeholder="" />            
                Замените эту строчку на:
— в инпутах отсутствует возможность переноса строки.
                    <textarea id="info" name="info" style="display: none;">
[[!getInfo]]
</textarea>— в инпутах отсутствует возможность переноса строки.
                Сделала, на самой странице если не скрывать textarea, то показывает с переносами:
а в письме все равно приходит строчкой…
            
                    
а в письме все равно приходит строчкой…
                Мм… у вас, случайно, не прописан параметр stripTags для Info?
Приложите, пожалуйста, код вызова AjaxForm.
                    Приложите, пожалуйста, код вызова AjaxForm.
                Для info не писала ничего такого (только оставила вашу поправку return str_replace('\r\n',"\r\n",$result);). Код сниппета в посте приведен полностью.
Вот вызов:
                    Вот вызов:
[[!AjaxForm?
	&snippet=`FormIt`
	&emailTpl=`email_tpl`
	&form=`mytpl.AjaxForm`
	&hooks=`email`
	&emailSubject=`Заявка с сайта на получение банковской гарантии`
	&emailTo=`web@fksrf.pro`
	&validate=`name:required,email:required`
	&validationErrorMessage=`В форме содержатся ошибки!`
	&successMessage=`Сообщение успешно отправлено`
]]Чанк mytpl.AjaxForm:<form action="" method="post" class="ajax_form af_example form-horizontal">
	<div class="control-group">
		<label class="control-label" for="af_name">[[%af_label_name]]</label>
		<div class="controls">
		    <textarea id="info" name="info" style="display:block">[[!getInfo?]]</textarea>
			<input type="text" id="af_name" name="name" value="[[+fi.name]]" placeholder="" class="span4" />
			<span class="error_name">[[+fi.error.name]]</span>
		</div>
	</div>
	<div class="control-group">
		<label class="control-label" for="af_email">[[%af_label_email]]</label>
		<div class="controls">
			<input type="email" id="af_email" name="email" value="[[+fi.email]]" placeholder="" class="span4" />
			<span class="error_email">[[+fi.error.email]]</span>
		</div>
	</div>
	<div class="control-group">
		<label class="control-label" for="af_message">[[%af_label_message]]</label>
		<div class="controls">
			<textarea id="af_message" name="message" class="span4" rows="5">[[+fi.message]]</textarea>
			<span class="error_message">[[+fi.error.message]]</span>
		</div>
	</div>
	<div class="control-group">
		<div class="controls">
				<button type="submit" class="btn btn-primary">[[%af_submit]]</button>
		</div>
	</div>
	
	[[+fi.success:is=`1`:then=`
		<div class="alert alert-success">[[+fi.successMessage]]</div>
	`]]
	[[+fi.validation_error:is=`1`:then=`
		<div class="alert alert-danger">[[+fi.validation_error_message]]</div>
	`]]
</form>            
                Чтобы переносы сохранялись и в письме, можно использовать тег pre.
Просто оберни в него текст с переносами — и он так и отобразится.
                    Просто оберни в него текст с переносами — и он так и отобразится.
                А где именно? В сниппете где формируется нужный текст теги не работают.            
                    
                В шаблоне с письмом, где нужно соблюдать форматирование, или даже в самом сниппете:
                    return '<pre>'.str_replace('\r\n',"\r\n",$result).'</pre>';            
                В самом сниппете не срабатывает. А в шаблоне с письмом не получится, потому что все данные заносятся в один параметр, т.е. на выходе есть плейсхолдер info и в нем вся информация сразу. 
                    <p>Дополнительные данные: [[+info]]</p>            
                Прям нереальная проблема, понятно.
                    <p>Дополнительные данные:
<pre>[[+info]]</pre>
</p>            
                уже догадалась… спасибо
(не вернулась еще в рабочий ритм)
                    (не вернулась еще в рабочий ритм)
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.