2010-08-23 2 views
2

매우 드루팔 (Drupal에서 새로 생겼습니다. 내 문제는 블록이 일관성 있고 변화하지 않는다는 것입니다. 그것은 방문한 페이지와 대조적으로 로그인 한 사용자를 기반으로하는 것으로 보입니다 (즉, 다중 사용자 블로그에서 각 블록은 로그인 한 사용자가 아닌 표시되는 블로거의 페이지를 반영해야합니다. 방문한 페이지를 기반으로 표시 할 정보 감사합니다.로그인 한 사용자가 방문한 페이지를 방문하여 블록을 구동하는 방법

답변

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

예외적! 완벽하게 작동합니다. UID로 컨텍스트를 추가하고 몇 가지 필드를 추가해야했습니다. 정말 훌륭해. 백만 달러 고맙다. !!!! 원래 잘못된 대답에 게시 !! – MAds

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

방향을 따라!