Questions tagged «blocks»

在Drupal中,在主题区域中显示的内容和功能的自包含集合称为块。

2
块内表格
我drupal_get_form('event_signup_form')用来将我的自定义窗体嵌入一个块中。表单已按预期方式呈现,但是提交表单不会触发任何操作。 表单函数本身被调用event_signup_form($form, &$form_state),而提交函数被调用,event_signup_form_submit($form, &$form_state)但是没有被调用。 我正在使用hook_block_view来显示表单: function event_block_view($delta = '') { $blocks = array(); if ($delta ...) { $blocks['content'] = drupal_render(drupal_get_form('event_signup_form')); } } 我设法使它正常工作-这是(存根)如何: function hook_block_view($delta = '') { $blocks['content'] = drupal_render(drupal_get_form('event_signup_form')); } function event_signup_form() { // Register form submit handler, same goes for validation handler $form['#submit'][] = 'event_signup_form_submit'; return $form; …
14 7  blocks  forms 

1
如何根据区域对块进行主题挂钩建议?
由于Drupal 8,使用模板命名约定无法根据其放置的区域加载特定的块模板(“删除了每个区域的块标记和每个区域的块模板功能”)。但是如果放置在某个区域中,我需要使用不同的html块。我该如何完成? 我曾考虑过使用MYMODULE_theme_suggestions_block_alter,但我不知道如何获取当前区域。
14 blocks  8  regions  theming 

7
以编程方式放置块?
我正在使用Drupal7。现在,我的网站标题中存在一个主菜单导航和语言切换器。我将它们放置在此处,方法是转到CMS> Structure> Blocks,然后将这些块拖到标题区域中。 如何以编程方式将这些块放置在标题中?
14 7  blocks 

3
在功能中导出块设置(Drupal 7)
我正在尝试学习如何在开发站点和生产站点之间创建合理的工作流,并且我决定使用功能模块来帮助完成此任务。 在我的首页上,我有几个显示新添加的和最高评价的内容的块。我已经使用功能来导出这些视图,但是在“功能”模块内部仍然看不到要导出我的块设置。我设置新项目和最高评价的块以显示在页面的内容部分。我对其进行过滤,使其仅显示在视图的首页上。 如何将这些阻止设置导出到我的功能中,从而无需在每个站点上重新配置它们?
13 7  blocks  features 

4
在自定义块上设置缓存上下文的正确方法是什么?
我遇到了一个问题,即对于注销用户而言,每页应该唯一的一个块不适用。问题是我在视图搜索页面上拥有一个自定义块插件,该插件包含自定义过滤器(有点像自定义替换暴露的过滤器。通过/ admin / structure / block放置的块)。 根据我对Drupal 8的了解,我将缓存上下文添加到构建数组中: public function build() { $search_form = \Drupal::formBuilder()->getForm('Drupal\mymodule\Form\SearchForm'); return [ 'search_form' => $search_form, '#cache' => ['contexts' => ['url.path', 'url.query_args']] ]; } 但是看来这一定是不正确的,因为注销后,该块将在第一个视图上缓存,并且当url更改时,它没有显示该块的新版本。 我认为可能是导致问题的视图页面,但是即使我在视图页面上关闭了缓存,问题仍然存在。 我可以通过几种方式解决此问题,例如,使用preprocess_block挂钩: function mymodule_preprocess_block__mycustomsearchblock(&$variables) { $variables['#cache']['contexts'][] = 'url.path'; $variables['#cache']['contexts'][] = 'url.query_args'; } 但这让我感到困扰,我不能只是将缓存上下文放入块的构建数组中。 由于我的代码块扩展了BlockBase,因此我决定尝试使用getCacheContexts()方法,尤其是因为我看到核心中的某些模块正在这样做。 public function getCacheContexts() { return Cache::mergeContexts(parent::getCacheContexts(), ['url.path', …
13 8  blocks  caching 

1
针对特定区域的Drupal 7自定义block.tpl.php
我是drupal 7的新手,在这个方面真的很挣扎: http://drupal.org/node/104319 我有一个称为导航的区域 在我的.info中 regions[navigation] = Navigation bar 对于该区域,我想使用自定义的tpl.php文件。我试过了 block-navigation.tpl.php 就像在示例中一样,然后将其放在主题根目录和templates文件夹中,没有运气。我已经清除了缓存并确保有一个标准的工作block.tpl.php。无济于事。 回答: 我需要一个区域-navigation.tpl.php和一个块-navigation.tpl.php,两次--都加倍。 在这个问题上的1000次浏览赢得了我受欢迎的问题徽章。但是,在你的心脏你们找不到它给予好评多比1周的时间。Laaaammmmmeeee ....
12 7  blocks  theming 



3
将变量传递到自定义块模板文件
我想在Drupal 8中使用自定义内容创建我的自定义块,首先,我在其上创建带有简单文本的块,然后正常工作,我的问题是如何将自定义变量传递给它?我看到了一些有关它的教程,我的模块名称是tcdev,这是.module文件的内容。 function tcdev_theme($existing, $type, $theme, $path) { return array('tcdev' => array( 'variables' => array( 'title' => 'Default title', 'description' => null ), 'template' => 'block--sliderblock' ) ); } 和我的 SliderBlock.php namespace Drupal\tcdev\Plugin\Block; use Drupal\Core\block\BlockBase; /** * Provides a 'SliderBlock' block. * * @Block( * id = "slider_block", * admin_label …
11 theming  8  blocks 

3
如何为我在代码中渲染的块渲染上下文链接?
我加载了一个块主题和内容,module_invoke()并用于render()渲染它们。我想为此块使用上下文链接。我如何也可以渲染它们? 这是我正在insde页面中使用的代码-front.tpl.php模板。 $block = module_invoke('block', 'block_view', '4); print render($block); 我应该改用什么代码?
11 7  blocks 

5
如何使用代码控制块的可见性?
在Drupal 6中,我可以在块UI配置中使用PHP代码来控制块可见性,例如: <?php return MYMODULE_abc() || MYMODULE_def() ; ?> 这些功能查询当前节点,分类法等,以决定是否显示该块。这个PHP选项在Drupal 8中消失了,但是中有一个$visibility字段BlockBase。我可以使用它来以编程方式在运行时设置可见性吗?
11 8  blocks 

6
如何以编程方式放置积木?
在UI中,您可以通过以下方式在区域中添加一个块: 转到管理->结构->块布局(/ admin / structure / block)。 单击区域名称旁边的“放置块”按钮。 我想通过编程来做同样的事情。如何将现有块添加到区域并保存?然后,该块应显示在该区域中,并在“ 块布局”页面中可用。
10 8  blocks 

3
如何显示要在Drupal的某些页面中显示的块?
考虑一个模块荒漠: 第1页:- deserts/* 第2页:- deserts/*/* 第3页:- deserts/*/*/* 动态内容... 我有三个方块,分别是a,b和c: 块a应该仅在第1页中显示 b块应仅在第2页中显示 块a应该仅在第3页中显示 这种限制应该怎么做?
10 blocks  7 


1
仅在/用户个人资料页面上显示阻止
我想在用户访问/ user上自己的个人资料页面时显示一个阻止。公用用户配置文件的路径为“ / member / [用户名]”。 当我将块限制为“用户”时,它不会显示。当我将其限制为“ member / *”时,它将同时显示在自己的个人资料和公开个人资料上。 “用户”网址是否有些特殊?
10 7  users  blocks 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.