Questions tagged «8»

版本标记应用于仅适用于版本的问题,而不仅仅是说明网站使用的版本。


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阻止到它们各自的区域?

2
重设用户密码,而无需使用“忘记密码?”
我知道在Drupal 7中,我可以通过代码重置用户#1的密码。 define('DRUPAL_ROOT', getcwd()); require_once DRUPAL_ROOT . '/includes/bootstrap.inc'; drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL); require_once DRUPAL_ROOT . '/includes/password.inc'; $newhash = user_hash_password('newpass'); $updatepass = db_update('users') ->fields(array('pass' => $newhash)) ->condition('uid', '1', '=') ->execute(); (user_hash_password()在Drupal 8中不再存在。) 另外,我可以使用以下代码。 define('DRUPAL_ROOT', getcwd()); require_once DRUPAL_ROOT . '/includes/bootstrap.inc'; drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL); require_once DRUPAL_ROOT . '/includes/password.inc'; $edit['pass'] = 'newpass'; $account= user_load(1); user_save($account, $edit); Drupal 8的等效代码是什么?我应该为此使用什么API?
9 users  8 

2
如何在树枝字段模板中添加变量?
在节点页面上,我想将节点标题与另一个字段(示例字段)一起添加到输出中。 我创建了一个新的,field--field-example.html.twig但由于在字段模板中不可用而无法访问节点标题变量。 我需要将变量添加到主题预处理:中themename.theme。 我该如何在其中添加变量?themename.theme相应的条目将是什么field--field-example.html.twig?
9 theming  8 

1
如何创建自定义用户标签?
我正在尝试创建一个新的自定义标签,该标签会出现在所有实体的后代中。{entity_type} .canonical。我尝试扩展DeriverBase类,特别是重写getDerivativeDefinitions方法。我通过扩展LocalTask​​Default并覆盖getRouteParameters方法来创建选项卡。当您访问标准Drupal用户路径(例如www.mysite.com/user/1/或www.mysite.com/user/1/edit)时,将显示该选项卡。但是,当我们添加新的自定义用户路线(例如www.mysite.com/user/1/subscribe)时,不会显示任何标签。是否有一种特殊的方法可以在自定义路线上定义本地菜单任务?代码示例: $this->derivatives['recurly.subscription_tab'] = [ 'title' => $this->t('Subscription'), 'weight' => 5, 'route_name' => 'recurly.subscription_list', 'base_route' => "entity.$entity_type.canonical", ]; foreach ($this->derivatives as &$entry) { $entry += $base_plugin_definition; } 在此先感谢您的帮助。
9 8 

2
禁用特定块的缓存
我想让页面继续受益于面向匿名用户的Drupal 8缓存机制,除了特定的块,该块应该在知道刷新页面是从Views生成的情况下,在每个页面刷新时更新。 在技​​术上可行吗?怎么样?
9 views  blocks  8  caching  users 

2
配置导出/导入不起作用
我drush config-export staging在网站的本地版本上进行了操作drush config-import staging,然后在服务器上进行了操作。它导入了所有分类法词汇,但没有输入任何术语。我还通过UI(Configuration-> Development-> Configuration Synchronization)进行了尝试。这是Bug还是Drupal 8的未完成性质?

5
“源数据库不包含可识别的Drupal版本。”
我在本地Ubuntu桌面15.10 Apache2(2.4.12)环境中安装了两个Drupal站点:一个是Drupal 8的全新安装,第二个是使用Drupal 7构建的现有工作站点的副本(主要是核心模块)基于网页,非常不起眼)。两个站点在任何地方都可以正常工作,没有任何问题。 我的目标是首先将Drupal 7站点升级到Drupal8。我完成了所有初步阶段,例如配置相同的语言,通过模块保持最少的数量(卸载D7站点中的所有模块,这些模块我可以在升级后轻松带回) ),确保在两个站点中都安装了相同的模块,等等,现在我只想将我的Drupal 7站点“超越”(希望它有一个好的用语)到新的Drupal 8站点中。 为了实现我的目标,我在Drupal 8站点中安装了Drupal升级模块,转到localhost / sitename / upgrade,并填写了Drupal 7站点的所有详细信息。 当我单击“查看升级”按钮时,出现错误: 源数据库不包含可识别的Drupal版本。 我已将此错误搜索为确切的短语(“错误”),却发现很少的结果;在我看来,他们中的大多数人似乎都需要我已经获得的PHP编程知识,因此我无法确定错误是由于错误(尤其是由于该模块仍在繁重的开发中)还是由于我的错误造成的。了解此模块的概念\功能。 D8 Drupal升级模块不喜欢我提供的D7数据库的原因是什么?特别是当Drupal 7网站在网上和本地都可以正常工作时。 如果由于某种原因无法升级,迁移将是升级的一个不错的选择吗?如果是这样,那么您可以想到的最佳,最简单的迁移解决方案是什么? 我去了/var/www/html/benia/modules/migrate_upgrade/src/MigrationCreationTrait.php,并做了: -- return $version_string ? substr($version_string, 0, 1) : FALSE; ++ return 7; ++ return $version_string ? substr($version_string, 0, 1) : FALSE; 比在屏幕顶部出现此错误。
9 8  migration 

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.