• Страница 1 из 1
  • 1
Модератор форума: Yuri_G  
Сообщество uCoz » Модули uCoz » Интернет-магазин » Прописываем уникальные мета с помощью оператора if
Прописываем уникальные мета с помощью оператора if
«ShaGun»
Сообщений: 116
Репутация: 7

Сообщение # 1 | 17:37:19
Народ, есть проблема, все условия срабатывали идеально, добавил 10-е - Нарядное платье, логика потерялась, некоторые условия срабатывают криво - исчезают наименования товаров.

Сейчас для h1 прописан код:
<h1>
<?if($ENTRY_TITLE$='Конверт на выписку' & $OTHER2$='Лето')?>Летний конверт на выписку <?else?>
<?if($ENTRY_TITLE$='Комбинезон' & $OTHER2$='Зима')?>Зимний комбинезон <?else?>
<?if($ENTRY_TITLE$='Комплект' & $OTHER2$='Зима')?>Зимний комплект <?else?>
<?if($ENTRY_TITLE$='Куртка' & $OTHER2$='Зима')?>Зимняя куртка <?else?>
<?if($ENTRY_TITLE$='Пальто' & $OTHER2$='Зима')?>Зимнее пальто <?else?>
<?if($OTHER2$='Школа' & $ENTRY_TITLE$='Рубашка')?>Школьная рубашка <?else?>
<?if($OTHER2$='Школа' & $ENTRY_TITLE$='Костюм')?>Школьный костюм <?else?>
<?if($OTHER2$='Школа' & $ENTRY_TITLE$='Брюки')?>Школьные брюки <?else?>
<?if($OTHER2$='Школа' & $ENTRY_TITLE$='Жилет')?>Школьный жилет <?else?>
<?if($OTHER2$='Праздник' & $ENTRY_TITLE$='Платье')?>Нарядное платье <?else?>

$ENTRY_TITLE$ <?endif?><?endif?><?endif?><?endif?><?endif?><?endif?><?endif?><?endif?><?endif?><?endif?>$BRAND$ <?if($OTHER6$)?>$OTHER6$ <?endif?><?if($OTHER7$)?><?if($OTHER7$='м')?>для мальчика <?else?><?if($OTHER7$='д')?>для девочки <?else?><?if($OTHER7$='у')?><?endif?><?endif?><?endif?><?endif?>$ART_NO$</h1>

Все описанные операторы (до закрывающих тегов "<?endif?>") срабатывают правильно, КРОМЕ ПОСЛЕДНЕГО (сейчас - Нарядное платье):

Конверт на выписку + Лето = http://kindersmile.ru/shop/1080/desc/konvert - Летний конверт на выписку PILGUNI KS-3-20-21
Куртка + Зима = http://kindersmile.ru/shop/898/desc/kurtka - Зимняя куртка Caimano TETRIS для мальчика KS-CW15-09/205
Жилет + Школа = http://kindersmile.ru/shop/1129/desc/zhilet - Школьный жилет Van Cliff ЭРНЕСТО для мальчика KS-A93521

Платье + Праздник = http://kindersmile.ru/shop/990/desc/plate - Anco Premium для девочки KS-906
*В итоге, все содержимое 1-го блока пропадает из заголовка, именно для последнего условия*

Если "Конверт на выписку" поставить в конец этого блока, то Наименование товара теперь пропадает для него. Скрин. http://kindersmile.ru/img1/oshibka_if.jpg
В то время, как H1 для "Нарядное платье" отображается корректно.

Почему это происходит?
Это системная ошибка? Есть ограничения по количеству условных операторов?
Как это исправить?

Кто знает?
Всем спасибо за помощь!
-SAM-
Сообщений: 156
Репутация: 46

Сообщение # 2 | 01:44:44
«ShaGun», есть ограничение на обработку условий. Можно исправить так: логику сделать иначе - сперва $ENTRY_TITLE$ окружить в условие, в нём перечислить все те случаи, когда его не нужно выводить, после через <?else?> подключать по одному названия (уже без <?else?> после каждого из них) ... так будет более правильно, наверное, как и не нужно делать переносы на новую строку - нажмите CTRL+U на странице, где строчки идут условий, то получаются пустые строки потом из-за переноса на новую строку... заодно посмотрите у себя block3 - там нарушена структура кода.

Попробуйте вот так прописать:
Код
<h1><?ifnot( ($ENTRY_TITLE$='Конверт на выписку' & $OTHER2$='Лето') || ($ENTRY_TITLE$='Комбинезон' & $OTHER2$='Зима') || ($ENTRY_TITLE$='Комплект' & $OTHER2$='Зима') || ($ENTRY_TITLE$='Куртка' & $OTHER2$='Зима') || ($ENTRY_TITLE$='Пальто' & $OTHER2$='Зима') || ($OTHER2$='Школа' & $ENTRY_TITLE$='Рубашка') || ($OTHER2$='Школа' & $ENTRY_TITLE$='Костюм') || ($OTHER2$='Школа' & $ENTRY_TITLE$='Брюки') || ($OTHER2$='Школа' & $ENTRY_TITLE$='Жилет') || ($OTHER2$='Праздник' & $ENTRY_TITLE$='Платье') )?>$ENTRY_TITLE$<?else?><?if($ENTRY_TITLE$='Конверт на выписку' & $OTHER2$='Лето')?>Летний конверт на выписку<?endif?><?if($ENTRY_TITLE$='Комбинезон' & $OTHER2$='Зима')?>Зимний комбинезон<?endif?><?if($ENTRY_TITLE$='Комплект' & $OTHER2$='Зима')?>Зимний комплект<?endif?><?if($ENTRY_TITLE$='Куртка' & $OTHER2$='Зима')?>Зимняя куртка<?endif?><?if($ENTRY_TITLE$='Пальто' & $OTHER2$='Зима')?>Зимнее пальто<?endif?><?if($OTHER2$='Школа' & $ENTRY_TITLE$='Рубашка')?>Школьная рубашка<?endif?><?if($OTHER2$='Школа' & $ENTRY_TITLE$='Костюм')?>Школьный костюм<?endif?><?if($OTHER2$='Школа' & $ENTRY_TITLE$='Брюки')?>Школьные брюки<?endif?><?if($OTHER2$='Школа' & $ENTRY_TITLE$='Жилет')?>Школьный жилет<?endif?><?if($OTHER2$='Праздник' & $ENTRY_TITLE$='Платье')?>Нарядное платье<?endif?><?endif?> $BRAND$ <?if($OTHER6$)?>$OTHER6$ <?endif?><?if($OTHER7$ and $OTHER7$!='у')?>для <?if($OTHER7$='м')?>мальчика<?else?><?if($OTHER7$='д')?>девочки<?endif?><?endif?><?endif?> $ART_NO$</h1>

UPD.: да, вы правы - там потерял был, исправил.

Ex-ID: 179703 [11 Авг 2012]
Сообщение отредактировал -SAM- - Воскресенье, 29 Июл 2018, 22:17:37
«ShaGun»
Сообщений: 116
Репутация: 7

Сообщение # 3 | 14:44:52
Спасибо большое! Код куда более грамотный, чем мой! Единственное, 1 if не закрыт в конце после "девочки".
И отдельное спасибо за замечание про блок 3, давно забыл про него, буду исправлять.
Сообщество uCoz » Модули uCoz » Интернет-магазин » Прописываем уникальные мета с помощью оператора if
  • Страница 1 из 1
  • 1
Поиск: