Добрый день. В php не силен. Есть шаблон товара где выводится цена товара.
За вывод цены отвечает эти строки кода.
<span class="price red" style="display: block; width: auto; margin-bottom: 5px;background-color: #fff;"><del><?php print $node->field_old_price[0]['view'] ?></del></span></strong><span class="price red">
Строчки идут подряд.
<?php print $node->field_price[0]['view'] ?>
- первый вопрос по этой строчке, собственно зачем ее дублировать?
Второй вопрос такой:
Как реализовать это в коде? Приложу скриншот для наглядности.
Если поле field_price пустое или со значением 0, должно выводится поле допустим text_price с текстом на то же место.
Сейчас, если поле пустое, ничего не выводится, а остается просто серый прямоугольник.
Комментарии
Либо сделать вариант попроще, не придумывать ничего с полями, просто прописать слово в шаблоне непосредственно.
У вас там field_price и field_old_price - это два разных поля, т.е. у вас ничего не дублируется. Чтобы заменить текст в шаблоне, нужен приблизительно следующий код:
<?php $x=$node->field_old_price[0]['view'];
if(is_numeric($x) && $x!=0){
print $x} else {print('Звоните!')};?>
Спасибо, был не внимателен.
Parse error: syntax error, unexpected '}' in /var/www/vhosts/sitename/httpdocs/sites/all/modules/contemplate/contemplate.module(833) : eval()'d code on line 31
При вставке кода выдает эту ошибку. Ошибки в самом коде вроде нет, но выдает ее, где то лишняя скобка.
Немного напутал сам конечно, потому код плохо читаю
Естественно изменить надо <?php print $node->field_price[0]['view'] ?>. Сам подправил ваш код под Field_price, но выдало такую ошибку.
Там вообще 2 поля. При создании товара указывается старая цена и обычная, при указании старой цены, она зачеркивается и это выглядит как скидка, ну я думаю вы сами уже все поняли.
ну тут надо смотреть, что конкретно там написано в 31 строке. Вообще, в данном случае все фигурные скобки там не очень-то и нужны.
Спасибо за подсказку, но ошибок в коде точно нет, потому что сайт работает уже очень долгое время, да и модификаций в сам код внесено не мало.
Такой вот вопрос. А может данный участок кода конфликтовать с каким-нибудь модулем?
jquery(селектор блока с ценой :contains (чего там нулевая цена содержит)).html(звоните/перезвоните ссылкой на форму заказа звонка)
как то - так,
тупо оформление - лежит в теме - жрет ресурсы клиентов.
в моём коде ошибка))) В файле contemplate.module в 31 строке. Попробуйте убрать фигурные скобки. Там же по одному оператору везде.
Как это работает я понимаю, но не синтакса, ни языка я не знаю
по этому сам написать не смогу, остается только пилить на php.
Все таки спасибо за написанный код, сам бы не допер, а в коде все равно выдает ошибку))) даже без скобок, все в той же 31 строке, только Parse error: syntax error, unexpected T_ELSE in
да уж печаль,
конечно конечно, пилить на не изученном php по незнакомому апи в сотни раз проще, чем вбить в поиск три англицких слова - имя библиотеки, фильтр и метод -да побаловать в фаербаге.
пилите Шура, пилите))
Я люблю доставлять себе удовольствие мучениями). Мне как то проще работать с тем что я хотя бы пару раз видел
да явите вы уже миру эту 31-ю строку)) Непонятно же, что там такое)
Судя по всему это и есть строчка с <?php print $node->field_price[0]['view'] ?>
Если смотреть напрямую в contemplate.module, то ее фиг найдешь.
Почти любой текстовый редактор, если это не стандартный блокнот и не ворд (упаси господи!), нумерует строки.
Вообщем решил задачу. А решение пришло как всегда из неоткуда. Решил не изобретать велосипед, а просто создать текстовое поле и добавить его в шаблон внеся в
<span>
. Таким образом при заполнении поля когда товар создается, оно отображается с тем значение которое туда вписали.<?php print $node->field_zapros[0]['view'] ?>
Это понятно, но там самого куска кода, который мне нужен был не было. Там был код модуля.