Про пустую границу

Тема в разделе "Решение проблем с использованием программы", создана пользователем Xpite, 12 июл 2018.

  1. Xpite

    Xpite Member Пользователи

    Регистрация:
    13 мар 2017
    Сообщения:
    62
    Очень часто сталкиваюсь с проблемой при записи в базу, но так и не нашел решения.
    Если граница пустая, то мне нужно, чтобы ставил символ допустим |, а если не пустая, то ставил только содержание границы. При том, что ifnil не подходит, а если это условие указать в настройках границы парсинга ("если граница окажется пустой..."), то срабатывает здесь, но в других местах шаблона, где я использую эту же границу это портит все. Как мне выйти из ситуации, чтобы не задавать по 2 раза одну и ту же границу для разных частей шаблона?
     
  2. Xpite

    Xpite Member Пользователи

    Регистрация:
    13 мар 2017
    Сообщения:
    62
    Это нужно например для задания xfields в CMS DLE там идет указание доп полей через ||название_поля|содержание_поля||следующее_поле|содержание||
    и если одно поле будет пустым, то структура должна быть такой (2 символа |) - ||название_поля||следующее_поле|содержание||
    А получается вот такой: ||название_поля|||следующее_поле|содержание||
    Т.е. идет три ||| и это сбивает все отображение доп полей в CMS

    Прошу помощи) Спасибо!
     
  3. Xpite

    Xpite Member Пользователи

    Регистрация:
    13 мар 2017
    Сообщения:
    62
    Получается что мне нужно чтобы срабатывала такая конструкция [IFNIL1]>CD_GRAN_1!>|[ELSE][/IFNIL1] и не реагировала на символ |, из-за которого граница становится не пустой
     
  4. Xpite

    Xpite Member Пользователи

    Регистрация:
    13 мар 2017
    Сообщения:
    62
    По сути в макрос IFNIL не хватает THEN, чтобы выполнялось не только ELSE, получилась бы замечательная конструкция
    [IFNIL1]<CD_GRAN_1!>[THEN]<CD_GRAN_1!>|[ELSE][/IFNIL1]
     
  5. Xpite

    Xpite Member Пользователи

    Регистрация:
    13 мар 2017
    Сообщения:
    62
    Пока реализовал это через подсчет кол-ва символов у границы и если она =0, значит граница пустая. Возможно есть более удобный вариант
     
  6. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    3.198
    Позвольте встряну в вашу беседу:D
    Посмотрите справку о макросе MUSTBIEINMACRO
     
    Последнее редактирование: 13 июл 2018
    xLime нравится это.
  7. xLime

    xLime Well-Known Member Супер Модератор Модератор

    Регистрация:
    4 сен 2017
    Сообщения:
    336
    Добрый день.

    Попробуйте применить к границе функцию замены:
    Код:
    {get}|{get}
    {break_if_not_nil}
    {get}|{sep}
    [​IMG]
     
    Последнее редактирование: 13 июл 2018
    kagorec нравится это.
  8. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    3.198
    Такое ощущение что зря встряли o_O
     
    xLime нравится это.

Поделиться этой страницей