매우 드루팔 (Drupal에서 새로 생겼습니다. 내 문제는 블록이 일관성 있고 변화하지 않는다는 것입니다. 그것은 방문한 페이지와 대조적으로 로그인 한 사용자를 기반으로하는 것으로 보입니다 (즉, 다중 사용자 블로그에서 각 블록은 로그인 한 사용자가 아닌 표시되는 블로거의 페이지를 반영해야합니다. 방문한 페이지를 기반으로 표시 할 정보 감사합니다.로그인 한 사용자가 방문한 페이지를 방문하여 블록을 구동하는 방법
2
A
답변
1
이런 종류의 작업을 수행하는 두 가지 인기있는 모듈이 있습니다. 원하는 것은 블록이 자신의 컨텍스트를 인식하도록하고,
: 블로그 게시물 등을 게시 사용자 FX이 모듈은 모두 매우 복잡하며 드루팔 (Drupal)을 처음 사용하는 경우 원하는 것을 얻는 데 어려움을 겪을 수 있습니다.
사용자 정의 블록을 코딩하고 노드 (블로그 게시물)에만 배치하면 노드를로드하고 누가 작성했는지에 대한 정보를 얻을 수 있습니다. arg
을 사용하여이 작업을 수행 할 수 있습니다.
뷰가있는 블록을 만든 경우 로그인 한 사용자의 데이터를 가져 오는 대신 관계를 사용하여 노드에서 사용자 정보를 가져와야합니다.
0
이 가장 내가 만든 빠른보기의 덤프를 포함 한 참조 용 views module
이루어집니다, 무슨 단순히 수행하면 페이지에서 UID가이 노드가 있는지 여부를보고있는 수입니다 또는 사용자 프로필 및 모든 콘텐츠 (나는 blog_posts로 제한했습니다, 당신은 당신의 유형에 맞게 그것을 지그 필요가 있습니다) viewd중인 사용자에 의해 만들었습니다.
블록 관리 목록에서 사용할 수있는 자동 블록을 만듭니다.
희망 사항입니다. 이 다운로드를 사용하여 뷰 모듈을 활성화하고 아래 코드를 가져 오려면 , 그것은 ... 바로 따라 이동
$view = new view; $view->name = 'recent_blogs'; $view->description = ''; $view->tag = ''; $view->view_php = ''; $view->base_table = 'node'; $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('fields', array( 'title' => array( 'label' => 'Title', '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_node' => 1, 'exclude' => 0, 'id' => 'title', 'table' => 'node', 'field' => 'title', 'override' => array( 'button' => 'Override', ), 'relationship' => 'none', ), )); $handler->override_option('sorts', array( 'created' => array( 'order' => 'ASC', 'granularity' => 'second', 'id' => 'created', 'table' => 'node', 'field' => 'created', 'override' => array( 'button' => 'Override', ), 'relationship' => 'none', ), )); $handler->override_option('arguments', array( 'uid' => array( 'default_action' => 'default', 'style_plugin' => 'default_summary', 'style_options' => array(), 'wildcard' => 'all', 'wildcard_substitution' => 'All', 'title' => '', 'breadcrumb' => '', 'default_argument_type' => 'user', 'default_argument' => '', 'validate_type' => 'none', 'validate_fail' => 'not found', 'break_phrase' => 0, 'not' => 0, 'id' => 'uid', 'table' => 'users', 'field' => 'uid', 'validate_user_argument_type' => 'uid', 'validate_user_roles' => array( '2' => 0, '3' => 0, '7' => 0, '4' => 0, '8' => 0, '9' => 0, '5' => 0, '6' => 0, ), 'override' => array( 'button' => 'Override', ), 'relationship' => 'none', 'default_options_div_prefix' => '', 'default_argument_fixed' => '', 'default_argument_user' => 1, 'default_argument_php' => '', 'validate_argument_node_type' => array( 'blog_post' => 0, 'member_org' => 0, 'news_item' => 0, 'project' => 0, 'event' => 0, 'promo_item' => 0, 'discussion' => 0, 'group' => 0, 'page' => 0, 'uprofile' => 0, 'panel' => 0, 'book' => 0, 'story' => 0, ), 'validate_argument_node_access' => 0, 'validate_argument_nid_type' => 'nid', 'validate_argument_vocabulary' => array( '1' => 0, '2' => 0, '4' => 0, '5' => 0, '3' => 0, '7' => 0, '6' => 0, ), 'validate_argument_type' => 'tid', 'validate_argument_transform' => 0, 'validate_user_restrict_roles' => 0, 'validate_argument_node_flag_name' => '*relationship*', 'validate_argument_node_flag_test' => 'flaggable', 'validate_argument_node_flag_id_type' => 'id', 'validate_argument_user_flag_name' => '*relationship*', 'validate_argument_user_flag_test' => 'flaggable', 'validate_argument_user_flag_id_type' => 'id', 'validate_argument_is_member' => 'OG_VIEWS_DO_NOT_VALIDATE_MEMBERSHIP', 'validate_argument_group_node_type' => array( 'group' => 0, ), 'validate_argument_php' => '', ), )); $handler->override_option('filters', array( 'type' => array( 'operator' => 'in', 'value' => array( 'blog_post' => 'blog_post', ), 'group' => '0', 'exposed' => FALSE, 'expose' => array( 'operator' => FALSE, 'label' => '', ), 'id' => 'type', 'table' => 'node', 'field' => 'type', 'override' => array( 'button' => 'Override', ), 'relationship' => 'none', ), )); $handler->override_option('access', array( 'type' => 'none', )); $handler->override_option('cache', array( 'type' => 'none', )); $handler->override_option('title', 'Recent blogs'); $handler = $view->new_display('block', 'Block', 'block_1'); $handler->override_option('block_description', ''); $handler->override_option('block_caching', -1);
0
확인 뷰를 생성합니다
또한 내 블록에 대해 상황에 맞는 모듈을 정리 사이드 바의 블로그 페이지에 블로그 롤을 기반으로 한 각 사용자에게 나타나는 다중 사용자 블로그 롤을 만들 수있었습니다.$view = new view;
$view->name = 'blogroll_page';
$view->description = 'blogroll_page';
$view->tag = '';
$view->view_php = '';
$view->base_table = 'node';
$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', 'default', 'default');
$handler->override_option('relationships', array(
'content_profile_rel' => array(
'label' => 'Content Profile',
'required' => 1,
'type' => 'blogroll_view',
'id' => 'content_profile_rel',
'table' => 'users',
'field' => 'content_profile_rel',
'override' => array(
'button' => 'Override',
),
'relationship' => 'none',
),
));
$handler->override_option('fields', array(
'field_url_url' => array(
'label' => '',
'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_node' => 0,
'label_type' => 'none',
'format' => 'default',
'multiple' => array(
'group' => 1,
'multiple_number' => '',
'multiple_from' => '',
'multiple_reversed' => 0,
),
'exclude' => 0,
'id' => 'field_url_url',
'table' => 'node_data_field_url',
'field' => 'field_url_url',
'override' => array(
'button' => 'Override',
),
'relationship' => 'none',
),
));
$handler->override_option('sorts', array(
'title' => array(
'order' => 'ASC',
'id' => 'title',
'table' => 'node',
'field' => 'title',
'override' => array(
'button' => 'Override',
),
'relationship' => 'none',
),
));
$handler->override_option('arguments', array(
'uid' => array(
'default_action' => 'default',
'style_plugin' => 'default_summary',
'style_options' => array(),
'wildcard' => 'all',
'wildcard_substitution' => 'All',
'title' => '',
'breadcrumb' => '',
'default_argument_type' => 'php',
'default_argument' => '',
'validate_type' => 'me',
'validate_fail' => 'ignore',
'break_phrase' => 0,
'not' => 0,
'id' => 'uid',
'table' => 'users',
'field' => 'uid',
'validate_user_argument_type' => 'either',
'validate_user_roles' => array(
'2' => 0,
'4' => 0,
'3' => 0,
),
'me_redirect' => 0,
'me_validate_user_argument_type' => 'either',
'me_validate_user_roles' => array(
'2' => 0,
'4' => 0,
'3' => 0,
),
'override' => array(
'button' => 'Override',
),
'relationship' => 'none',
'default_options_div_prefix' => '',
'default_argument_fixed' => '',
'default_argument_user' => 0,
'default_argument_php' => 'if (arg(0) == \'node\' && is_numeric(arg(1))) {
$node = node_load(arg(1));
$uid = $node->uid;
}
return $uid;',
'validate_argument_node_type' => array(
'blog' => 0,
'activitystream' => 0,
'panel' => 0,
'blogroll_view' => 0,
'discussions' => 0,
'jobs' => 0,
'page' => 0,
'photogallery' => 0,
'profile' => 0,
'story' => 0,
),
'validate_argument_node_access' => 0,
'validate_argument_nid_type' => 'nid',
'validate_argument_vocabulary' => array(
'3' => 0,
'4' => 0,
'1' => 0,
),
'validate_argument_type' => 'tid',
'validate_argument_transform' => 0,
'validate_user_restrict_roles' => 0,
'validate_argument_php' => '',
'me_validate_user_restrict_roles' => 0,
),
));
$handler->override_option('filters', array(
'status' => array(
'operator' => '=',
'value' => '1',
'group' => '0',
'exposed' => FALSE,
'expose' => array(
'operator' => FALSE,
'label' => '',
),
'id' => 'status',
'table' => 'node',
'field' => 'status',
'override' => array(
'button' => 'Override',
),
'relationship' => 'none',
),
'type' => array(
'operator' => 'in',
'value' => array(
'blogroll_view' => 'blogroll_view',
),
'group' => '0',
'exposed' => FALSE,
'expose' => array(
'operator' => FALSE,
'label' => '',
),
'id' => 'type',
'table' => 'node',
'field' => 'type',
'override' => array(
'button' => 'Override',
),
'relationship' => 'none',
),
));
$handler->override_option('access', array(
'type' => 'none',
));
$handler->override_option('cache', array(
'type' => 'none',
));
$handler->override_option('title', 'My Blogroll');
$handler->override_option('use_pager', '1');
$handler = $view->new_display('page', 'blogroll_Page', 'page_1');
$handler->override_option('path', 'blogroll');
$handler->override_option('menu', array(
'type' => 'default tab',
'title' => 'blogroll',
'description' => 'list of your favourite blogs',
'weight' => '0',
'name' => 'navigation',
));
$handler->override_option('tab_options', array(
'type' => 'tab',
'title' => 'blogroll',
'description' => 'a list of your favourite blogs',
'weight' => '0',
'name' => 'navigation',
));
$handler = $view->new_display('block', 'blogroll_Block', 'block_1');
$handler->override_option('block_description', '');
$handler->override_option('block_caching', -1);
goodluck는을 : 사람이 관심이 있다면
먼저 내가 여기 내 작은 비틀기로 내 보낸보기가 작동하도록하는 것입니다 여기 http://drupal.org/node/123850
방향을 따라!
예외적! 완벽하게 작동합니다. UID로 컨텍스트를 추가하고 몇 가지 필드를 추가해야했습니다. 정말 훌륭해. 백만 달러 고맙다. !!!! 원래 잘못된 대답에 게시 !! – MAds