Перейти к содержимому


Опция "отображать HTML теги"


Сообщений в теме: 23

#1 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 26 Январь 2012 - 14:09

После включении опции Отображать HTML теги, поле отображается без переноса строк. Парсить и менять /n на <br> будет довольно странно, потому что обычный пользователь обычно не знаком с html разметкой и для него наличие таких значков в тексте, если он его откроет для редактирования, совершенно излишне и будет вызывать вопросы.Тем не менее поле без переносов становится нечитабельным, особенно если в нем содержится перечень.
Нужно либо доработать эту опцию, либо ввести новую, вроде Парсинг, которая будет просто находить в тексте ссылки и преобразовывать их в рабочие. Эта опция позволит всем пользователям, не зависимо от уровня понимания, упростить процедуру превращения помещенных в текст ссылок в "кликабельные". В настоящее время, это возможно реализовать через вычисление в поле: парсить содержимое и окаймлять найденное в оболочку из <a...>....</a> и повторно помещать в поле.
a) слишком сложно для обывателей
б) при повторном редактировании текста - много лишних html-тегов
Упростите процедуру и люди к вам потянутся.
Что касается переноса строк, о котором я говорил в начале, попробуйте все же доработать.

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#2 arsenal

    Активный участник

  • Пользователи
  • PipPipPip
  • 448 сообщений

Отправлено 26 Январь 2012 - 14:21

Извините, не силен в терминологии. Что значит "парсить"?

#3 arsenal

    Активный участник

  • Пользователи
  • PipPipPip
  • 448 сообщений

Отправлено 26 Январь 2012 - 14:28

andibrag, Может быть подскажите. У меня есть текстовое поле вычисляемое, нередактируемое. В него выводится сводная информация из другой таблицы как раз с использованием /r/n. Насколько я понял можно с использованием html-тегов сделать так, чтобы в режиме просмотра кликнуть на это поле и сразу перейти в нужную мне таблицу, отредактировать данные и вернуться обратно. Подскажите, пожалуйста, как это делается. А то сейчас пока по всем таблицам/подтаблицам пройдешь, вернешся обратно - много времени занимает.

#4 Analitic

    Активный участник

  • Пользователи
  • PipPipPip
  • 700 сообщений
  • Пол:Мужчина

Отправлено 26 Январь 2012 - 15:12

То что вы хотите делается следующим образом, создается два поля. Первое редактирует пользователь и оно отрыто на запись и скрыто при отображение. Второе поле формируется вычислением, и скрыто при редактировании и отображается при просмотре. Второе поле формируется вычислением при изменении первого поля. Во втором поле ставите галочку отображать html теги. И делаете в нем любое преобразование данных какое захотите.

#5 arsenal

    Активный участник

  • Пользователи
  • PipPipPip
  • 448 сообщений

Отправлено 26 Январь 2012 - 15:24

Просмотр сообщенияAnalitic (26 Январь 2012 - 15:12) писал:

То что вы хотите делается следующим образом, создается два поля. Первое редактирует пользователь и оно отрыто на запись и скрыто при отображение. Второе поле формируется вычислением, и скрыто при редактировании и отображается при просмотре. Второе поле формируется вычислением при изменении первого поля. Во втором поле ставите галочку отображать html теги. И делаете в нем любое преобразование данных какое захотите.
Спасибо. С помощью тегов <a...>....</a> текст можно преобразовать в ссылку. Но при этом он становиться подчеркнутым и меняет цвет. Можно ли сделать так, чтобы текст внешне никак не менялся, но при этом оставался ссылкой. Насколько я понял по описаниям - никак. Я прав

#6 Analitic

    Активный участник

  • Пользователи
  • PipPipPip
  • 700 сообщений
  • Пол:Мужчина

Отправлено 26 Январь 2012 - 15:54

В конце потеряли знак вопроса?
Возможно. У тега ставите класс. В настройках цветов, указываете путь к своему файлу стилей. Описание класса ищем в интеренте.

#7 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 26 Январь 2012 - 19:06

В тему про ссылки для облегчения жизни
В таблице Задание есть поле Описание задание.
Устанавливаем галочку напротив опции Отображать HTML теги в настройках поля.
В вычисления поля добавляем строки, расположенные ниже и настраиваем их срабатывание, например, при отображении поля

$line['Описание задания']= preg_replace("/(^|[\n ])([\w]*?)((ht|f)tp(s)?:\/\/[\w]+[^ \,\"\n\r\t<]*)/is", "$1$2<a href=\"$3\" target=\"_blank\">$3</a>", $line['Описание задания']);
$line['Описание задания']= preg_replace("/(^|[\n ])([\w]*?)((www|ftp)\.[^ \,\"\t\n\r<]*)/is", "$1$2<a href=\"http://$3\"  target=\"_blank\">$3</a>", $line['Описание задания']);
$line['Описание задания']= preg_replace("/(^|[\n ])([a-z0-9&\-_\.]+?)@([\w\-]+\.([\w\-\.]+)+)/i", "$1<a href=\"mailto:$2@$3\" target=\"_blank\">$2@$3</a>", $line['Описание задания']); 
Т.о. при добавлении ссылок на ресурсы в интернет или электронную почту они преобразуются в "кликабельный" формат

Возможно добавить переходы между таблицами КБ.
В качестве примера. Если назначенное задание связано с определенным контрагентом (о чем говорит заполненное одноименное поле Контрагент) и если в поле Результат вписать См. историю работы или смотри работу с клиентом (можно предопределить любую комбинацию слов), при отображении поля будет автоматически сформирована ссылка на таблицу История работы с клиентом и показаны все записи с ним связанные. Пример не самый удачный, но смысл должен быть понятен.
if ($line['Контрагент'])   $line['Результат']=preg_replace("/(<a.+>)?([Ии]+стори[ияю]+\s+работы|[Рр]+абот[уаы]+\s+(с\s+)?клиент[омва]+)(<\/a>)?/i",
"<a href=/cb/fields.php?table=62&rel_table=42&rel_field=723&rel_value=".$line['Контрагент']['ID']." target=\"_blank\">$2</a>",
$line['Результат']);
Естественно, что в поле Результат должны быть включены HTML теги.

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#8 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 28 Январь 2012 - 02:22

Просмотр сообщенияandibrag (26 Январь 2012 - 14:09) писал:

После включении опции Отображать HTML теги, поле отображается без переноса строк.
вопрос остался без внимания
сможете доработать поле или что-то придумывать самому?

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#9 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 28 Январь 2012 - 11:11

Просмотр сообщенияandibrag (28 Январь 2012 - 02:22) писал:

вопрос остался без внимания
сможете доработать поле или что-то придумывать самому?

Вам же ответили вполне развернуто:

Просмотр сообщенияAnalitic (26 Январь 2012 - 15:12) писал:

То что вы хотите делается следующим образом, создается два поля. Первое редактирует пользователь и оно отрыто на запись и скрыто при отображение. Второе поле формируется вычислением, и скрыто при редактировании и отображается при просмотре. Второе поле формируется вычислением при изменении первого поля. Во втором поле ставите галочку отображать html теги. И делаете в нем любое преобразование данных какое захотите.

Вкратце: в html-поле и не должно происходить никаких встроенных преобразований переносов в <br> и т.д., т.к. это именно html код. Используйте свои вычисления для необходимых вам преобразований.

#10 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 28 Январь 2012 - 12:19

это решение я уже давно применяю, но оно приводит к дублированию полей, чего хотелось бы избежать
чем проще реализация, тем лучше для конечного пользователя
добавьте опцию переносить строки, которая будет активна при выборе отображать HTML теги

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#11 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 28 Январь 2012 - 12:23

Ни к чему перегружать и без того перегруженные настройки текстового поля. Так что скорее всего добавлять не будем. Это все равно не решит всех проблем с дублированием.

#12 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 28 Январь 2012 - 12:31

частично решит
кроме того, отображать переносы​ это довольно распространенная опция
впрочем, мнение субъективно

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#13 Analitic

    Активный участник

  • Пользователи
  • PipPipPip
  • 700 сообщений
  • Пол:Мужчина

Отправлено 30 Январь 2012 - 08:06

Просмотр сообщенияandibrag (28 Январь 2012 - 12:19) писал:

это решение я уже давно применяю, но оно приводит к дублированию полей, чего хотелось бы избежать

Скорее всего в версии 1.9.6. будет добавлен также массив $display, по аналогии с $line. Но при изменении которого данные не будут вноситься в базу, а будут только отображаться при выводе. Таким образом вам необходимо будет добавить вычисление при отображении и менять например $display['Мой текст']=str_replace("\n","<br>\n",$line['Мой текст']);
Без создания дополнительного поля.

#14 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 30 Январь 2012 - 10:42

Просмотр сообщенияAnalitic (30 Январь 2012 - 08:06) писал:

Скорее всего в версии 1.9.6. будет добавлен также массив $display, по аналогии с $line. Но при изменении которого данные не будут вноситься в базу, а будут только отображаться при выводе. Таким образом вам необходимо будет добавить вычисление при отображении и менять например $display['Мой текст']=str_replace("\n","<br>\n",$line['Мой текст']);
Без создания дополнительного поля.
отличная мысль

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#15 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 20 Ноябрь 2012 - 17:05

Возвращаюсь к отображению переносов.
Если использовать вычисления, преобразующие \n в <br>\n, то наблюдаю следующее: при просмотре записи, содержимое отображается нормально, а в режиме вложенной таблицы - возникает дублирующий перенос, т.е. все строки разделены пустой строкой. Скорее всего \n отрабатывает. Можете исправить?

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#16 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 20 Ноябрь 2012 - 17:13

Что значит "в режиме вложенной таблицы"?

#17 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 20 Ноябрь 2012 - 17:42

Просмотр сообщенияCbCoder (20 Ноябрь 2012 - 17:13) писал:

Что значит "в режиме вложенной таблицы"?
- подчиненная таблица (вкладки в нижней части при отображении записи)

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#18 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 20 Ноябрь 2012 - 17:52

Проверим.

#19 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 20 Ноябрь 2012 - 17:56

Для пущей наглядности.
Ввод информации в поле (перенос посредством Enter) Прикрепленное изображение: 42.jpg
Просмотр в режиме подчиненной таблицы Прикрепленное изображение: 43.jpg
Просмотр в режиме отображения записи Прикрепленное изображение: 44.jpg

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#20 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 20 Ноябрь 2012 - 17:58

Код преобразования поля
$line['Описание']= preg_replace("/(^|[\n ])([\w]*?)((ht|f)tp(s)?:\/\/[\w]+[^ \,\"\n\r\t<]*)/is", "$1$2<a href=\"$3\" target=\"_blank\">$3</a>", $line['Описание']);
$line['Описание']= preg_replace("/(^|[\n ])([\w]*?)((www|ftp)\.[^ \,\"\t\n\r<]*)/is", "$1$2<a href=\"http://$3\"  target=\"_blank\">$3</a>", $line['Описание']);
$line['Описание']= preg_replace("/(^|[\n ])([a-z0-9&\-_\.]+?)@([\w\-]+\.([\w\-\.]+)+)/i", "$1<a href=\"mailto:$2@$3\" target=\"_blank\">$2@$3</a>", $line['Описание']);
$line['Описание']= preg_replace("/(\(^|\n)(<br(\/)?\>)*/i", "$1<br/>", $line['Описание']);
- последняя строчка

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения






Количество пользователей, читающих эту тему: 2

0 пользователей, 2 гостей, 0 анонимных