Темизация ноды, вывод field collections

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

Аватар пользователя elf39 elf39 7 октября 2013 в 23:34

Здравствуйте, подскажите пожалуйста как в шаблоне ноды вывести поля Field collections. Поля Field collections принадлежат пользователю. Во вьюсе это делалось с помощью отношений а в шаблоне как?

Комментарии

Аватар пользователя elf39 elf39 7 октября 2013 в 23:46

"sergeybelya" wrote:
Из вопроса непонятно что вам мешает вывести их с помощью Views

Трудно будет объяснить, просто нода выводится много где и легче её темизировать.

Аватар пользователя sergeybelya sergeybelya 7 октября 2013 в 23:54

elf39 wrote:
"sergeybelya" wrote:
Из вопроса непонятно что вам мешает вывести их с помощью Views

Трудно будет объяснить, просто нода выводится много где и легче её темизировать.

Для Field Collection есть модуль https://drupal.org/project/field_collection_views - наверняка с его помощью можно решать задачу.
Или если хочется именно через темизацию, изучайте https://drupal.org/node/1353926.

Аватар пользователя elf39 elf39 7 октября 2013 в 23:48

В экспорте вьюхе нашел как выводится, а вот как это в node.tpl.php засунуть?

<?php
/* Поле: Field collection item: Фамилия */
$handler->display->display_options['fields']['field_profil_famali']['id'] = 'field_profil_famali';
$handler->display->display_options['fields']['field_profil_famali']['table'] = 'field_data_field_profil_famali';
$handler->display->display_options['fields']['field_profil_famali']['field'] = 'field_profil_famali';
$handler->display->display_options['fields']['field_profil_famali']['relationship'] = 'field_profil_main_value';
$handler->display->display_options['fields']['field_profil_famali']['label'] = '';
$handler->display->display_options['fields']['field_profil_famali']['exclude'] = TRUE;
$handler->display->display_options['fields']['field_profil_famali']['element_label_colon'] = FALSE;?>
Аватар пользователя toshic toshic 7 октября 2013 в 23:54

просто сделайте блок вьюса с аргументом uid автора, если я правильно вас понял,то вам нужно в ноде выводить поля автора ноды и поищите в гугле -программный вывод view , там всего несколько строчек кода и спокойно их вставите в свой шаблон ноды.

Аватар пользователя elf39 elf39 7 октября 2013 в 23:59

"toshic" wrote:
просто сделайте блок вьюса с аргументом uid автора

Что то я не понял, сделать блок потом его выводить в шаблоне?

Аватар пользователя elf39 elf39 8 октября 2013 в 0:18

"sergeybelya" wrote:
Или если хочется именно через темизацию, изучайте https://drupal.org/node/1353926.[/quote]
Вставил код по подобию

<?php
foreach ($node->field_profil_main[LANGUAGE_NONE] as $entity_id) {
  
$entity entity_load('field_profil_famali', array($entity_id['value']));
  
dpm($entity);
}
?>

Но не работает выдает ошибку: Notice: Undefined property: stdClass::$field_profil_main в функции include() (строка 12 в файле node--velo_fotogallery.tpl.php). Я как понимаю потому что оно в другой сущности вообще находится. Подскажите как правильно сделать?

Аватар пользователя sergeybelya sergeybelya 8 октября 2013 в 0:56

elf39 wrote:
"sergeybelya" wrote:
Или если хочется именно через темизацию, изучайте https://drupal.org/node/1353926.

Вставил код по подобию

<?php
foreach ($node->field_profil_main[LANGUAGE_NONE] as $entity_id) {
  
$entity entity_load('field_profil_famali', array($entity_id['value']));
  
dpm($entity);
}
?>

Но не работает выдает ошибку: Notice: Undefined property: stdClass::$field_profil_main в функции include() (строка 12 в файле node--velo_fotogallery.tpl.php). Я как понимаю потому что оно в другой сущности вообще находится. Подскажите как правильно сделать?[/quote]
Некогда, извините, если совсем не разберетесь, пишите в личку, на ком. основе разве что помогу.

Аватар пользователя elf39 elf39 8 октября 2013 в 1:04

"sergeybelya" wrote:
Некогда, извините, если совсем не разберетесь, пишите в личку, на ком. основе разве что помогу.

Спасибо и на этом, буду дальше копать, может время появится поможете :). Может кто еще подскажет что.

Аватар пользователя elf39 elf39 8 октября 2013 в 10:32

"toshic" wrote:
http://i-drup.ru/blog/programmnyi-vyvod-views[/quote]
Спасибо интересное решение.

Что то посидел покумекал и думаю попробовать все таки с помощью вьюса выводить поля. Может подскажите что и как.

У меня есть 5 типов материалов, и 5 терминов таксономии. В каждом типе материала есть поле с задорным по умолчанию термином таксономии, менять их нельзя. Этих 5 терминов таксономии являются 3 уровнем вложенности. На этих терминах и строится меню, и получается что у мня для каждого меню пункта меню свой тип материала и свои поля. Тем самым представление /taxonomy/term/% не подходит. Модуль taxonomy term не совсем подходит то же, так как он подключатся не к термину а словарю. Вот и получается кракозябра, что приходится формировать вьюсом список с анонсами, а анонсы шаблонизировать ноды. Если найти выход как переопределять мне конкретный термин таксономии поесть velo/blog то можно бы было для него и делать набор полей и не страдать ерундой.

Аватар пользователя elf39 elf39 8 октября 2013 в 14:18

"toshic" wrote:
просто сделайте блок вьюса с аргументом uid автора

Что то не фига с аргументом не получается. Что и как нужно сделать?

Аватар пользователя Nymphaion Nymphaion 18 октября 2013 в 12:07

"elf39" wrote:
Куда хоть вывести и через что?

Вывести в field-collection-item.tpl.php а через что я понятия не имею, т.к. field-collection не воспринимает ни $node ни $user

Аватар пользователя elf39 elf39 18 октября 2013 в 12:26

А нужно вывести автора который создал коллекцию полей? Не могу понять вопроса.

"Nymphaion" wrote:
field-collection не воспринимает ни $node ни $user

попробуйте $content

Аватар пользователя Nymphaion Nymphaion 18 октября 2013 в 12:50

"elf39" wrote:
попробуйте $content

Нужно вывести автора, который создал ноду с этими полями, чтоб их)))
Например у меня есть content type Album и в нем есть поле Photo, к которому прикручено field-collection.
$content там уже есть (в field-collection-item.tpl.php)и выводит он все поля из field-collection

Аватар пользователя elf39 elf39 18 октября 2013 в 13:14

Это делается в node.php.tpl, как вывести в ней field-collection программно так и не понял. Сделал как писали выше с мощью блока представления. А дальше сделайте условие на поле, если оно есть то выводить автора, если нет то не выводить. Шаблон field-collection-item.tpl.php отвечает только за шаблон поля.