26.06.2015 09:56
Доброго времени суток
помогите пожалуйста с кодом.
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 21 сообщение(ий)):
У вас нет прав чтобы видеть скрытый текст, содержащийся здесь.

Это изначальный код, который выводит цену, но если цена 0 - то на экране пусто, я почитал
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 21 сообщение(ий)):
У вас нет прав чтобы видеть скрытый текст, содержащийся здесь.

пробовал по разному. но в этом коде : стоят, а на сайте учебнике, все по другому выглядит
Спасибо
26.06.2015 13:03
Про двоеточия
Альтернативный синтаксис PHP для файлов отображений

По вопросу - если $arPrice["CAN_ACCESS"] означает "товар есть/нет", тогда перед последним endif вставить вывод нужного текста
Код:
<?endif;?>
<?else:?>
<?= "Под заказ" // или некий GetMessage() ?>
<?endif?>
27.06.2015 12:57
Если вставляю код этот, то страница товара вообще пустая становится. ((((
28.06.2015 12:10
Ошибку в журнале каком-то смотри... Белая страница, как правило - ошибка в коде.
29.06.2015 02:54
В логе ошибок пусто.
Белая страница не на весь экран - а только карточка товара, остальной сайт в порядке.
в логах ошибок нет ((( (смотрел из cPanelи)
29.06.2015 03:43
и я хотел бы что бы не на наличие на складе не наличие отображалось
а именно цена - если ноль = под заказ.
Как я понял у меня за вывод цены отвечает
<?= $arPrice["PRINT_VALUE"] ?>
если я его комментирую, цена не выводится в карточке товара, я пытался применить как то выше написанный код к этой строке, но опять белый экран
29.06.2015 10:13
Лог с ошибками все-же нужно найти, гадать неинтересно.

И отрабатывает ли $arPrice["PRINT_VALUE"] на все товары, в том числе с нулевой ценой?
Если для нулевых вообще нет записей в массиве $arResult["PRICES"], правка данного куска кода не имеет смысла.
29.06.2015 10:20
Поищу сейчас лог, просто я думал в cpanel корректно выводит 300 последних ошибок
не знаю обрабатывает или нет ((
пока понял только что если убрать эту строку из файла отвечающий за детальное отображение карточки товара, строка с ценой, пропадает (становится пустой) даже там где цена есть.
01.07.2015 04:53
Разобрался с ошибками
В логе хостера ошибок нет - так как это внутренние переменные - в битриксе по умолчанию ошибки скрываются
для того что бы они выводились на экран в .htaccess нужно добавить php_value display_errors 1

В общем
что вышло
1 вариант:
<?foreach($arResult["PRICES"] as $code=>$arPrice):?>
<?if($arPrice["CAN_ACCESS"]):?>


<?if($arParams["PRICE_VAT_SHOW_VALUE"] && ($arPrice["VATRATE_VALUE"] > 0)):?>
<?if($arParams["PRICE_VAT_INCLUDE"]):?>
(<?echo GetMessage("CATALOG_PRICE_VAT")?>)
<?else:?>
(<?echo GetMessage("CATALOG_PRICE_NOVAT")?>)
<?endif?>
<?endif;?>
<?if($arPrice["DISCOUNT_VALUE"] < $arPrice["VALUE"]):?>
<?= $arPrice["PRINT_VALUE"] ?><?= $arPrice["PRINT_DISCOUNT_VALUE"] ?>
<?if($arParams["PRICE_VAT_SHOW_VALUE"]):?>
<?= GetMessage("CATALOG_VAT") ?><?= $arPrice["DISCOUNT_VATRATE_VALUE"] > 0 ? $arPrice["PRINT_DISCOUNT_VATRATE_VALUE"] : GetMessage("CATALOG_NO_VAT") ?>
<?endif;?>
<?else:?>
<?= $arPrice["PRINT_VALUE"] ?>
<?if($arParams["PRICE_VAT_SHOW_VALUE"]):?>
<?= GetMessage("CATALOG_VAT") ?><?= $arPrice["VATRATE_VALUE"] > 0 ? $arPrice["PRINT_VATRATE_VALUE"] : GetMessage("CATALOG_NO_VAT") ?>
<?endif;?>



<?= "Под заказ" // или некий GetMessage() ?>



<?endif?>

Ошибки никакой нет, но и слова под заказ нигде не наблюдается ни на странице, ни в исходном коде упоминаний нет

если целиком вставить текст из
примера:
<?endif;?>
<?else:?>
<?= "Под заказ" // или некий GetMessage() ?>
<?endif?>

получая этот
код:
<?foreach($arResult["PRICES"] as $code=>$arPrice):?>
<?if($arPrice["CAN_ACCESS"]):?>


<?if($arParams["PRICE_VAT_SHOW_VALUE"] && ($arPrice["VATRATE_VALUE"] > 0)):?>
<?if($arParams["PRICE_VAT_INCLUDE"]):?>
(<?echo GetMessage("CATALOG_PRICE_VAT")?>)
<?else:?>
(<?echo GetMessage("CATALOG_PRICE_NOVAT")?>)
<?endif?>
<?endif;?>
<?if($arPrice["DISCOUNT_VALUE"] < $arPrice["VALUE"]):?>
<?= $arPrice["PRINT_VALUE"] ?><?= $arPrice["PRINT_DISCOUNT_VALUE"] ?>
<?if($arParams["PRICE_VAT_SHOW_VALUE"]):?>
<?= GetMessage("CATALOG_VAT") ?><?= $arPrice["DISCOUNT_VATRATE_VALUE"] > 0 ? $arPrice["PRINT_DISCOUNT_VATRATE_VALUE"] : GetMessage("CATALOG_NO_VAT") ?>
<?endif;?>
<?else:?>
<?= $arPrice["PRINT_VALUE"] ?>
<?if($arParams["PRICE_VAT_SHOW_VALUE"]):?>
<?= GetMessage("CATALOG_VAT") ?><?= $arPrice["VATRATE_VALUE"] > 0 ? $arPrice["PRINT_VATRATE_VALUE"] : GetMessage("CATALOG_NO_VAT") ?>
<?endif;?>


<?endif;?>
<?else:?>
<?= "Под заказ" // или некий GetMessage() ?>
<?endif?>


<?endif?>


получается ошибка Parse error: syntax error, unexpected 'endif' (T_ENDIF) in

прописываю просто строку <?= "Под заказ" // или некий GetMessage() ?> перед последним ендифом, товар выводится, но упоминаний под заказ нет
01.07.2015 05:08
Ура получилось
благодаря <?= "Под заказ" // или некий GetMessage() ?>
не туда тыкал - в примере не весь код показал
на 2 строки выше было еще 2 строчки, я туда вставил
и показывает теперь нет в наличии
только я пока логику не понял
по идее есть например выражение - затем если равно что то = выводим А, затем Если значение не равно = выводим Б

а тут вышло вот как

код всего блока:
<ul class="price-block group">
<li><strong><?=GetMessage("CATALOG_PRICE")?></strong></li>
<? if ($arResult["DISPLAY_PROPERTIES"]["OLD_PRICE"]){?><li class="old"><?=$arResult["DISPLAY_PROPERTIES"]["OLD_PRICE"]["VALUE"];?> <? if ($arResult["DISPLAY_PROPERTIES"]["ED_IZM"]){?>/<?=$arResult["DISPLAY_PROPERTIES"]["ED_IZM"]["VALUE"];?><?}?></li><?}?>

<?= "Под заказ" // или некий GetMessage() ?> - обошлось без иф и елсе - почему так ? простро строку вставил и все

<li class="new">


<?foreach($arResult["PRICES"] as $code=>$arPrice):?>
<?if($arPrice["CAN_ACCESS"]):?>


<?if($arParams["PRICE_VAT_SHOW_VALUE"] && ($arPrice["VATRATE_VALUE"] > 0)):?>
<?if($arParams["PRICE_VAT_INCLUDE"]):?>
(<?echo GetMessage("CATALOG_PRICE_VAT")?>)
<?else:?>
(<?echo GetMessage("CATALOG_PRICE_NOVAT")?>)
<?endif?>
<?endif;?>
<?if($arPrice["DISCOUNT_VALUE"] < $arPrice["VALUE"]):?>
<?= $arPrice["PRINT_VALUE"] ?><?= $arPrice["PRINT_DISCOUNT_VALUE"] ?>
<?if($arParams["PRICE_VAT_SHOW_VALUE"]):?>
<?= GetMessage("CATALOG_VAT") ?><?= $arPrice["DISCOUNT_VATRATE_VALUE"] > 0 ? $arPrice["PRINT_DISCOUNT_VATRATE_VALUE"] : GetMessage("CATALOG_NO_VAT") ?>
<?endif;?>
<?else:?>
<?= $arPrice["PRINT_VALUE"] ?>
<?if($arParams["PRICE_VAT_SHOW_VALUE"]):?>
<?= GetMessage("CATALOG_VAT") ?><?= $arPrice["VATRATE_VALUE"] > 0 ? $arPrice["PRINT_VATRATE_VALUE"] : GetMessage("CATALOG_NO_VAT") ?>
<?endif;?>
<?endif?>


<?endif;?>
<?endforeach;?><? if ($arResult["DISPLAY_PROPERTIES"]["ED_IZM"]){?>/<?=$arResult["DISPLAY_PROPERTIES"]["ED_IZM"]["VALUE"];?><?}?>



</li>
<li class="bay"><a href="<?echo $arResult["ADD_URL"]?>" rel="nofollow"><img src="<?= SITE_TEMPLATE_PATH ?>/images/cart.png" width="16" height="16" alt="cart"/><?= GetMessage("CATALOG_ADD_TO_BASKET") ?></a></li>
<?$APPLICATION->IncludeComponent("hard:formfeedback");?>
</ul>
Часовой пояс GMT +3, время: 15:36.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.