Приветствую, есть такая задача: при создании ноды добавлять к ней позиции в виде, яблоки, груши, сливы...
У позиций есть как вес так и цена, которые необходимо вписывать вручную.
Как я это представляю, при создании ноды есть позиции с чекбоксами (возможно термины), на против них два инпута вес и цена, вписываем вес и цену, после сохранения получаем:
Яблоки 4кг по 10р. = 40р.
Груши 2кг по 10р. = 20р.
И того = 60р.
Как это все можно реализовать? Спасибо!
Комментарии
Вы хотите заново изобрести интернет-магазин?
Хочу просто сделать что то простое с полями..
А арифметику можно воткнуть в препроцесс или шаблон.
Как это сделать, примерно?
Rules
Рулес вообще тут не нужен. Просто в коде пишем (при использовании double field):
<?php
$x = $node->field_что-то-там['und'][0]['first'] * $node->field_что-то-там['und'][0]['second'];?>
Ну и вывод типа
<?php
print $node->field_что-то-там['und'][0]['first'] . ' умножить на ' . $node->field_что-то-там['und'][0]['second'] . ' равно ' . $x;
?>
Кхм-кхм.... Таки, вордпрессовщиной попахивает.
По многим причинам.
Прежде всего - из-за выноса логики в слой представления.
Помимо прочего, отсутствие проверок и обращение к неизвестным свойствам, неизвестным массивам... Все это оочень нестабильно, да и выглядит "плохо". А ведь это еще без циклов.
Ну, и еще, целесообразность постоянного пересчета всех значений, в то время, когда значения вполне статичны, и могут быть, если записаны не в базу, то в кеш. Можно считать только при сохранении все, потом просто использовать.
Не буду топить за рулзы, сам их не использую, но для юзеров без возможности писать код - вполне решение.
А если уже писать код - делать нормальный форматтер, специализированный, поддерживаемый, этот самый -Drupal-way'ный.
Всё равно семёрку уже никто не поддерживает, поэтому можно бесчинствовать в шаблонах без зазрения совести? А если серьёзно, то умножение двух переменных не такая уж и логика.
Ну, не знаю. Поддерживает, не поддерживает, а делать нужно стремиться правильно.
На счет логики - не думаю что есть какая-то градация. Она либо логика, либо нет.
Пускай, в общем, ТС решает сам для себя путь, которым идти. Варианты перед ним раскрыты.
Если мыслить так категорично, то использование if и foreach в шаблонах тоже недопустимо
Все верно.
Вот только важно отделять логику от функциональной составляющей шаблонов.
Если, к примеру, выводится список (<ul/> | <ol/> всякие, или просто перечень одинаковых строк) - это вполне себе допустимый вариант.
Также и с проверками - проверить, например, существование значение - может быть нормальной практикой. В тоже время всякие "$is_front" и "$is_anonymous" для вывода абсолютно разных лейаутов (прописанных в том же шаблоне) - это уже скатывание в месс.
Но, в идеале - да, всего этого стоит максимально избегать.
Частично решил вопрос, Field collection + DS поле с кодом и вуаля, считает, получаем
Яблоки
вес 10
цена 10
итого 100
Таких составных позиций может быть много, 5-10 и тд..(Количество значений: неограничен) как теперь реализовать чтобы "Итого" со всех позиций суммировались?