Questions tagged «8»

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

2
如何设置路线的管理主题?
根据Drupal手册,路由定义接受称为的参数_theme。不幸的是,该参数记录为“ TODO”。 可以用来强制路由的管理主题吗?是否可以在此处注入带有管理主题名称的config参数? 看来其他解决方案是使用主题谈判器,但是_theme参数看起来很诱人,使用起来更简单。
9 8  routes 

2
以编程方式创建内容
在Drupal 8中,如何以编程方式创建内容?从“ Drupal 8”管理中,我创建了一个新的“ House”类型(包含说明,图像,用户的参考字段...)。如何从自定义模块创建实体类型“房屋”? 在我的自定义模块中,我有一个表单文件(包含一个扩展FormBase的类)。在提交回调中,我想创建一个新的“房子”并设置值并保存新的实体。 我在网上找不到核心的示例...
9 8  entities 

4
如何更改实体类型类?
在Drupal 8中,您可以使用以下方式加载实体: $node = \Drupal::entityManager()->getStorage('node')->load(123); 这将查找实体定义,并发现该节点是由Drupal \ node \ Entity \ Node定义的-因此(我猜)Drupal \ node \ NodeStorage将实例化一个新的Drupal \ node \ Entity \ Node实例。 我想要实现的是子类化Drupal \ node \ Entity \ Node并能够在适当的时候实例化此子类。例如,如果我有一个节点束文章,那么会有一个类: namespace Drupal\my_module\Entity\Article; class Article extends Drupal\node\Entity\Node { } 我会打电话给: $node = \Drupal::entityManager()->getStorage('node_article')->load(123); 回报将是我的Article子类。 我可以通过创建一个新的实体类型并将其连接回另一个现有的实体定义来实现这一点,例如node-article示例就是此类: namespace Drupal\my_module\Entity; use Drupal\node\Entity\Node; /** * @ContentEntityType( …
9 8  entities 

2
如何使用UUID API?
我知道这个问题(几乎)与以下问题#21991重复,该问题已于2012年发布。但该问题与Drupal 8无关,后者是UUID的核心。 参考文献: Drupal 8核心API Drupal 8核心模块文档 Drupal 8核心模块文档未列出UUID。 我想知道是否可以利用Drupal 8的核心UUID模块来迁移和映射从不同环境导入的关系数据,该环境具有由Firebase生成的唯一密钥。 更新: 有人指出,UUID不是模块。 似乎默认为实体(又称节点)创建UUID记录,并且显然可以用于映射实体引用。 引入已经具有唯一ID的外部数据时,可以利用此功能吗?因此,我具有“节点” ID,并且可以与UUID进行映射吗? 根据更多评论进行更新: 目标是将UUID与实体和REST模块一起使用。分别导入已具有唯一ID的外部关系数据时,这样做似乎是明智的。 我只是试图了解UUID的工作原理,它能做什么以及不能做什么,我如何生成和验证UUID,如果引入外部ID则需要注意些什么。
9 8  entities  features 


3
获取页面标题
在某些页面上获得标题时,我得到一个空标题,如Home。我在订户中使用的代码如下。 class HistorySubscriber implements EventSubscriberInterface { public static function getSubscribedEvents() { $events[KernelEvents::REQUEST][] = array('onResponse', 0); return $events; } public function onResponse($event) { $request = \Drupal::request(); $route_match = \Drupal::routeMatch(); $title = \Drupal::service('title_resolver')->getTitle($request, $route_match->getRouteObject()); } } 有问题吗?我该如何解决?
8 8 

2
Drupal服务OAuth
我已经在这个问题上工作了两个星期,但找不到适合我一生的解决方案。我没有找到任何不错的文档(在Drupal的网站上或其他地方),这一事实也无济于事。并且这里已经存在的问题已经过时了(Services 2.x)。 我正在尝试为Drupal Commerce支持的站点创建REST服务。目前,所有服务所需要做的就是允许对Order资源进行基本的CRUD操作,并通过OAuth进行保护,因此不需要OAuth 2.0。还必须使用服务器上的脚本来调用它,因此登录重定向是不可能的(所有操作都通过两足身份验证完成)。 当前堆栈为: PHP 5.3.15 Drupal 7.15 Commerce Kickstart配置文件(7.x-2.0-rc1) 服务7.x-3.2 OAuth 7.x-3.0 + 18-dev OAuth身份验证7.x-3.2 REST服务器7.x-3.2 Commerce Services 7.x-1.x-dev(这是我添加了自定义订单代码的模块) 如果我使用OAuth PHP库并每次都调用令牌请求,则可以使Retrieve / Index函数适用于Orders(我什至不知道发生了什么,除非它可以进行身份​​验证...)。如果我尝试过帐到订单并创建订单,则即使禁用了OAuth,我也会从脚本获得406,从Google Chrome浏览器的REST控制台尝试直接过帐请求时得到401。 由于我不知道create函数内部发生了什么,这使调试成为一场噩梦。我尝试剥离其订单创建逻辑,然后回显请求有效负载。仍然会出现406/401错误。 我假设我收到401错误,因为订单需要用户验证(即使该服务的OAuth已关闭)。 我不明白为什么会出现406错误。我接受application / json,这是我的REST服务器设置要返回的内容。 在我注释掉订单创建逻辑之前,就没有创建订单。(这是我在网站上其他地方有效使用的信息。) 提前赞赏。 -T

1
如何防止Ajax表单提交
下面的代码阻止任何非ajax表单的提交。 $(this.form) .on('submit', function(event) { if (/* Some condition */) { event.preventDefault(); } }); 在Drupal 8中,如何阻止Ajax表单提交? Ajax表单不会触发表单提交处理程序,并且我无法阻止Ajaxified表单的提交按钮上的click事件。 供参考,我正在尝试解决问题#3010084:文件上传完成之前,表单提交完成了
8 8  forms  ajax  webforms 

1
Drupal弃草了吗?
我离开Drupal已有2-3年了。我只是回来了,并通过composer安装了drush(如drush网站所推荐),现在每次尝试使用drush时,都会收到一条消息,告诉我应该使用composer: ~/sites/d7 $ drush version Drush version : 9.0-dev-gd4a3872 ~/sites/d7 $ drush dl drupal-7.x [notice] dl has been deprecated. Please build your site using Composer. Add new projects with composer require drupal/[project-name]. Use https://www.drupal.org/project/composer_generate to build a composer.json which represents the the enabled modules on your site. 我按照这些说明通过composer安装drupal的说明下载了drupal 8 ,但是当我尝试在该项目中使用drush时,我收到此消息: …
8 8  drush  composer 

1
如何显示最后编辑内容的人而不是原始作者?
在页面上/admin/content,有一个针对作者的列。我们有很多人在编辑我们的内容,因此原始作者并不那么重要。我想更改它以显示编辑该内容的最后一个人,我认为该人存储在该内容的修订版中。如何修改视图以显示该视图?另外,是否可以在自定义模块中实现此操作的钩子? 我已经检查了几个其他问题,例如这个和这个,但这并没有太大帮助。
8 views  8 

3
如何将当前选择传递给实体浏览器选择视图
我正在使用实体浏览器(在Drupal 8中为2.x-dev)作为自定义实体的实体引用基础字段的表单小部件。实体浏览器已配置 作为模式显示 使用单个小部件, 没有选择显示, 使用带有实体浏览器批量选择字段的视图作为小部件,以及 将所选实体附加到参考字段的当前选择中。 选择实体工作正常。但是实体参考字段不得重复。 为了简化没有重复项的实体的选择,我想从实体浏览器视图结果中过滤已经选择的实体。因此,用户将仅看到未选择的实体。 为此,我创建了一个自定义视图arguments_default插件,该插件将实体浏览器选择存储公开为实体ID的上下文默认参数: <?php namespace Drupal\my_module\Plugin\views\argument_default; use Drupal\Core\KeyValueStore\KeyValueStoreExpirableInterface; use Drupal\views\Plugin\views\argument_default\ArgumentDefaultPluginBase; use Symfony\Component\DependencyInjection\ContainerInterface; /** * The entity browser selection argument default handler. * * @ViewsArgumentDefault( * id = "entity_browser_selection", * title = @Translation("Entity Browser Selection") * ) */ class EntityBrowserSelection extends ArgumentDefaultPluginBase { /** …
8 8 

1
返回未发布节点的备用HTTP代码
我正在尝试为Drupal 8中未发布的节点返回404页面而不是403响应。 我测试了 内核响应订户,但是发现我使用的代码只会将状态代码从403更改为404,而实际上不显示404页面。因此,也许有人可以向我展示如何在其中生成404页面Response对象? 这是我正在使用的代码: class ResponseSubscriber implements EventSubscriberInterface { /** * {@inheritdoc} */ public static function getSubscribedEvents() { return [KernelEvents::RESPONSE => [['alterResponse']]]; } /** * Change status code to 404 from 403 if page is an unpublished node. * * @param FilterResponseEvent $event * The route building event. */ …

2
如何将多语言内容从CSV迁移到Drupal 8?
我来自阅读使用新的Drupal 8迁移API /模块和内容迁移:从CSV到Drupal 8的过程,创建迁移的过程非常清楚,并且可以正常工作,但是我找不到如何将内容迁移到多语言站点。在“ 迁移API”概述中,我找不到有关此的任何信息。 那么,如何迁移多语言内容? 更新: 我找到了一个例子:https://github.com/drupal/drupal/tree/8.3.x/core/modules/migrate/tests/modules/migrate_external_translated_test 目前,我能够迁移英语内容,但不能迁移翻译内容。

3
类型提示-UserInterface或AccountInterface哪个更好?
最近,我终于开始将注意力从D7转移到D8,并将网站转换为D8。在D7中,我将帐户对象键入\ stdClass,因为它们不是任何类的成员。但是,在D8中,它们现在是User类的成员。 就是说,我在网上的某些代码中发现人们在键入提示,例如Drupal \ Core \ Session \ AccountInterface,在其他地方则键入了Drupal \ user \ UserInterface。我们应该如何确定要使用哪种类型的类型提示,两种对象之间的区别是什么?
8 8 

1
如何在Drupal 8中通配符清除缓存?
在Drupal 7中,我们曾经能够做到这一点: cache_clear_all('state:', 'cache', TRUE) 这将删除任何缓存斌entires 开始用字符串state:(匹配的高速缓存的ID,如state:info和state:nebraska)。 https://www.drupal.org/node/1272696上的更改记录甚至在Drupal 7示例中记录了该用例,但实际上并未提供如何在D8中进行复制的示例。 似乎我们应该使用缓存标签,考虑到简单的用例,这似乎是一个更昂贵的转换。我没有看到适用于CacheBackendInterface的任何匹配方法。请注意,这并不是要删除缓存仓中的所有项目,deleteAll()明确涵盖了该内容。
8 8  caching 

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.