Как для товаров добавить возможность отображать "ожидается" без возможности покупки?

#
Как для товаров добавить возможность отображать "ожидается" без возможности покупки?
Добрый день!
как реализовать такую возможность:
у нового (или редактируемого) товара, который ожидается запустить в продажу в ближайшее время, отображать слово "ожидается" вместо купить, а по приходу товара, просто установить его цену, чтобы можно было купить?

и подобный вопрос про новинки:
как сделать чтобы в общем списке товаров была возможность отображать на товаре значек "новинка" с возможностью купить этот товар?
#
Re: Как для товаров добавить возможность отображать "ожидается" без возможности покупки?
вы немного неправильно формулируете вопрос. система должна понимать почему именно этот товар нужно пометить "ожидается". т.е. вы определитесь, по какому признаку эта метка должна устанавливаться. например, по нулевым остаткам, или нулевой цене.
в любом случае редактировать придется xsl-шаблоны МагазинКаталогТоваров и МагазинТовар.
вот вам для примера кусок кода для каталога товаров, чтобы выводить кнопку "купить", только, если цена не нулевая, а в противном случае выводить надпись "ожидается".
<xsl:choose>
<xsl:when test="price != 0 and (type = 0 or (type = 1 and (digitals > 0 or digitals = -1)))">
   <div style="margin: 5px 0 15px 0">
      <!-- <div style="border: 1px solid #CCCCCC; border-radius: 4px 4px 4px 4px; width: 100px; padding: 3px 0 3px 0; margin-left: 80px">-->
         <a href="{/shop/url}cart/?add={@id}" onclick="return $.addIntoCart('{/shop/url}cart/', {@id}, 1)" class="button2 white medium">
            <!-- <img src="/images/add_to_cart.gif" alt="Добавить в корзину" title="Добавить в корзину" />-->Купить >
         </a>
         <!-- </div> -->
   </div>
</xsl:when>
<xsl:otherwise>
   <br>Ожидается</br>
</xsl:otherwise>
</xsl:choose>

а вот так выглядит этот кусок кода в оригинале.
<xsl:if test="type = 0 or (type = 1 and (digitals > 0 or digitals = -1))">
   <div style="margin: 5px 0 15px 0">
      <!-- <div style="border: 1px solid #CCCCCC; border-radius: 4px 4px 4px 4px; width: 100px; padding: 3px 0 3px 0; margin-left: 80px">-->
         <a href="{/shop/url}cart/?add={@id}" onclick="return $.addIntoCart('{/shop/url}cart/', {@id}, 1)" class="button2 white medium">
            <!-- <img src="/images/add_to_cart.gif" alt="Добавить в корзину" title="Добавить в корзину" />-->Купить →
         </a>
      <!-- </div> -->
   </div>
</xsl:if>

по аналогии исправляете и МагазинТовар.

то же и с новинками. сначала определитесь по какому признаку будет выводиться нужная вам пометка. и, после проверки этого признака, в этом же блоке осуществляете вывод надписи "новинка".
#
Re: Как для товаров добавить возможность отображать "ожидается" без возможности покупки?
спасибо огроменное! все получилось замечательно!

только вот с новинками пока не соображу, получается, что на главной странице выводятся все новинки, то есть последние добавленные товары, а если данное условие из шаблона МагазинСписокНовинокНаГлавной поставить в шаблон МагазинКаталогТоваров, то выводится значек "новинка" на всех товарах.
#
Re: Как для товаров добавить возможность отображать "ожидается" без возможности покупки?
в моей версии, к сожалению, нет шаблона МагазинСписокНовинокНаГлавной, так что я не вижу этот код. теоретически должно работать, может вы не в том месте проверку ставите.
#
Re: Как для товаров добавить возможность отображать "ожидается" без возможности покупки?
а как тогда добавить такое условие - если товар добавлен не более 7 дней, то отображать значек "новинка"?

ну что-то типа того:

<xsl:if test="date < 7 and (type = 7)">
  <span class="new_icon"><img title="" alt="" src="/images/site34/promo_icon.gif" /></span>
</xsl:if>

я понимаю, что данный вариант неправильный, только не могу понять логику
#
Re: Как для товаров добавить возможность отображать "ожидается" без возможности покупки?
логика такая: нужно сравнивать item_date (дату элемента) с cur_date (текущей датой), а точнее - сравнивать их разность в днях с 7, если я правильно вас понял.
оказывается, в xsl это не так просто, вот здесь обсуждали.
Модератор
#
Re: Как для товаров добавить возможность отображать "ожидается" без возможности покупки?
Прощу хук навесить, на PHP посчитать и добавить новый тег с результатом сравнения.
http://www.hostcms.ru/forums/2/7123/
#
Re: Как для товаров добавить возможность отображать "ожидается" без возможности покупки?
вот тут http://www.hostcms.ru/forums/22/4091/page-2/ была рассмотрена подобная задача и реализована на 5 версии, а можно ее для 6 версии сделать?

в ТДС вставляется

$now = time();
$period = 30;
$backdate = date('Ymd', mktime(0, 0, 0, date('m', $now), intval(date('d', $now)) - $period, date('Y', $now), -1));
$external_propertys['backdate'] = $backdate;


а в xsl

<xsl:variable name="add_date" select="concat(substring(datetime, 7, 4), substring(datetime, 4, 2), substring(datetime, 1, 2))" />
<xsl:if test="add_date > backdate">
<img border="0" src="/images/hot2.gif" width="78" height="63" style="float: right"/>
</xsl:if>
#
Re: Как для товаров добавить возможность отображать "ожидается" без возможности покупки?
так это практически тот же вариант. теоретически должно работать в шестерке.
#
Re: Как для товаров добавить возможность отображать "ожидается" без возможности покупки?
во такой еще вариант есть от Kotoff http://www.hostcms.ru/forums/22/8146/
www.morozovpimnev.ru - создание, поддержка и продвижение сайтов | Наш канал https://asmp.su/channel
Авторизация