Получить представление с пользователями, которые пометили меня? - PullRequest
2 голосов
/ 03 февраля 2011

Я использую модули представлений и флагов.Пользователи могут помечать пользователей.Я мог бы легко создать список пользователей, которых я отметил.Но я не могу создать представление с пользователями, которые отметили меня.

1 Ответ

5 голосов
/ 09 февраля 2011

Я попробовал это с очень простой установкой Drupal ... просто Core, Views 2 и Flags.

На самом деле вы можете сделать это. Я создал флаг под названием flag_user_test и 3 тестовых аккаунта плюс админ. Я пометил учетную запись администратора, используя другие тестовые учетные записи, и смог отобразить этот список пользователей, используя идентификатор пользователя в качестве аргумента, по умолчанию в данный момент зарегистрированный пользователь.

Сначала создайте представление типа Пользователь (не Узел).

Далее необходимо создать отношение с помощью «Флаги: помеченное пользователем содержимое» и выбрать флаг пользователя в настройках отношения. Я не выбрал «Включить только тех пользователей, которые отметили контент».

Затем создайте аргумент, используя тип «Flags: Content ID». Установите этот аргумент, чтобы использовать отношение «содержимое, помеченное пользователем», которое вы определили на последнем шаге. Я также указал в качестве аргумента по умолчанию идентификатор пользователя, который в данный момент вошел в систему.

Теперь просто добавьте нужные поля из профиля пользователя и все готово! Screenshot of User Flag View

А вот экспорт представления, если вы хотите попробовать его. Это выглядит действительно ужасно прямо там, я знаю. Но я не знаю, как включить его в качестве приложения, так что это лучшее, что я могу сделать. Если кто-нибудь знает, как сделать этот блок кода лучше, будьте моим гостем.

$view = new view; $view->name = 'flag_me_view'; $view->description = 'User\'s who flagged me'; $view->tag = ''; $view->view_php = ''; $view->base_table = 'users'; $view->is_cacheable = FALSE; $view->api_version = 2; $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */ $handler = $view->new_display('default', 'Defaults', 'default'); $handler->override_option('relationships', array( 'flag_user_content_rel' => array( 'label' => 'user flagged content', 'required' => 0, 'flag' => 'flag_user_test', 'id' => 'flag_user_content_rel', 'table' => 'users', 'field' => 'flag_user_content_rel', 'override' => array( 'button' => 'Override', ), 'relationship' => 'none', ), )); $handler->override_option('fields', array( 'name' => array( 'label' => 'Name', 'alter' => array( 'alter_text' => 0, 'text' => '', 'make_link' => 0, 'path' => '', 'link_class' => '', 'alt' => '', 'prefix' => '', 'suffix' => '', 'target' => '', 'help' => '', 'trim' => 0, 'max_length' => '', 'word_boundary' => 1, 'ellipsis' => 1, 'html' => 0, 'strip_tags' => 0, ), 'empty' => '', 'hide_empty' => 0, 'empty_zero' => 0, 'link_to_user' => 1, 'overwrite_anonymous' => 0, 'anonymous_text' => '', 'exclude' => 0, 'id' => 'name', 'table' => 'users', 'field' => 'name', 'override' => array( 'button' => 'Override', ), 'relationship' => 'none', ), 'picture' => array( 'label' => 'Picture', 'alter' => array( 'alter_text' => 0, 'text' => '', 'make_link' => 0, 'path' => '', 'link_class' => '', 'alt' => '', 'prefix' => '', 'suffix' => '', 'target' => '', 'help' => '', 'trim' => 0, 'max_length' => '', 'word_boundary' => 1, 'ellipsis' => 1, 'html' => 0, 'strip_tags' => 0, ), 'empty' => '', 'hide_empty' => 0, 'empty_zero' => 0, 'exclude' => 0, 'id' => 'picture', 'table' => 'users', 'field' => 'picture', 'override' => array( 'button' => 'Override', ), 'relationship' => 'none', ), )); $handler->override_option('arguments', array( 'content_id' => array( 'default_action' => 'default', 'style_plugin' => 'default_summary', 'style_options' => array(), 'wildcard' => 'all', 'wildcard_substitution' => 'All', 'title' => '', 'breadcrumb' => '', 'default_argument_type' => 'current_user', 'default_argument' => '', 'validate_type' => 'none', 'validate_fail' => 'not found', 'break_phrase' => 0, 'not' => 0, 'id' => 'content_id', 'table' => 'flag_content', 'field' => 'content_id', 'relationship' => 'flag_user_content_rel', 'validate_user_argument_type' => 'uid', 'validate_user_roles' => array( '2' => 0, ), 'override' => array( 'button' => 'Override', ), 'default_options_div_prefix' => '', 'default_argument_fixed' => '', 'default_argument_user' => 0, 'default_argument_php' => '', 'validate_argument_node_type' => array( 'page' => 0, 'story' => 0, ), 'validate_argument_node_access' => 0, 'validate_argument_nid_type' => 'nid', 'validate_argument_vocabulary' => array(), 'validate_argument_type' => 'tid', 'validate_argument_transform' => 0, 'validate_user_restrict_roles' => 0, 'validate_argument_node_flag_name' => '<em>relationship</em>', 'validate_argument_node_flag_test' => 'flaggable', 'validate_argument_node_flag_id_type' => 'id', 'validate_argument_user_flag_name' => '<em>relationship</em>', 'validate_argument_user_flag_test' => 'flaggable', 'validate_argument_user_flag_id_type' => 'id', 'validate_argument_php' => '', ), )); $handler->override_option('filters', array( 'flagged' => array( 'operator' => '=', 'value' => '1', 'group' => '0', 'exposed' => FALSE, 'expose' => array( 'operator' => FALSE, 'label' => '', ), 'id' => 'flagged', 'table' => 'flag_content', 'field' => 'flagged', 'relationship' => 'flag_user_content_rel', 'override' => array( 'button' => 'Override', ), ), )); $handler->override_option('access', array( 'type' => 'none', )); $handler->override_option('cache', array( 'type' => 'none', )); $handler = $view->new_display('page', 'Page', 'page_1'); $handler->override_option('path', 'flagged'); $handler->override_option('menu', array( 'type' => 'none', 'title' => '', 'description' => '', 'weight' => 0, 'name' => 'navigation', )); $handler->override_option('tab_options', array( 'type' => 'none', 'title' => '', 'description' => '', 'weight' => 0, 'name' => 'navigation', ));</p> <p>

...