Вход для клиентов и партнеров
в начало сайта
Партнерская программаОнлайн демоСкачатьКарта сайта
 

Регламент
Документация
Часто задаваемые вопросы (FAQ)
Решения типовых вопросов
Форум поддержки
Библиотека разработчика

Посмотрите демо-ролики и убедитесь в том, что "Twilight CMS" очень удобна в управлении, понятна и проста.

Бесплатно скачайте "Twilight.Basic", установите на своем компьютере и изучите систему более детально.

Если вам нужно установить "Twilight CMS" на существующий сайт или разработать новый - обращайтесь в отдел интеграции.

 

Ваше имя
Ваш Email
Вопрос
Twilight.basic
  • Узнайте больше
  • Сравните версии
  • Twilight.selection
  • Узнайте больше
  • Сравните версии
  • Twilight.evolution
  • Узнайте больше
  • Сравните версии
  •  
    Главная // Библиотека разработчика // Справочники // Книга рецептов (Cookbook) // Стандартные решения типовых задач //

    Символы кавычек в атрибутах HTML тэгов


    Сплошь и рядом требуется подставить значение из базы данных внутрь атрибутов HTML. Например, когда мы в интернет-магазине создаем уменьшенное изображение товара с помощью макроса Thumbnail и хотим прописать ему атрибут title, взяв его значение из поля с названием.

    В контексте отрисовки дизайна товара обычно это делается примерно так:

    $Thumbnail[source: $Attribute:pic1$; width: 250; height: 200; mode: bound; params: "title=\"$Attribute:title$\""]$

    Данная конструкция сгенерирует HTML тэг вида <IMG SRC="..." title="тут тайтл из базы">. Обратите внимание, что кавычки, которые мы хотим передать в HTML тэг должны быть квотированы (предварены символом "обратный слэш") при написании внутри макроса. Делается это для того, чтобы избежать их интерпретацию макропроцессором Системы, чтобы он не спутал кавычки, ограничивающие параметры макроса Thumbnail с кавычками, которые являются частью значения ключа params. Более подробную информацию можно найти в описании макроса Thumbnail.

    Все бы хорошо, но никто не гарантирует, что в базе данных в поле title конкретной записи не встретится символ "кавычка", что приведет к такому невалидному тэгу: <IMG SRC="..." title="тут "тайтл" из базы">.

    Рекомендуемый способ для решения этой проблемы - воспользоваться макросом XMLize, который заменит все некорректные для языка XML конструкции. В результате обработки такого макроса:

    $Thumbnail[source: $Attribute:pic1$; width: 250; height: 200; mode: bound; condition: $Attribute:pic1$!=; params: "title=\"$XMLize[$Attribute:title$]$\""]$

    мы получим следующую конструкцию:

    <IMG SRC="..." title="тут "тайтл" из базы">

    Также, можно воспользоваться макросом Replace. Это немного более сложно настраиваемый, но зато более гибкий вариант, который позволяет с помощью регулярных выражений или обычного поиска и замены подставить вместо кавычек (в данном случае) любое другое значение, необходимое разработчику.

    « к списку

    версия для печати

     
    © 2003-17 Страта Технологии (создание сайтов, разработка cms), Twilight CMS in english.
    Наш адрес: Москва, пр. Маршала Жукова д.51
    Тел.: (495) 222-6436, E-mail: , карта сайта, условия использования информации о CMS
    Звоните через Skype:  

    Реклама: