IF<CD_GRAN_1!> =Нет, THEN не выводить строку в файл

Тема в разделе "Шаблон вывода", создана пользователем KEN, 10 авг 2015.

  1. KEN

    KEN New Member Пользователи

    Регистрация:
    2 авг 2015
    Сообщения:
    19
    Как правильно записать такую конструкцию

    IF<CD_GRAN_1!>=Нет, THEN не выводить строку в файл

    Нужно для того что бы в шаблон вывода не попадали товары которых нет в наличии
     
  2. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Здравствуйте.

    Обратите внимание на макрос CHECKENTRY Ссылки недоступны для гостей

    С уважением к вам, Сергей.
     
  3. Фёдор

    Фёдор Active Member Пользователи

    Регистрация:
    9 фев 2014
    Сообщения:
    167
    Приветствую!
    У меня проблемы с использованием макросов if и checkentry возникли.
    В прикрепленном проекте можно увидеть что в столбце 3,4 и 5 используются макросы if
    В результате в предпросмотре мы видим только результаты парсинга в 3 столбце. 4 и 5 пусты.
    Путем несложных манипуляций я выяснил, что если убрать макрос if из третьего столбца, то в предпросмотре появится результат парсинга 4 столбца. Если убрать if и из 4 столбца, то в предпросмотре появится результат парсинга 5 столбца. По логике становится ясно, что только один макрос if, из всех используемых в шаблоне с одинаковыми условиями срабатывает. Только первый макрос. Остальные не работают. Такая же абсолютно ситуация и с макросами чекэнтри. Раньше такого я не замечал. Либо просто не сталкивался с подобной ситуацией. Подскажите как быть? Что можно предпринять? Или может можно как-то усовершенствовать работу макросов?
     

    Вложения:

  4. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Здравствуйте.

    Макросы прекрасно работают! Изучайте лог выполнения функций в нижней части окна предпросмотра результатов парсинга контента.

    ->
    С уважением к вам, Сергей.
     
  5. Фёдор

    Фёдор Active Member Пользователи

    Регистрация:
    9 фев 2014
    Сообщения:
    167
    Аааа. Понял. Дело в макросе count
     
  6. aresa

    aresa Well-Known Member Пользователи

    Регистрация:
    17 окт 2015
    Сообщения:
    180
    Добрый вечер!

    Подскажите пожалуйста, почему макрос IF1 и IF2 при такой конструкции
    [COPY:1|20]<CD_GRAN_1!>[/COPY][CSVCS]<CD_GRAN_2!>[CSVCS][IF1][CHARCOUNT][VALUE][/CHARCOUNT]>0[THEN][VALUE][ELSE]<CD_GRAN_3!>[/IF1][CSVCS]<CD_GRAN_4!>[CSVCS] ....
    выводит
    (1) Артикул;(2) Название;(3) Цена;(4) Фильтр;(5) Размер;(6) Расцветка;(7) Описание;(8) Особенности;(9) Фото
    014-покрывало гобеле;Покрывало Гобелен;[IF1]11>0[THEN]1.5спальный

    Используется в <CD_CYCLE_GRAN_1!>

    Вообще-то мне надо из повторяющейся границы как-то взять то, что между тэгом "span" находится <span>510</span>, иначе подставить <CD_GRAN_3!>

    id="option_2937_2602"onchange="fn_change_options('2937','2937','2602');">1.5спальный</option>
    2.0спальный(<span>510</span>&nbsp;руб.)</option>


    в 1-ой границе "1.5спальный" span отсутствует, во-второй "2.0спальный(<span>510</span>&nbsp;руб.)" есть.
    я уже пробовал и IFNIL, и REPLACE, и IF1, IF2. Максиму чего добился, что выводит значение если span присутствует. Где его нет выводит "пусто" и на <CD_GRAN_3!> не уходит.
    Какой лучше макрос все-таки использовать.
    Подскажите пожалуйста.

    Заранее благодарен!
     
    Последнее редактирование: 15 ноя 2015
  7. aresa

    aresa Well-Known Member Пользователи

    Регистрация:
    17 окт 2015
    Сообщения:
    180
    Сделал через CHECKENTRY:

    [CHECKENTRY(<span>)][VALUE][THENTEXT][REPLACE(<span>{get}</span>|{get})][VALUE][/REPLACE][ELSETEXT]<CD_GRAN_3!>[/CHECKENTRY]

    Но хотелось бы понять с IF1, IF2, IFNIL, как они работают, то ли я неправильно применил, то ли их нельзя в цикле использовать?
     
  8. lion

    lion New Member Пользователи

    Регистрация:
    19 янв 2013
    Сообщения:
    28
    CHECKENTRY проверяет входил ли в диапазон то или инной слово или текст, если да, тогда, что break ?

    Думаю что мноuие сталкиваются с ситуацией когда приходится парсить сотни тысяч товаров, в момем случае это 300k и большинство этих товаров с 0.00 ценой, вот как сделать так что бы такие товары не выводились в шаблон, пока не понятно..

    пробовал такую конструкцию - не помогает [IF1]<CD_GRAN_10!>[TEXTEQUAL]0.00[THEN]{break}[/IF1]
    наверно что то не так с с break

    подскажите что не так с этим break
     
  9. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Здравствуйте.

    Непонятно, откуда вы взяли информацию о {break} для применения его таким вот способом.

    Для решения вашей задачи прекрасно подойдет функция shift+ctrl+f
     

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