Переопределить вывод полей во view

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

Аватар пользователя Neumann Neumann 22 декабря 2011 в 21:28

Добрый день.

Подскажите пожалуйста, уже все перепробовал.

Вьюха. Есть два поля в блоке. Выводятся сейчас по дефолту, т.е. для них файлы не заданы.
Сейчас по такому принципу

<div class="views-field-!название первого поля!">
        <div class="field-content">
                <div class="field-item field-item-0">Первое значение</div>
                <div class="field-item field-item-1">Второе</div>
                <div class="field-item field-item-2">Третье</div>
                <div class="field-item field-item-3">Четвертое</div>
        </div>
</div>
<div class="views-field-!название второго поля!">
        <div class="field-content">
                <div class="field-item field-item-0">еще Первое значение</div>
                <div class="field-item field-item-1">еще Второе</div>
                <div class="field-item field-item-2">еще Третье</div>
                <div class="field-item field-item-3">еще Четвертое</div>
        </div>
</div>

Мне нужно получить все эти значение (в данном случае 8 штук) - просто в текстовом виде, без дивов.

Что именно мне переопределять.
Пробовал Style output, Row style output и такой файл views-view-field--XXX--!БЛОК!.tpl.php чтобы для обоих полей. И нигде не найду свои поля в чистом виде.

Смотрел там $view, $row, $fields - нигде не нашел. Sad

Подскажите, пожалуйста!

Комментарии

Аватар пользователя Mindstorm Mindstorm 22 декабря 2011 в 22:00

на страницы твоей вьюсы выбери "Rewrite the output of this field"(поставь модуль token обязательно). Там есть "Replacement patterns" - для каждого поля есть замена для это вьюсы, их ставишь в дивы, таблицы - как хочешь. Таким образом для каждого поля в блоке(не только CCK) можешь поставить свой див.

Аватар пользователя alex_shut alex_shut 22 декабря 2011 в 22:28

"Mindstorm" wrote:

Он не переименовать дивы хочет. Он хочет чтоб все поля слились в единый текст (один див, в котором все содержимое полей).

Аватар пользователя Mindstorm Mindstorm 22 декабря 2011 в 23:44

Этим способом можно все поля в один див засунуть. Или каждый по отдельности. Насколько я понял - ему нужна темизация блока вьюс. А там css - и затемизирует как хочет, хоть в полоску или обычным текстом. Я так понял вопрос)

Аватар пользователя Neumann Neumann 23 декабря 2011 в 2:37

Спасибо за ответ, господа.

Вообще бы хорошо избавиться от дивов и взяв в руки чистый текст полностью переопределить, как я хочу?

Т.е. всегда будет так?
<div class="field-item field-item-0">Первое значение</div>

Просто "Первое значение" я никогда не получу?
Мне показалось, что я видел эти поля в чистом виде в объекте $view. Где-то глубоко в нутрях его, но не смог провести путь. Т.е. через print_r видел, но как-то не получилось поймать... Т.е. путь узнать... $view->и так далее->blabla == Первое значение

Аватар пользователя alex_shut alex_shut 23 декабря 2011 в 3:01

как думаешь, если убрать эти дивы, каким хером система должна узнать что это поля и что в них выводить?
Или уже даже CMS мысли читать умеют?

Аватар пользователя Neumann Neumann 23 декабря 2011 в 16:23

так это ж файл для вывода этих полей. там есть fields, который хранит их (только их). но только в дивовой обертке... видимо придется регуляркой выуживать из них текст.

Аватар пользователя Neumann Neumann 23 декабря 2011 в 18:24

Помогите составить такую регулярку)

<?php
preg_match_all
("<.*>(.*)<.*>"$field->content$matches)
?>

когда юзаю это, то это ловит содержимое, но только содержимое последнего тега. а нужно чтобы в массив третьего аргумента функции preg_match попадали содержимое всех тегов.
Не подскажите?
Буду очень благодарен.