[Решено] Выташить ссылку из поля cck_nodereferance

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

Аватар пользователя AkeLLbl4 AkeLLbl4 11 декабря 2010 в 17:36

Имеется views в котором выводятся поля материала.
Одно из полей типа node_reference и отображается как "Заголовок(ссылка)"
Соответственно получаем такую картину:

Поле 1
Поле 2
Поле "Заголовок (ссылка)"

А хотелось бы все имеющиеся поля обернуть этой ссылкой из поля node_referance не выводя заголовка.

Помогите в решении такой задачи. А то уже всю голову сломал Sad

С помощью Dan, решил проблему правильно!

Dan wrote:
Надо добавить Relationship(Взаимосвязь) на ту ноду, куда ссылается node_reference, тоесть выбрать node_referance которое ссылается на нужную нам ноду.
Далее в поля добавить Материал: Nid, исключить его из отображения в полях, поставить первым в списке полей и указать тот Relationship(Взаимосвязь), который создали.
Потом для каждого поля, который надо сделать ссылкой, нажимаем "Output this field as a link"(Выводить это поле в виде ссылки) и пишем там node/[nid].

Комментарии

Аватар пользователя AkeLLbl4 AkeLLbl4 12 декабря 2010 в 16:52

<a href="mailto:sas@drupal.org">sas@drupal.org</a> wrote:
Посмотрите в сторону "Тема: Информация" в настройках вашего views - оттуда можно обернуть и с верху и сбоку и снизу ...

Вот содержимое шаблона поля ссылки:
<?php $output?>

Как бы его разложить на ссылку и текст ссылки, да или хотябы путь ссылки и легко бы обернул.

Аватар пользователя AkeLLbl4 AkeLLbl4 12 декабря 2010 в 19:09

Решил проблему косоруким исправлением шаблонов темы.
В поле ссылки она выводилась в формате
<a href="путь">Название</a>
views-view-field--taxonomy-term--field-product-model-link-nid.tpl.php - поле с ссылкой


<?php 
    
//разделяем строку на 2 части после символа ">"
    
$array explode('>'$output);
    
//выводим первую ячейку массиваи добавляем к ней закрытие тэга ссылки
    //в PHP  я не силен поэтому способ самый кривой которым можно было отрезать конец ссылки.
    
print $array[0] . '>';
?>

views-view-fields.tpl.php - шаблон вывода полей


<?php foreach ($fields as $id => $field){
    if (
$field->class == 'field-product-model-link-nid') {
                
//не оборачиваем в div поле с ссылкой
        
print $field->content;
    } else {
        if (
$field->class == 'field-product-model-value') {
                        
//закрываем ссылку после нужного поля
            
print '<div class="' $field->class '">' $field->content '</div></a>'
        } else {
                        
//все остальные поля выводятся как всегда
            
print '<div class="' $field->class '">' $field->content '</div>';
        };
    };
}; 
?>