Drupal Views - для пользователя: поле id, сопоставить содержимое с массивом - PullRequest
0 голосов
/ 17 апреля 2011

У меня есть массив идентификаторов пользователей, и мне нужно пройти через поле user: id в представлении, добавив немного конкретного HTML-кода для сопоставления и несоответствия результатов.

Так что я предполагаю, что нечто подобное должно быть в view-view-field - uid.tpl.php:

<?php if (//Field content matches an array value): ?>
<span class="friend"><?php print $output; ?></span>
<?php endif; ?>

<?php if (//Field content doesn't match an array value): ?>
<span class="not-friend"><?php print $output; ?></span>
<?php endif; ?>

Может кто-нибудь помочь мне заполнить пробелы, пожалуйста? :)

1 Ответ

2 голосов
/ 17 апреля 2011

Предполагая, что $ ouput будет только целым числом, представляющим uid (а не разметку HTML), вы можете сделать что-то вроде этого:

<span class="<?php if(!in_array($output, $your_array)): ?>not-<?php endif; ?>friend">
    <?php print $output; ?>
</span>

see php in_array ()

Однако $ output может быть HTML.Если это так, вы должны использовать $ row вместо $ output.Чтобы увидеть, что содержит $ row, я люблю делать это в файлах шаблонов:

<!-- <?php echo print_r($row,true); ?> -->

(затем просмотреть исходный код в браузере)

Кроме того, я бы рекомендовал вообще не делать этого в вашем шаблонефайл, потому что он связывает логику с темой ... Извлеките Views Customfield - он позволит вам делать PHP в настраиваемом поле ... Если вы поместите его под UID и исключите UID из отображения,вы можете получить доступ к UID и выполнить тот же код, который я получил выше, в настраиваемом поле, используя объект $ data вместо $ row или $ output.

...