Главная | Новости | Блог (rss) | Ответы | Учебник | Правила |
Вы здесь: ГлавнаяБлогПеревод строки и полноценные языки разметки
Вход | Регистрация

Перевод строки и полноценные языки разметки

Для начала объясню, о чем эта статья, и для чего это нужно.
Представим, Вы ведете блог. Вы не хотите заморачиваться никакими тэгами и просто хотите писать текст, разделяя строчки обычным переводом строки. Но, при выводе на страницу весь текст сливается. Происходит это из-за того, что перевод строки в html документах рассматривается как пробел. Для перевода строки при отображении на сайте нужен тэг <br/>. Замена переводов на <br/> - это один пример.
В качестве второго примера будет всем известный bb код. Кто общается в форумах, знает, что там для размещения ссылки нужно написать [url=http://адрессайта]текст под ссылкой[/url]. А для вывода на страницу нужно писать html код <a href="http://адрессайта">текст под ссылкой</a>. Эту замену можно автоматизировать описанным ниже способом.
Еще с помощью этого механизма можно текстовый смайлик заменить на картинку.
И в качестве последнего примера приведу возможность перевода текста в различные регистры или перевод в латиницу, если это необходимо.
Нужно это для автоматизации процесса заполнения и вывода данных в нужном виде, а также для обеспечения безопасности сайта.

Быстрый старт для тех, кто торопится, и кому лень читать всю статью.
Вы создали структуру и выводите данные на страницу. Представим, поле, в котором нужно подсветить bb ссылки, сделать перевод строк и вывести смайлики, называется message.
Значит для вывода на страницу Вы в шаблоне пишете "{message}". А для вывода с заменой пишете "<?function(replace;{message})?>". Всё сразу заменится :-)

Подробнее о замене данных в конструкторе letnick.com.
Настройка замены происходит в 2 этапа. На первом этапе в разделе конструктора "Замена" нужно настроить файл замены данных. По умолчанию там уже есть файл "default", что и позволило в быстром старте сделать замену вызовом функции. Формат данных очень простой. В ключе пишем, что заменять, в значении - на что заменять.
Самый простой пример - заменим текстовую улыбку на картинку. В ключ пишем ":-)", в значение "<img src='/pic/smile.gif' alt=': - )'/>". Предполагается, что картинка со смайликом залита на сайт.
Вторым этапом замены является вызов функции в шаблоне. Если просто вывести переменную message, то выведется, как есть. Если написать "<?function(replace;{message})?>", то переменная message будет обработана, и в данные будут заменены. Полный формат вызова функции "<?function(replace;{переменная};файлзамены)?>". Если файл замены не указан, то будет вызван default.
Поэтому функции "<?function(replace;{message})?>" и "<?function(replace;{message};default)?>" идентичные.

Описание формата замены.
В ключе указывается, что менять, в значении - на что менять. В ключе поддерживается "{*}" - означает любой текст. В значении поддерживаются переменные: {1}, {2}... {N}. Вместо этих переменных будут вставляться данные, найденные в тексте.
Самый простой пример с заменой смайликов приведен чуть выше. По этому же примеру можно менять буквы, цифры и т.д.
Заменить все точки на восклицательные знаки: ключ ".", значение "!".
Или совсем извращение: заменить все цифры на их буквенное обозначение
Ключ "0", значение "НОЛЬ".
Ключ "1", значение "ОДИН"
.
.
.
Ключ "9", значение "ДЕВЯТЬ".
Ну и последний простой пример: заменить слово из трех букв на "Маты запрещены".
Ключ "xyz", значение "Маты запрещены".
Это были примеры простого использования замен.
Теперь давайте заменим весь жирный текст на обычный с выделением восклицательными знаками.
Ключ "<b>{*}</b>", значение "!!{1}!!".
Программа будет искать <b>, далее любые данные и после них </b>. Потом найденные данные программа заменит на !!найденные данные!!
Например, текст "это <b>жирный</b> текст" преобразуется в "это !!жирный!! текст".
Этот механизм замены позволяет реализовать всем известный BB code.
Ключ "[img={*}]{*}[/img]", значение "<img src='{1}' alt='{2}'/>" - вставка картинки
Ключ "[url={*}]{*}[/url]", значение "<a href='{1}'>{2}</a>" - вставка ссылки
Ключ "[color={*}]{*}[/color]", значение "<font color="{1}">{2}</font>" - выделение текста цветом
Цифры, которые используются в данных примерах обозначают следующее:
При ключе "[url={*}]{*}[/url]" и значении "<a href='{1}'>{2}</a>" в ключе значок "{*}" используется два раза, поэтому справа введены цифры, чтобы понять, что {1} относится к первому использованию значка {*}, т.е. вместо {1} будет подставляться url сайта, а {2} относится ко второму использованию значка {*}, и вместо {2} будет выводиться надпись под ссылкой.
В других примерах тот же принцип.
В ключах и в значениях нельзя использовать шаблоны и переменные.
Вы можете создавать несколько файлов замен и вызывать замену с помощью функции в любом месте формирования вывода данных.

Механизм замены - это очень мощный инструмент, благодаря которому можно создавать собственные языки разметки. Это позволяет ускорить заполнение данных и увеличить гибкость формировании вывода информации.
10 апр 2012г 07:45:55
Просмотров: 1844
← предыдущая следующая →
29 апр 2015г 22:21:53, Андрей
Здравствуйте пользователи конструктора Letnick.com! Предлагаю всем нам об единица на сайте http://let-info.ru Есть форум, на котором можно обсуждать создавать и помогать в работе с созданном сайтом на конструкторе. Есть большой выбор смайликов для ваших сайтов и многое другое! Присоединяйтесь!
25 апр 2012г 17:10:34, Антон
Спасибо за статью
Ответ: Рады, если смогли помочь.
25 апр 2012г 07:46:56, Владимир(ака коммунити)
А как решены такие проблемы как при разбивке текста, Обрезка его в неположенном месте.
И возможность при редактировании записи получить обратно [ббкод]слово[/ббкод] а не html теги которые опять приходится переписывать иначе пишет так как есть а это х'ново :( на старом Летнике такая заморочка душу сильно выматала.
Ответ: Самый лучший способ это предварительное удаление тэгов (bb код можно удалить заменами) и обрезать по пробел начиная с нужной позиции.
Тэги преобразуются при выводе, а не при вводе данных и редактируются в том виде, в котором забиты.

Ваш комментарий
Имя *
E-mail
Сообщение *
Введите цифры * Цифры ?

Введите цифры с картинки без букв
 

О нас | Написать нам | Сообщить о правонарушении |

Создать свой сайт © Конструктор сайтов Letnick.com 2006-2017