Форматирование текста в шаблоне

Обсуждение вопросов и решений

Модератор: ykolesnikov

Ответить
ykolesnikov
OTRS Гуру
Сообщения: 3119
Зарегистрирован: 24 дек 2010, 09:27
Откуда: Череповец
Благодарил (а): 4 раза
Поблагодарили: 5 раз
Контактная информация:

Форматирование текста в шаблоне

Сообщение ykolesnikov » 08 ноя 2012, 10:06

Добрый день!
В разделе Howtos опубликована тема о создании шаблонов заявок - viewtopic.php?f=4&t=1395
Все здорово, работает.
Есть только маленький вопрос, для меня, как непрограммиста, неочевидный.
Следующим кодом в поле "Текст" заявки заносится некий текст:

Код: Выделить всё

<input type="hidden" name="Body" value="$Text{"BodySysblock"}"/>
Здесь BodySysblock любой пользовательский текст на английском, вернее латиницей, перевод и подстановка которого в поле осуществляется через файл локализации ru_custom.pm.
Теперь суть вопроса:
Текст неформатированный, непрерывная последовательность символов. А хотелось бы части этого текста выводить с новой строки, чтобы клиенту или агенту, создающему заявку в этой форме было легче дополнять содержание конкретными данными.
Например, BodySysblock в файле ru_custom.pm надо поставить в соответствие следующий текст:
Прошу обеспечить техническое сопровождение доклада мэра
Дата проведения:
Время проведения:
Место проведения:
Дополнительные требования к техническим средствам:

Внесением пробелов проблему не решить, т.к. разрешение экранов у разных клиентов/агентов может быть разное и текст поплывет.
Можно ли использовать какие-то специальные символы и какие, если можно в строке

Код: Выделить всё

$Self->{Translation}->{'BodySysblock'} = 'Бла-бла-бла...';
чтобы текст располагался как написано выше?
:oops:
С уважением Юрий Колесников
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая

merkushov
OTRS Бывалый
Сообщения: 310
Зарегистрирован: 25 окт 2012, 15:06
Откуда: Воронеж
Поблагодарили: 2 раза

Re: Форматирование текста в шаблоне

Сообщение merkushov » 08 ноя 2012, 12:22

При локализации через ru_Сustom.pm все "лишние" символы и элементы тэгов заменяются на безопасные, поэтому html код туда просто так не вставить.

Если текст с переводами строк нужен в обычном элементе <textarea> то достаточно поставить переводы строк в ru_Сustom.pm

Код: Выделить всё

$Self->{Translation}->{'BodySysblock'} = 'Прошу обеспечить техническое сопровождение доклада мэра
Дата проведения:
Время проведения:
Место проведения:
Дополнительные требования к техническим средствам:';
Как вариант, можно использовать html тэги в ru_Сustom.pm, но только если отображение будет в элемент RichText

Код: Выделить всё

<textarea id="RichText">$Text{"BodySysblock"}</textarea>
Меркушов Виктор, perl программист

ykolesnikov
OTRS Гуру
Сообщения: 3119
Зарегистрирован: 24 дек 2010, 09:27
Откуда: Череповец
Благодарил (а): 4 раза
Поблагодарили: 5 раз
Контактная информация:

Re: Форматирование текста в шаблоне

Сообщение ykolesnikov » 08 ноя 2012, 12:37

Спасибо, попробую завтра. Сегодня админ в отгуле, а у меня нет доступа на линуксовый сервер :evil:
С уважением Юрий Колесников
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая

masalexven
OTRS Новобранец
Сообщения: 22
Зарегистрирован: 06 ноя 2012, 15:57

Re: Форматирование текста в шаблоне

Сообщение masalexven » 08 ноя 2012, 14:15

merkushov писал(а):При локализации через ru_Сustom.pm все "лишние" символы и элементы тэгов заменяются на безопасные, поэтому html код туда просто так не вставить.

Если текст с переводами строк нужен в обычном элементе <textarea> то достаточно поставить переводы строк в ru_Сustom.pm

Код: Выделить всё

$Self->{Translation}->{'BodySysblock'} = 'Прошу обеспечить техническое сопровождение доклада мэра
Дата проведения:
Время проведения:
Место проведения:
Дополнительные требования к техническим средствам:';
У меня такая же проблема. Предложенный Вами вариант не отработал. Все пишется в 1 строку в заявке в тексте, хотя в ru_Custom.pm прописал как у Вас в несколько строк.
OTRS 3.1.11 ITSM 3.1.6 FreeBSD

merkushov
OTRS Бывалый
Сообщения: 310
Зарегистрирован: 25 окт 2012, 15:06
Откуда: Воронеж
Поблагодарили: 2 раза

Re: Форматирование текста в шаблоне

Сообщение merkushov » 08 ноя 2012, 16:58

У меня такая же проблема. Предложенный Вами вариант не отработал. Все пишется в 1 строку в заявке в тексте, хотя в ru_Custom.pm прописал как у Вас в несколько строк.
В шаблоне у вас вот так?

Код: Выделить всё

<textarea>$Text{"BodySysblock"}</textarea>
Меркушов Виктор, perl программист

yuri0001
OTRS Бывалый
Сообщения: 492
Зарегистрирован: 11 фев 2011, 20:25
Откуда: Череповец

Re: Форматирование текста в шаблоне

Сообщение yuri0001 » 08 ноя 2012, 17:36

merkushov писал(а):
У меня такая же проблема. Предложенный Вами вариант не отработал. Все пишется в 1 строку в заявке в тексте, хотя в ru_Custom.pm прописал как у Вас в несколько строк.
В шаблоне у вас вот так?

Код: Выделить всё

<textarea>$Text{"BodySysblock"}</textarea>
Простите за тупость, но куда все-таки должна вставляться последняя фраза - в ru_Custom.pm или в текст модуля .dtl?
Если не трудно, покажите код полностью. :oops:
С уважением
Ю. Колесников
OTRS 3.3.1, ITSM 3.3.1, SUSE 12, MySQL5

masalexven
OTRS Новобранец
Сообщения: 22
Зарегистрирован: 06 ноя 2012, 15:57

Re: Форматирование текста в шаблоне

Сообщение masalexven » 08 ноя 2012, 23:53

yuri0001 писал(а):
merkushov писал(а):
У меня такая же проблема. Предложенный Вами вариант не отработал. Все пишется в 1 строку в заявке в тексте, хотя в ru_Custom.pm прописал как у Вас в несколько строк.
В шаблоне у вас вот так?

Код: Выделить всё

<textarea>$Text{"BodySysblock"}</textarea>
Простите за тупость, но куда все-таки должна вставляться последняя фраза - в ru_Custom.pm или в текст модуля .dtl?
Если не трудно, покажите код полностью. :oops:
Присоединяюсь, на счет шаблона не понял, где именно там.
OTRS 3.1.11 ITSM 3.1.6 FreeBSD

merkushov
OTRS Бывалый
Сообщения: 310
Зарегистрирован: 25 окт 2012, 15:06
Откуда: Воронеж
Поблагодарили: 2 раза

Re: Форматирование текста в шаблоне

Сообщение merkushov » 09 ноя 2012, 10:27

Ну я не знаю как ещё доступнее объяснить... Воспользуйтесь описанием Создания шаблона заявок, который замечательно составил firebolt viewtopic.php?f=4&t=1395 Только в ru_Custom.pm смените локализацию ключа BodySysblock на строку с html тэгами

Код: Выделить всё

$Self->{Translation}->{'BodySysblock'} = 'Прошу вас произвести <br/>ремонт <strong>системного блока</strong> компьютера...';
ps: поддержка html тэгов для локализации в otrs нет. Это своеобразный хак только для полей формата RichText
Меркушов Виктор, perl программист

ykolesnikov
OTRS Гуру
Сообщения: 3119
Зарегистрирован: 24 дек 2010, 09:27
Откуда: Череповец
Благодарил (а): 4 раза
Поблагодарили: 5 раз
Контактная информация:

Re: Форматирование текста в шаблоне

Сообщение ykolesnikov » 09 ноя 2012, 10:27

Попробовал вставить в .dtl файл такую конструкцию

Код: Выделить всё

    <input type="hidden" name="Body" value="<textarea>$Text{"BodyPresentationSupport"}</textarea>"/>
Получается некошерно.
В поле Текст вставляется фрейм, в который надо вводить данные. Окошко фрейма минимального размера и чтобы что то ввести его надо раздвигать. При заполнении других полей оно очищается от вновь введенных данных. :cry:
С уважением Юрий Колесников
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая

masalexven
OTRS Новобранец
Сообщения: 22
Зарегистрирован: 06 ноя 2012, 15:57

Re: Форматирование текста в шаблоне

Сообщение masalexven » 09 ноя 2012, 10:32

merkushov писал(а):
У меня такая же проблема. Предложенный Вами вариант не отработал. Все пишется в 1 строку в заявке в тексте, хотя в ru_Custom.pm прописал как у Вас в несколько строк.
В шаблоне у вас вот так?

Код: Выделить всё

<textarea>$Text{"BodySysblock"}</textarea>
Попробовал сделать, как Вы предложили. В результате в тексте заявки как бы появляется отдельное окно с границами, внутри которого действительно сообщение в виде нескольких строк.
OTRS 3.1.11 ITSM 3.1.6 FreeBSD

ykolesnikov
OTRS Гуру
Сообщения: 3119
Зарегистрирован: 24 дек 2010, 09:27
Откуда: Череповец
Благодарил (а): 4 раза
Поблагодарили: 5 раз
Контактная информация:

Re: Форматирование текста в шаблоне

Сообщение ykolesnikov » 09 ноя 2012, 10:38

merkushov писал(а):Ну я не знаю как ещё доступнее объяснить... Воспользуйтесь описанием Создания шаблона заявок, который замечательно составил firebolt viewtopic.php?f=4&t=1395 Только в ru_Custom.pm смените локализацию ключа BodySysblock на строку с html тэгами

Код: Выделить всё

$Self->{Translation}->{'BodySysblock'} = 'Прошу вас произвести <br/>ремонт <strong>системного блока</strong> компьютера...';
ps: поддержка html тэгов для локализации в otrs нет. Это своеобразный хак только для полей формата RichText
Этим и пользуемся описанием. Что касается шаблонов, то все создается и работает на ура. :)
Вопрос именно в форматировании текста.
Попробуем Ваше второе предложение.
С уважением Юрий Колесников
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая

merkushov
OTRS Бывалый
Сообщения: 310
Зарегистрирован: 25 окт 2012, 15:06
Откуда: Воронеж
Поблагодарили: 2 раза

Re: Форматирование текста в шаблоне

Сообщение merkushov » 09 ноя 2012, 10:39

Ну вы даёте! Я видимо переоценил ваши знания в области html форматирования :)

<textarea> это самостоятельный тэг. В шаблоне нужно писать так

Код: Выделить всё

 <input type="hidden" name="Body" value="$Text{"BodySysblock"}"/>
Меркушов Виктор, perl программист

masalexven
OTRS Новобранец
Сообщения: 22
Зарегистрирован: 06 ноя 2012, 15:57

Re: Форматирование текста в шаблоне

Сообщение masalexven » 09 ноя 2012, 10:50

merkushov писал(а):Ну я не знаю как ещё доступнее объяснить... Воспользуйтесь описанием Создания шаблона заявок, который замечательно составил firebolt viewtopic.php?f=4&t=1395 Только в ru_Custom.pm смените локализацию ключа BodySysblock на строку с html тэгами

Код: Выделить всё

$Self->{Translation}->{'BodySysblock'} = 'Прошу вас произвести <br/>ремонт <strong>системного блока</strong> компьютера...';
ps: поддержка html тэгов для локализации в otrs нет. Это своеобразный хак только для полей формата RichText
С HTML тэгами все работает, спасибо. Все оказалось довольно просто.
OTRS 3.1.11 ITSM 3.1.6 FreeBSD

ykolesnikov
OTRS Гуру
Сообщения: 3119
Зарегистрирован: 24 дек 2010, 09:27
Откуда: Череповец
Благодарил (а): 4 раза
Поблагодарили: 5 раз
Контактная информация:

Re: Форматирование текста в шаблоне

Сообщение ykolesnikov » 09 ноя 2012, 10:53

О.К.
Конструкция <br/> внутри текста в файле локализации - работает.
Большое спасибо! :D
С уважением Юрий Колесников
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая

alexus
OTRS Гуру
Сообщения: 5192
Зарегистрирован: 20 сен 2010, 18:17
Откуда: Москва
Благодарил (а): 92 раза
Поблагодарили: 82 раза

Re: Форматирование текста в шаблоне

Сообщение alexus » 09 ноя 2012, 11:29

Мои 5 копеек...
Для клиентского портала мы пошли другим путем :-). Мы сделали для шаблонов отдельный модуль, который достает шаблоны из XML по комбинации Тип тикета - Сервис. А затем все данные из HTML-формы укладывает в Тело сообщения. Тема формируется автоматически как микс Типа и Сервиса.
Данный метод хорош тем, что можно создавать произвольную HTML форму с инструкциями, заголовками, ссылками и т.д.
Решение пока на стадии рабочего прототипа. У кого есть желание принять участие в тестировании - пишите в личку.
С уважением,
Алексей Юсов

Prod: OTRS CE ITSM 6.0.28 on CentOS 7 Apache 2.4 MariaDB 10.4.13 + Radiant Customer Portal

Radiant System OTRS Intergrator RU
Группа OTRS Community в Teleram
Хотите внедрить OTRS? Спросите меня как!

ykolesnikov
OTRS Гуру
Сообщения: 3119
Зарегистрирован: 24 дек 2010, 09:27
Откуда: Череповец
Благодарил (а): 4 раза
Поблагодарили: 5 раз
Контактная информация:

(РЕШЕНО) Re: Форматирование текста в шаблоне

Сообщение ykolesnikov » 09 ноя 2012, 13:40

Думаю, тему можно закрывать.
Всем спасибо. :)
Решение, о котором пишет Алексей, интересно. Думаю, многих наведет на интересное продолжение разработки. :idea:
Осталось еще посмотреть что будет в версии 3.2 - обещают много интересно по клиентской части. К сожалению win-версии пока нет, а наших админов не сподвигнуть. Подождем.
С уважением Юрий Колесников
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая

firebolt
OTRS Новобранец
Сообщения: 178
Зарегистрирован: 13 сен 2012, 13:46

Re: Форматирование текста в шаблоне

Сообщение firebolt » 14 ноя 2012, 09:14

alexus писал(а):Мои 5 копеек...
Данный метод хорош тем, что можно создавать произвольную HTML форму с инструкциями, заголовками, ссылками и т.д.
Решение пока на стадии рабочего прототипа. У кого есть желание принять участие в тестировании - пишите в личку.
Хотелось бы ваш метод адаптировать под наши нужды :D Чтобы по нажатии на кнопку шаблона Система указанным вами способом (я его не понял :D ) подхватывала из XML форматированный текст и вставляла в тело заявки. Так что я заинтересован.

PS. Я ведь правильно понял, что html-тэг div (для выравнивания текста к примеру) в файле кастомного перевода неприменим?
Версия OTRS (6.0.10)
Debian 9 Stretch
Версия СУБД (MySQL 5.7.22)

merkushov
OTRS Бывалый
Сообщения: 310
Зарегистрирован: 25 окт 2012, 15:06
Откуда: Воронеж
Поблагодарили: 2 раза

Re: Форматирование текста в шаблоне

Сообщение merkushov » 14 ноя 2012, 11:56

firebolt писал(а):PS. Я ведь правильно понял, что html-тэг div (для выравнивания текста к примеру) в файле кастомного перевода неприменим?
Применим, если перевод будет отображаться в поле с типом RichText
Меркушов Виктор, perl программист

firebolt
OTRS Новобранец
Сообщения: 178
Зарегистрирован: 13 сен 2012, 13:46

Re: Форматирование текста в шаблоне

Сообщение firebolt » 14 ноя 2012, 13:11

merkushov писал(а):
firebolt писал(а):PS. Я ведь правильно понял, что html-тэг div (для выравнивания текста к примеру) в файле кастомного перевода неприменим?
Применим, если перевод будет отображаться в поле с типом RichText
Тут-то у меня знания не хватает. Какие поля имеют тип RichText?
Версия OTRS (6.0.10)
Debian 9 Stretch
Версия СУБД (MySQL 5.7.22)

firebolt
OTRS Новобранец
Сообщения: 178
Зарегистрирован: 13 сен 2012, 13:46

Re: Форматирование текста в шаблоне

Сообщение firebolt » 14 ноя 2012, 16:43

Попробовал вставить весь html-код существующей у нас на сайте страницы в файл перевода. Получилось нечто. Однозначно будем использовать.

Насчет типа полей RichText я подозреваю, что это поля, где есть инструменты для форматирования текста, верно?
Версия OTRS (6.0.10)
Debian 9 Stretch
Версия СУБД (MySQL 5.7.22)

Ответить