我对drupal很新。我的问题是该块是一致的并且不会改变。它似乎基于登录的用户而不是正在访问的页面(即,在多用户博客中,每个块都应该反映正在显示的博主的页面,而不是登录的用户。我想根据正在访问的页面显示的信息。谢谢!
3 回答
0
最好使用视图模块来完成
供您参考,我已经包含了我创建的快速视图的转储,它只是从正在查看的页面中获取 uid,无论它是节点还是用户配置文件并获取任何内容(我已将其限制为 blog_posts,您可能需要调整它以适合您的类型)由正在查看的用户创建。
它创建一个自动块,该块应该是可用的块管理列表。
希望这是一个首发。为了使用它,下载并启用视图模块并导入以下代码,它将创建视图
$view = 新视图;
$view->name = 'recent_blogs';
$视图->描述='';
$视图->标签='';
$view->view_php = '';
$view->base_table = '节点';
$view->is_cacheable = FALSE;
$view->api_version = 2;
$view->disabled = FALSE; /* 将其编辑为 true 以使默认视图最初禁用 */
$handler = $view->new_display('default', 'Defaults', 'default');
$handler->override_option('fields', array(
'标题' => 数组(
'标签' => '标题',
'改变' => 数组(
'alter_text' => 0,
'文本' => '',
'make_link' => 0,
'路径' => '',
'link_class' => '',
'alt' => '',
'前缀' => '',
'后缀' => '',
'目标' => '',
'帮助' => '',
'修剪' => 0,
'最大长度' => '',
'word_boundary' => 1,
'省略号' => 1,
'html' => 0,
'strip_tags' => 0,
),
'空' => '',
'hide_empty' => 0,
'empty_zero' => 0,
'link_to_node' => 1,
'排除' => 0,
'id' => '标题',
'表' => '节点',
'字段' => '标题',
'覆盖' => 数组(
'按钮' => '覆盖',
),
'关系' => '无',
),
));
$handler->override_option('排序',数组(
'创建' => 数组(
'订单' => 'ASC',
'粒度' => '秒',
'id' => '创建',
'表' => '节点',
'字段' => '创建',
'覆盖' => 数组(
'按钮' => '覆盖',
),
'关系' => '无',
),
));
$handler->override_option('arguments', array(
'uid' => 数组(
'default_action' => '默认',
'style_plugin' => 'default_summary',
'style_options' => 数组(),
'通配符' => '全部',
'wildcard_substitution' => '全部',
'标题' => '',
'面包屑' => '',
'default_argument_type' => '用户',
'default_argument' => '',
'validate_type' => '无',
'validate_fail' => '未找到',
'break_phrase' => 0,
'不是' => 0,
'id' => 'uid',
'表' => '用户',
'字段' => 'uid',
'validate_user_argument_type' => 'uid',
'validate_user_roles' => 数组(
'2' => 0,
'3' => 0,
'7' => 0,
'4' => 0,
'8' => 0,
'9' => 0,
'5' => 0,
'6' => 0,
),
'覆盖' => 数组(
'按钮' => '覆盖',
),
'关系' => '无',
'default_options_div_prefix' => '',
'default_argument_fixed' => '',
'default_argument_user' => 1,
'default_argument_php' => '',
'validate_argument_node_type' => 数组(
'blog_post' => 0,
'member_org' => 0,
'news_item' => 0,
'项目' => 0,
'事件' => 0,
'promo_item' => 0,
'讨论' => 0,
'组' => 0,
'页面' => 0,
'uprofile' => 0,
'面板' => 0,
'书' => 0,
'故事' => 0,
),
'validate_argument_node_access' => 0,
'validate_argument_nid_type' => 'nid',
'validate_argument_vocabulary' => 数组(
'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' => '*关系*',
'validate_argument_node_flag_test' => '可标记',
'validate_argument_node_flag_id_type' => 'id',
'validate_argument_user_flag_name' => '*关系*',
'validate_argument_user_flag_test' => '可标记',
'validate_argument_user_flag_id_type' => 'id',
'validate_argument_is_member' => 'OG_VIEWS_DO_NOT_VALIDATE_MEMBERSHIP',
'validate_argument_group_node_type' => 数组(
'组' => 0,
),
'validate_argument_php' => '',
),
));
$handler->override_option('filters', array(
'类型' => 数组(
'操作员' => 'in',
'值' => 数组(
'blog_post' => 'blog_post',
),
'组' => '0',
'暴露' => 错误,
'暴露' => 数组(
'操作员' => 假,
'标签' => '',
),
'id' => '类型',
'表' => '节点',
'字段' => '类型',
'覆盖' => 数组(
'按钮' => '覆盖',
),
'关系' => '无',
),
));
$handler->override_option('access', array(
'类型' => '无',
));
$handler->override_option('cache', array(
'类型' => '无',
));
$handler->override_option('title', '最近的博客');
$handler = $view->new_display('block', 'Block', 'block_1');
$handler->override_option('block_description', '');
$handler->override_option('block_caching', -1);
于 2010-08-24T15:59:06.863 回答
0
好的,继续前进...
还为我的块整理了上下文模块,我能够创建一个多用户 blogroll,根据他们在侧边栏中的博客页面上的 blogroll 为每个用户显示。
如果有人有兴趣,首先我按照这里的指示 http://drupal.org/node/123850
这是导出的视图,我进行了一些小调整以使其正常工作:
$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);
祝你好运!
于 2010-08-25T15:50:08.427 回答