Drupal

Drupal开发人员和管理员的问答



3
面板还是上下文模块?
我能否请教一下两者之间的区别? 我正在建立一个使用“上下文”非常重要的网站。看完有关NodeOne的Page Manager的视频系列之后,我觉得Panels的“上下文”及其将参数安全地传递给Views的能力非常重要。但是,上下文模块具有一个执行类似类型功能的插件,称为“ 从上下文模块查看默认参数”。
9 views  panels  7 


2
图像和媒体最佳实践
我正在寻找有关D8和文件/媒体实体最佳实践的建议。我最初将其添加为答案,但kiamlaluno显然认为这本身应该是一个新问题,因此请继续。 我试图找出处理文件和媒体实体的最佳方法。随着文件实体模块的发展,如果文件现在可以成为一个完整的实体,那么事情似乎又变得越来越复杂。在我看来,这将使很多人不知道哪种方法是最实用的方法。 我希望看到的是有关何时使用文件字段,媒体字段以及每种字段的利弊的最佳实践的教程或文章。默认情况下,Drupal 8为我们提供了Article内容类型,它是一个文件实体。因此,我们应该将其用于图像还是将其删除并使用媒体字段。 有人知道最近的教程或讨论要复习吗?
9 8  media 

4
通过composer将核心从8.2更新到8.3
我正在尝试将Drupal核心更新到8.3,但遇到了困难。 页面底部是我开始的composer.json文件。 如果我更改“ drupal / core”:“〜8.2” =>“ drupal / core”:“〜8.3”,然后运行,composer update drupal/core --with-dependencies我会收到以下问题,由于执行器中未包含这些问题,我不确定如何解决此问题我在下面包含的.json文件。 Your requirements could not be resolved to an installable set of packages. Problem 1 - drupal/core 8.3.0 requires symfony/psr-http-message-bridge ^1.0 -> satisfiable by symfony/psr-http-message-bridge[1.0.x-dev]. - drupal/core 8.3.x-dev requires symfony/psr-http-message-bridge ^1.0 -> satisfiable by symfony/psr-http-message-bridge[1.0.x-dev]. - drupal/core 8.4.x-dev …
9 8  updating  composer 


2
如何测试当前页面是否为管理员页面?
在某个时候,我开始使用以下代码来测试当前页面是否为管理页面: $route = \Drupal::routeMatch()->getRouteObject(); $is_admin = \Drupal::service('router.admin_context')->isAdminRoute($route); 但是我发现这在hook_entity_load()中的节点编辑页面上失败。 我们如何测试我们是否在Drupal 8的管理页面上?像Drupal 7中的path_is_admin()之类的东西? 我发现,如果我从外部hook_entity_load测试同一节点编辑页面路径,请使用此页面上的代码(https://api.drupal.org/api/drupal/includes%21path.inc/function/path_is_admin/7.x) 有用。 use Symfony\Component\HttpFoundation\Request; use Symfony\Cmf\Component\Routing\RouteObjectInterface; $path = '/node/75/edit'; $request = Request::create($path); $route_match = \Drupal::service('router.no_access_checks')->matchRequest($request); $route = $route_match[RouteObjectInterface::ROUTE_OBJECT]; $is_admin = \Drupal::service('router.admin_context')->isAdminRoute($route); 但是,如果我尝试使用当前路径在hook_entity_load中添加此代码,则会出现致命循环。 我认为卡住的地方是在hook_entity_load中加载当前路由。
9 8  routes 

5
如何以编程方式呈现尊重视图模式设置的节点字段?
我想在一个块内渲染一个节点的字段。它的工作方式如下: <?php if ($node) { if (isset($node->field_body_secondary) && $field = $node->field_body_secondary->value) { $markup = render($field); $build = array( '#type' => 'markup', '#markup' => $markup, ); } } return $build; 但这不是100%,就好像我只是正常渲染该字段一样,使它在查看模式设置中可见。
9 entities  8 

4
计算树枝中的多值字段值
我想计算试过的枝条tempalate中无限字段的值数量 {{ node.field_mytext.count }} => 面对错误 然后再尝试 {{ content.field_mytext.count }}=> 没有任何回报 (在这种方法中,我检查了我的字段不在禁用字段中是显示管理器)。 我的问题是如何计算Twig中一个字段的项目数? 我希望我面对的解决方案期望这些解决方案:D 将其添加到preprocess_node 使用Twig Tweak
9 theming  8 

2
从树枝模板中的字段打印具有多个条目的图像字段
我有一个用于自定义内容类型的树枝模板。它能够渲染大多数字段,但是我无法打印包含多个图像的图像字段。 节点--mycontenttype.html.twig包含 {{ content.field_mytitle }} {{ content.field_myheaderimage }} <div class="row expanded"> {% for galleryimage in content.field_gallery_images %} <div class="gallery-image-item"> {{ galleryimage }} </div> {% endfor %} </div> content.field_mytitle和content._field_myheaderimage输出标题和图像就很好。但是当我使用for循环时 {% for galleryimage in content.field_gallery_images %} <div class="gallery-image-item"> {{ galleryimage }} </div> {% endfor %} 我收到一个错误 Exception: Object of type Drupal\node\Entity\Node cannot …
9 theming  8  media 

1
使用Composer管理模块库依赖项
我已经在使用drupal-composer的自定义模块中找到了依赖关系,如何在不使用Composer Manager的情况下在我的自定义模块中包含第三方库,以及如何管理与drupal 8有关的contrib模块composer依赖关系,这些都与我的问题有关,但是没有自Drupal 8.1和Composer管理器弃用以来,似乎不再适用。 同样流行的指南(如D8和Composer的权威介绍)似乎不再适用,因为它们也提到了composer manager。 与作曲管理器相对的另一种解决方案是更改核心composer.json文件,这感觉像是过多的核心黑客攻击,并且可能会随着Drupal核心(?)的每次Drush更新而中断。 更具体地说,我尝试将View vCard从Drupal 7 更新到8。我创建了composer.json文件,如下所示: { "name": "drupal/views_vcards", "description": "Allows creation of vCards using the fields provided by the Views module.", "type": "drupal-module", "license": "GPL-2.0+", "homepage": "https://drupal.org/project/views_vcards", "require": { "maennchen/zipstream-php": "0.3.*" } } 但是,如果我在模块文件夹中放置了composer.json文件,如何使Drupal知道该文件在那里,以及如何确保zipstream-php下载了所需的库? 简单地composer update从Drupal根目录运行确实会更新许多Drupal依赖关系,但是它不包括modules文件夹中的composer.json文件。我也不认为我应该composer install从具有依赖性的所有模块中调用。 如何在不使用作曲管理器和/或黑客内核的情况下使Drupal知道模块的依赖性? 更新: core使用的composer merge插件似乎支持通配符路径: { "require": { …

2
从实体队列中获取项目的合适方法是什么?
我在Drupal 8中无法找到用于实体队列的API示例。 我最终写了一个查询来获取物品。 $query = $this->database->select('entity_subqueue__items', 'esi') ->fields('esi', array('items_target_id')) ->condition('esi.bundle', $name_of_queue) ->orderBy('delta', 'ASC'); $nids = $query->execute()->fetchCol(); 但我想尽可能使用内置函数。从实体队列中检索项目的功能在哪里?
9 8 

9
如何在自己的主题中覆盖管理主题?
我创建了自己的Drupal 8主题: mytheme.info.yml: name: My Theme description: 'Drupal 8 Theme' type: theme base theme: bartik core: '8.x' mytheme.libraries.yml global-styling: version: 1.x css: theme: css/layout.css: {} css/style.css: {} css/colors.css: {} css/print.css: { media: print } 我正在使用“七个”作为管理主题。 当我编辑页面(/ node / x / edit)时,使用七个主题。 现在,我必须在编辑表单中添加一些CSS。我怎样才能做到这一点?style.css仅加载在前端页面上。编辑页面使用七个主题,而我的主题CSS被忽略。 如何在Drupal 8中向管理页面添加一些CSS或编辑表单?
9 8  theming 

2
如何在主题安装中将块分配给特定区域?
Drupal 8默认提供一些块。例如。Site Branding,Main Navigation,Powered by Drupal,Search等。 我创建了一个具有Site branding&Main Navigation命名区域的主题,可以在其中放置相应的块。 启用主题时,默认情况下,Site Branding&Main Navigation块分别放置在主题的Header&First Sidebar区域中。 默认情况下,如何在主题安装中放置Site Branding和Main Navigation阻止到它们各自的区域?

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.