Questions tagged «blocks»

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

9
如何以编程方式显示块?
我正在使用Drupal 8 beta-14开发一个站点。我创建了一个不同术语的视图块,现在我想使用代码来显示它。如何以编程方式显示它?我曾经在Drupal 7中使用此代码来做,但是我对Drupal 8感到困惑。 $block = module_invoke('block', 'block_view', '4'); $text_block = render($block['content']);
33 8  blocks 


3
以编程方式在树枝模板中渲染块
我需要在page.html.twig模板中呈现一个views块。在D7中,我会这样做: <?php $block = module_invoke('module_name', 'block_view', 'block_delta'); print render($block['content']); ?> 在Drupal 8中,不建议使用module_invoke,建议使用它:(我已经添加了块的名称作为第二个参数) Drupal::moduleHandler()->invoke($block, 'views_block__blog_block_1', $args = array()); 我尝试了几件事。首先尝试在树枝模板中执行此操作,但我不知道如何在树枝模板中调用php函数,因此结果并不太好。 然后,我在.theme文件的preprocess_page()函数中调用了该函数,但是在使它起作用之前,我尝试了一些简单的方法,只是试图使在twig模板中起作用的变量也不起作用,例如: 在.theme文件的template_preprocess_page(&$ vars)函数中: $test = 'Hello World'; $vars['$my_var'] = $test; 我试图在树枝模板中调用my_var,但是它不起作用,并且收到一条错误消息,提示“该站点有错误,请与管理员联系”。 因此,总而言之,这是我的问题: 如何使变量在树枝模板中可用? 如何在树枝模板内调用函数? 是否在.theme文件或树枝模板内渲染块?
28 blocks  8 


5
以编程方式创建块的简单方法?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 2年前关闭。 学习Drupal。我现在知道我可以在后端创建块,但是如果可能的话,我宁愿以编程方式预先创建它们。实际上,我非常确定这是可能的。但是最简单的方法是什么?
26 blocks 

4
如何主题自定义块
我使用hook_block_info和hook_block_theme等创建了一个块。但是我该如何主题呢? 我有它的工作来返回键'subject'和的数组'content'。但是我直接在hook_block_view()钩子中创建了标记,这不是我想要的。 在文档中说,内容最好应作为可渲染数组而不是标记返回。但是这个可渲染数组是什么?他们说应该是数据而不是标记,但是我在示例中看到的只是将其用作标记的包装,因此没有任何好处。 我希望block--MYMODULE--DELTA.tpl.php主题中可以包含a ,但是如何调用它以及如何将数据传递给块?
26 7  blocks  theming 

8
如何将阻止内容从开发人员迁移到生产站点?
我终于开始认真看待Drupal 8了,我对配置管理特别感兴趣。我遇到了一些可能有点问题的问题,这与自定义块内容有关。 我可以看到配置管理系统能够导出块配置-区域,主题,权重,可见性等,但是在配置导出中并没有遇到实际的块内容,这是合理且可以理解的。 在将该块配置导入到生产站点时,似乎发生的情况是创建了块配置,并放置了一条保留消息,报告该块已损坏或丢失。显然,块内容在生产服务器上不存在。 如何将自定义块从开发/登台服务器迁移到生产服务器?我意识到Drupal 8中的块是像节点这样的可现场访问的实体,因此需要以相同的方式迁移,并且我了解Drupal 8中有一个Migrate API,但这似乎是为了将内容从Drupal 6和7站点迁移到Drupal 8相对于Drupal 8到Drupal 8站点。 这个问题专门针对自定义块,因为其他模块(例如,视图)生成的块显然会作为配置迁移。
24 blocks  8 


1
带有块视图的上下文过滤器
我有一个页面视图(“ / news”),该页面具有用于主题(“ news / design”,“ news / coding” ...)的上下文过滤器,它们是分类法术语,并且工作正常。由于移动主题的某些更改,我需要一个块视图而不是页面视图,但无法使其与过滤器一起使用。 使用旧的过滤器设置,我的所有文章都保存在“ / news”中,但是我使用的过滤器将默认值从过滤器更改为“来自网址的分类术语ID”;现在,我看到“ / news”的空白页面(这是一个包含阻止视图的简单页面),以及“ / news / design”的“找不到站点”等。在视图的预览中,一切正常。 这些是视图的设置。
19 blocks  views 

9
为视图块创建模板文件
关于自定义块的主题有很多,但是由视图创建的块又如何呢? 我的视图块具有id:block-views-posts-listing-block, 我尝试了多种命名模板文件的方法,例如:block--block--views-posts-listing-block.tpl.php,但是我找不到正确的文件名。
19 7  views  theming  8  blocks 

7
如何根据当前节点为显示内容的自定义块正确设置缓存?
我有一个非常基本的块,它仅显示当前节点的ID。 <?php /** * @file * Contains \Drupal\mymodule\Plugin\Block\ExampleEmptyBlock. */ namespace Drupal\mymodule\Plugin\Block; use Drupal\Core\Block\BlockBase; use Drupal\Core\Cache\Cache; /** * @Block( * id = "example_empty", * admin_label = @Translation("Example: empty block") * ) */ class ExampleEmptyBlock extends BlockBase { /** * {@inheritdoc} */ public function build() { $node = \Drupal::routeMatch()->getParameter('node'); $build = array(); …
19 8  blocks  caching 

3
如何在Bean,Box和Fieldable面板窗格之间进行选择?
Bean,Box和Fieldable Panels窗格均提供类似的功能。我很难理解它们之间到底有什么区别。 彼此相比,它们的优缺点是什么?他们是否针对不同的用例? 我想在面板中使用某种块来添加自定义内容-内容编辑器还需要能够添加内容,从这个意义上说,我需要的块不是纯配置。但是我也使用功能... 编辑:我将添加似乎是主要区别 盒子 最大的用户群(〜11500) 将块视为配置(即,内容最终出现在您的功能中) 提供集成的模块 豆子 最近很流行,安装了约1000次 将块视为内容,但允许通过计算机名称(例如,通过Bean Panels)导出其配置 提供集成的模块 现场面板窗格 最小的用户群(〜400) 来自Panels / Views / etc的作者。 在主题区域(例如bean或盒子)中,窗格不能用作常规块(我认为) 我想知道这里提到的与Bean相比的优点是什么(“提供附加功能,使内容管理员可以更轻松地布置某些页面”)

3
删除首页上的主要内容块
我是Drupal 7的新手,我希望将其首页的默认值替换为main content block从Views生成的等效块(这样做可以更好地控制该块)。 我已经在Views中成功生成了新的首页块并将其添加到内容部分,但是现在主页显示了原始视图和新的View块。 尝试通过将其main content block配置为不显示来删除它是<front>行不通的,目前,我发现的唯一解决方法是以下CSS: .front #block-system-main { display:none; } 我希望使用一种不太像hack的解决方案。谁能建议一个?
17 7  views  blocks 

4
在响应主题中管理块
我刚刚开始基于Omega的响应式主题,首先关注移动布局。 有些块可能会被认为太“笨重”,无法包含在移动布局中,而其他一些块则需要专门针对该布局引入(淡化菜单,淡化的用户栏等)。 我可以使用CSS轻松隐藏移动布局中不需要的块,并在默认布局中包含特定于移动设备的块,然后将其隐藏(因此仅在移动设备上显示),但这似乎是一种倒退的思考方式它。如果未显示块,那么它们所产生的额外开销确实是不可接受的(特别是考虑到隐藏块中的内容将添加的额外数据库查询的数量)。 我认为必须有一种不错的干净方法来在页面构建的早期阶段拦截块决策过程,并基于某些os-detection排除/包含块,但我对此可能是空白可能。 我还要说明一个事实,那就是Varnish正在本网站的前面运行,这应该会使事情变得更加有趣:) 是否有模块/已知策略可以对此提供帮助? 我应该补充一点,因为该站点已经完全成熟,所以使用Context模块不是一个选择,此时将其移至Context中将是一项艰巨的任务。
15 blocks  theming 

3
如何使用Drupal 7在块中添加“ Welcome {username}”
我用具有相同内容的drupal 7网站替换了drupal 6网站。在该Drupal 6网站上,当您登录时会看到一个块。该标题中的标题处显示消息“ Welcome {username}”。 我正在寻找一种在Drupal 7中执行此操作的方法,我尝试使用“令牌”模块执行此操作,但是我无法正常工作。最好的方法是什么?
15 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.