[Решено] стр. чертеж вывести поля деталей табл

Главные вкладки

Аватар пользователя airfox airfox 14 декабря 2014 в 13:44

Не могу разобраться как это реализовать во views,буду признателен если ткнете носом в нужном направлении.
Суть проблемы: Есть тип содержимого Чертеж, на нем должено выводиться изображение чертежа с area map, и таблица с деталями каждому полю которой присваивается id, для перехода с изображения. Есть материал Деталь в нем есть поля: порядковый номер детали на чертеже, номер детали, кол-во шт. и примечание. хотелось бы что на странице содержимого Чертеж выводилась таблица деталей состоящая из полей содержимого Деталь, пытаюсь реализовать это во views пока безуспешно, буду очень признателен за придание мне ускорения для решения данной проблемы.

по пробую написать подробней.

Есть тип содержимого: Чертеж, Деталь
Тип содержимого Деталь содержит поля: Номер детали в таблице, Артикул, Название, Кол-во.
Нужно создать блок views который должен выводиться в типе содержимого Чертеж в виде таблицы и содержать поля содержимого Деталь. Пока сделал так добавил и Чертежу и Деталь поле ссылку на словарь таксономии "Страницы чертежей" в нем добавил термины чертеж1, чертеж2. Создал материал содержимого Чертеж и так же назвал Чертеж1, Чертеж2 и привязал к одно именным терминам словаря. Создал несколько деталей и добавил им термины (пару в черт1 пару в черт2).

Создал вьюс для содержимого Чертеж ввиде блока, добавил поля содержимого Деталь, теперь думаю как настроить фильрацию по термину таксономии

Комментарии

Аватар пользователя airfox airfox 14 декабря 2014 в 14:41

по пробую написать подробней.

Есть тип содержимого: Чертеж, Деталь
Тип содержимого Деталь содержит поля: Номер детали в таблице, Артикул, Название, Кол-во.
Нужно создать блок views который должен выводиться в типе содержимого Чертеж в виде таблицы и содержать поля содержимого Деталь. Пока сделал так добавил и Чертежу и Деталь поле ссылку на словарь таксономии "Страницы чертежей" в нем добавил термины чертеж1, чертеж2. Создал материал содержимого Чертеж и так же назвал Чертеж1, Чертеж2 и привязал к одно именным терминам словаря. Создал несколько деталей и добавил им термины (пару в черт1 пару в черт2).

Создал вьюс для содержимого Чертеж ввиде блока, добавил поля содержимого Деталь, теперь думаю как настроить фильрацию по термину таксономии

Аватар пользователя gun_dose gun_dose 14 декабря 2014 в 23:27

Это типа спецификация на сборочный чертёж нужна? Тогда нужен модуль Node Reference, через него к чертежу добавляем все входящие детали. С помощью модуля Node Reference View Formatter делаем таблицу спецификации, где будут выводиться все нужные поля из деталей. Таксономия тут нужна только для задания раздела спецификации, он в представлении таблицы должен быть группирующим полем.

Но тут тогда возникает одна сложность - как быть с атрибутами входимости. Такими, как количество и примечание (если оно не глобальное). Т.е. есть, например, Винт В.М3-6gх5 12ХН9Т ГОСТ1491-80 и в Сборке 1 он используется в количестве 2шт, а в сборке 2 он используется в количестве 5шт. Можно, конечно этот винт каждый раз создавать заново, но это неправильно. Если кто-то знает для этого какие-то готовые решения, с интересом выслушаю. Не то, чтобы мне это нужно. Просто интересно, т.к. в свободное от друпала время занимаюсь PDM-системами))

Аватар пользователя VasyOK VasyOK 15 декабря 2014 в 0:14

"airfox" wrote:
Есть тип содержимого: Чертеж, Деталь

Возможно пригодятся:
https://www.drupal.org/project/field_collection
https://www.drupal.org/project/entityreference

"airfox" wrote:
Деталь, теперь думаю как настроить фильрацию по термину таксономии

https://www.drupal.org/project/views_selective_filters

Вобщем дерзайте!

Аватар пользователя shumod@drupal.org shumod@drupal.org 15 декабря 2014 в 10:21

"airfox" wrote:
Создал вьюс для содержимого Чертеж ввиде блока, добавил поля содержимого Деталь, теперь думаю как настроить фильрацию по термину таксономии

Нужно создать контекстный фильтр "Content: Has taxonomy term ID". В нём выбрать "Provide default value" и php-код.

В поле написать что-то вроде(без <?php и ?>):

<?php
  $node 
node_load(arg(1));
  return 
$node->field_tags['und'][0]['tid']; //fiels_tags - название словаря таксономии
?>
Аватар пользователя airfox airfox 15 декабря 2014 в 14:15

"gun_dose" wrote:
Тогда нужен модуль Node Reference, через него к чертежу добавляем все входящие детали. С помощью модуля Node Reference View Formatter делаем таблицу спецификации, где будут выводиться все нужные поля из деталей.

Опишу более подробно.. вдруг кому пригодится: Создаем вьюс для содержимого Деталь, добавляем поля которые необходимо выводить на ноде Чертеж, в КОНТЕКСТНЫЕ ФИЛЬТРЫ: указываем Содержимое: Nid, там указываем в настройках: когда значение фильтра не доступно выбираем значение по умолчанию брать ID материала из URL, и включаем опцию Allow multiple values(Разрешить множественные значения). В отображение полей ноды Чертеж, полю Node Reference выбираем в качестве форматтера поля — Rendered View и в настройках указываем созданное ранее представление

"gun_dose" wrote:
Таксономия тут нужна только для задания раздела спецификации, он в представлении таблицы должен быть группирующим полем.

я использовал таксономию что бы реализовать с помощью нее связь, обошлось без нее, хотя ее использование как было подмечено тоже возможно пригодится.
"gun_dose" wrote:

Но тут тогда возникает одна сложность - как быть с атрибутами входимости. Такими, как количество и примечание (если оно не глобальное). Т.е. есть, например, Винт В.М3-6gх5 12ХН9Т ГОСТ1491-80 и в Сборке 1 он используется в количестве 2шт, а в сборке 2 он используется в количестве 5шт. Можно, конечно этот винт каждый раз создавать заново, но это неправильно. Если кто-то знает для этого какие-то готовые решения, с интересом выслушаю. Не то, чтобы мне это нужно. Просто интересно, т.к. в свободное от друпала время занимаюсь PDM-системами))

у меня все статично с данными полями, то есть они не будут изменяться:)

перехожу ко второму этапу... мне нужно теперь присвоить id или name желательно для <tr> или же полю для якоря, на верно будет выглядеть не очень если будет выделяться только одно поле, то есть у меня по переходу используется js который добавляет дополнительный класс <tr>, который и задает выделение цветом. Займемся темизацией views

Аватар пользователя airfox airfox 15 декабря 2014 в 17:00
<?php
<tr <?php if ($row_classes[$row_count]) { print 'class="' implode(' '$row_classes[$row_count]) .'"';  } ?>>
?>

как сюда добавить id?

пробую так не получается:

<?php
<tr <?php if ($row_classes[$row_count]) { print 'class="' implode(' '$row_classes[$row_count]) .'"';  } ?> id="node-<?php print $rows->nid?>>
?>

и так тоже

<?php
<tr <?php if ($row_classes[$row_count]) { print 'class="' implode(' '$row_classes[$row_count]) .'"';  } ?> id="<?php print $fields['nid']->content ?>">
?>

поле nid добавил и исключил из вывода.
и так не пошло

<?php
 id
="<?php print $fields['имя_поля']->content; ?>"
?>

чет по ходу надо пойти поспать......