К отчету добавить кнопку "Я здесь был"

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

Аватар пользователя locker locker 25 марта 2011 в 16:02

Пишу сайтик по туризму. Понадобился след функционал - в отчете добавить кнопку "Я здесь бы", чтобы потом по этому параметру можно было бы выводить всех, кто был в данном месте. При помощи какого модуля посоветуете решить?

Комментарии

Аватар пользователя locker locker 25 марта 2011 в 18:25

Покопался. Вроде то, что надо. Возник такой вопрос - через вьюсы можно вывсти, находясь в материалы, которые зафлагены пользователей, которые его зафлагили? Вставкой php кода решается так:

<?php
if (arg(0) == 'node' && is_numeric(arg(1))) {
$node = node_load(arg(1));
$nid = $node->nid;
$accounts = module_invoke('flag', 'get_content_flags', 'node', $nid);
if (isset($accounts)) {
foreach ($accounts as $uid => $data) {
$account = user_load(array('uid' => $uid));
print '

' . theme('user_picture', $account). '

';
}
} else {print "Тут еще никого не было.";}
}

?>

А вот можно ли сделать стандартными вьюсами это?

Аватар пользователя locker locker 5 апреля 2011 в 15:51

Вроде разобрался. Можно сделать так:

Start a user-type view (as opposed to a node-type view).
Add the "User: Name" field.
Bring in the "Flags: User's flagged content" relationship. This step will link each user with all the nodes she has flagged (To be exact, not with her nodes but with her flaggings). By itself, this step is not very useful; so the next step is:
Use the "Flags: Content ID" argument to filter the nodes (to filter the flaggings, to be exact) to the one having the node ID mentioned in the URL. Set your page URL to node/%/who (for example), and make it a tab.

Аватар пользователя iNFerNo iNFerNo 13 апреля 2011 в 9:10

"locker" wrote:
Покопался. Вроде то, что надо. Возник такой вопрос - через вьюсы можно вывсти, находясь в материалы, которые зафлагены пользователей, которые его зафлагили? Вставкой php кода решается так:

а где тут имя флага?

Аватар пользователя locker locker 13 апреля 2011 в 13:01

Имя флага нет - я честно говоря так и не нашел в инете объяснения, почему такой код работает и как вообще он устроен.