Questions tagged «8»

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

3
如果您在Drupal 8中更新路由文件,如何清除缓存?
自从Drupal 7推出以来,我就一直在学习Drupal 8 drush cache-rebuild。 在我的VPS上,这需要15秒(然后下一页的加载速度也很慢)。我感觉这可能是一把八角锤,可以打破坚果的状况。 有没有更有效的方法让Drupal从{module}.routing.yml文件重新编译(更改的)路由?
10 caching  8  routes 

3
从外部脚本引导
我正在尝试从不是Drupal或Drupal模块的一部分的外部脚本创建Drupal实体实例。 对于Drupal 7,drupal_bootstrap需要加载所需的Drupal依赖项。但是,经过长时间的搜索,我发现所有对于Drupal 8的注释都已被Drupal 8 drupal_bootstrap弃用。 确实,我得到了 调用未定义的函数drupal_bootstrap() 当我尝试将其包含在其中后调用它时 define('DRUPAL_ROOT', __DIR__ .'/../drupal'); require_once DRUPAL_ROOT . '/core/vendor/autoload.php'; require_once DRUPAL_ROOT . '/core/includes/bootstrap.inc'; drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL); 那么如何从外部脚本使用Drupal 8 API?

4
如何获取字段类型列表?
我正在将一个模块从Drupal 7移植到Drupal8。在该模块的配置设置中,我需要获取当前现有字段类型的列表。 在Drupal 7中,这是使用field_info_field_types()函数实现的。 在Drupal 8(8.0.0-rc3)中,尽管出现了Drupal API参考帮助页面中指出的信息,但仍然过时,但出现了“功能不存在”错误。 然后进行调查,我发现了DrupalContrib页面,该函数被声明为已弃用,并建议现在使用Drupal::service('plugin.manager.entity.field.field_type')->getDefinitions()。 但是使用它会引发另一个错误“未知服务plugin.manager.entity.field.field_type”,所幸与建议“您是说plugin.manager.field.field_type吗?”相关联 所以我尝试使用Drupal::service('plugin.manager.field.field_type')->getDefinitions()并哇:我得到了预期的字段类型数组。 但是,每个数组成员(一个字段类型)现在都是一个对象(而不是子数组),并且我要查找的数据嵌套在受保护的属性中,因此我无法访问它们。 在这个阶段,我被困住了。我认为它可能存在一些可以扩展以浏览这些数据的类,但是没有运气:我尤其无法弄清楚Drupal 8中的哪个组件是字段类型定义集中的组件。
10 entities  8 

3
多步骤/向导形式
我正在尝试为Drupal 8创建一个多步骤/向导表单。 用户填写名字,姓氏字段 点击下一个按钮 填写更多信息 点击提交按钮 目前有专门的多步或向导的形式为Drupal 7很多这样的资源,一个与此。 另一方面,我在弄清楚创建Drupal 8多步/向导表单的“ Drupal”方式时遇到了一些麻烦。 我做了一些研究,发现有几种方法: 使用新的配置系统存储值 使用向导表单界面(尚不在核心中) 使用drupal会话对象存储值(不确定是否存在) 这些是Drupal 8的有效方法吗?
10 forms  8 

3
是否仍使用hook_init()?如果不再使用,如何转换实现hook_init()的代码?
在Drupal.org API上,我注意到Drupal 8没有记录hook_init()。在更改记录中,我发现Bootstrap钩子不再存在,它指向摆脱所有'bootstrap'钩子,而Bootstrap钩子在这里据说是hook_boot()和hook_exit(); 什么也没说hook_init()。 我在Drupal 8源代码中搜索hook_init,发现以下代码。第一个是hook_init()在评论中提及的内容;其他两个似乎是一个hook_init()实现,但是它们都得到了我不期望的参数。 function overlay_enable() { if (strpos(current_path(), 'admin/modules') === 0) { // Flag for a redirect to <front>#overlay=admin/modules on hook_init(). $_SESSION['overlay_enable_redirect'] = 1; } } /** * Implements hook_init(). */ function phptemplate_init($template) { $file = dirname($template->filename) . '/' . $template->name . '.theme'; if (file_exists($file)) { include_once …
10 8  hooks 

4
如何将文件实体迁移到媒体实体?
我正在使用Migrate模块进行从D7到D8的迁移,并且正在用代码手动编写整个迁移(而不是使用内置的D7迁移模块,因为我想对迁移进行更多的粒度控制。) 我具有以下结构:D7站点有一个image字段,其中图像存储为File实体。在D8站点上,图像字段是对媒体实体的实体引用(媒体实体又具有图像字段)。 最初,我的图像迁移有以下几点: id: image_files source: plugin: legacy_images constants: source_base_path: http://example.com/ destination: plugin: 'entity:file' process: fid: fid filename: filename source_full_path: - plugin: concat delimiter: / source: - constants/source_base_path - uri - plugin: urlencode uri: plugin: file_copy source: - '@source_full_path' - uri filemime: filemime status: status 在我的文章节点迁移文件中,我具有以下内容: 'field_article_image/target_id': plugin: migration migration: …
10 8  migration 

2
如何设置Cookie寿命?
我在D8实例中设置Cookie生存期时遇到问题。我想将其设置为零,以便关闭浏览器注销用户。 我已添加ini_set('session.cookie_lifetime', 0);到site / default / settings.php文件。该文件中没有以前的cookie_lifetime参考。我加了线。我还清除了Drupal缓存并清除了我的Chrome缓存。可悲的是,它没有得到尊重。在浏览器关闭后,会话仍然存在。 我已经搜索了整个代码库,ini_set('session.cookie_lifetime', 200000);但是在我的网站中似乎不存在。我看不到Drupal在哪里设置cookie寿命。我还尝试通过根目录中的php.ini文件添加设置,但是Drupal否决了该设置。 我觉得这很简单,所以我想避免使用插件。期待大家的来信。提前致谢。
10 8  cookies 

1
如何从实体参考字段获取参考实体ID的数组
我有一个基数entity_reference字段BaseFieldDefinition::CARDINALITY_UNLIMITED。我想要一个参考实体ID的列表。我知道可以通过调用来获取所有引用的实体$x->referencedEntities(),但是我只希望id可以在以后加载实体。目前,我正在这样做: $a = []; foreach ($entity->autoren as $v) { $a[] = $v->target_id; } $this->setCurrentAnwaltReferenzen($a); 有谁知道像D7(-> raw())那样更好的解决方案? 谢谢
10 8  entities 

6
如何在链接窗口小部件自动完成中显示10个以上的项目?
这是有关链接模块的问题。由于使用链接模块可以同时输入外部或内部链接,因此我们强烈依赖它。 不幸的是,要从其“自动完成”字段中显示的项目数限制为10个。我们有许多节点的标题几乎相同,因此,当存在以下情况时,我们正在搜索的节点不会显示在“自动完成”字段中超过10个匹配的标题。 该限制已硬编码在中core/lib/Drupal/Core/Entity/EntityAutocompleteMatcher.php。有没有一种优雅的方法可以从自定义模块中增加这个数量呢?我需要扩展class EntityAutocompleteMatcher吗?我必须在哪里放置扩展,以及如何确保从链接小部件中执行扩展?
10 8  navigation  ajax 

5
保存或删除节点后如何执行重定向到自定义页面?
我尝试执行的操作不起作用,但仍然重定向到/ node / {id}: function hook_form_alter(&$form, $form_state, $form_id) { $form['actions']['submit']['#submit'][] = 'callback_set_redirect'; } function callback_set_redirect($form, FormStateInterface $form_state) { $form_state->setRedirect('custom.landing.page'); }
10 8  redirection 

1
将选项卡/本地任务添加到节点
我创建了一个名为的模块hotel_reviews。 我已经使用hotel_reviews.routing.yml创建了路径节点/ {node} / reviews 。 hotel_reviews.content: path: '/node/{node}/reviews' defaults: _controller: '\Drupal\hotel_reviews\Controller\ReviewsController::content' _title: 'Reviews' requirements: _permission: 'access content' 然后,我尝试使用hotel_reviews.links.task.yml添加本地任务。 hotel_reviews.content: route_name: hotel_reviews.content title: 'Reviews' base_route: node.view weight: 100 现在,我可以访问由我的控制器定义的内容node/1/reviews,但是当我转到时,node/1我看不到评论标签。 我究竟做错了什么? 到目前为止,我一直在使用以下文档: D7到D8升级教程:将hook_menu()和hook_menu_alter()转换为Drupal 8 API 提供模块定义的本地任务 路线结构
10 8  routes 

4
如何根据角色隐藏视图的字段?
在/ admin / people中,我想隐藏显示名称(即,显示名称一定不能出现在用户列表中),而只是针对特定角色。 在我的.module文件中,我尝试了以下挂钩: function hook_views_data_alter(array &$data) { kint($data['users']);die; } function hook_views_pre_render(\Drupal\views\ViewExecutable $view) { if($view->id() == 'myview'){ print_r($view->result);die; // kint($value->_entity->get('title')->value); } } function hook_views_post_render(\Drupal\views\ViewExecutable $view) { if ($view->id() == 'viewid') { // Set the view title. $field_name = $view->getFields(); } } function hook_field_views_data_views_data_alter(array &$data, \Drupal\field\FieldStorageConfigInterface $field) { $field_name = …
10 views  8  users 

2
如何使用表单元素类型文件以drupal8格式上传文件?
我想上传文件,我必须将表单元素类型用作“文件”。在提交功能中,我无法获取与我正在上传的文件有关的任何适当数据。有人可以帮我解决这个问题吗?请找到以下代码: public function buildForm(array $form, FormStateInterface $form_state) { $form['test_CERTIFICATE'] = [ '#type' => 'file', '#title' => $this->t('Certificate'), '#description' => $this->t('Your Certificate (.pem file)').': '.\Drupal::state()->get('test_CERTIFICATE_NAME'), ]; return parent::buildForm($form, $form_state); } 提交功能: public function submitForm(array &$form, FormStateInterface $form_state) { parent::submitForm($form, $form_state); $validators = array('file_validate_extensions' => array('pem')); $files = file_save_upload('test_CERTIFICATE', $validators, 'public://certfiles', FILE_EXISTS_REPLACE); …
10 8  forms 

1
删除“ Generator”元标记?
在Drupal 8中删除“ Generator”元标记的最简单方法是什么? <meta name="Generator" content="Drupal 8 (https://www.drupal.org)" /> 可以仅用几行代码来完成吗?
10 8  meta-tags 

4
如何创建模式窗口(弹出窗口)?
我正在尝试使用Drupal 8的核心功能在模式窗口中打开页面。不幸的是,很难找到有关它的一些官方文档,而且涉及该主题的大多数博客似乎都已过时。但据我所知,应该可以通过向a元素添加以下属性来创建模式对话框: class="use-ajax” data-dialog-type="modal" 因此,完整的示例如下所示: <a href="/impressum/lizenzen/43" class="use-ajax" data-dialog-type="modal"> <span class="glyphicon glyphicon-copyright-mark" aria-hidden="true"></span> </a> 在我的情况下/impressum/lizenzen/43是指向视图页面的路径。 这似乎有效,但仅当我以管理员身份登录时才有效。因为这似乎不是权限问题,所以我认为它与管理主题(Seven)有关,该主题可能包含一些Bootstrap(我在我的网站上使用的)可能没有的核心库。但是奇怪的是,在模式的标题栏中出现了字符串“ Array”,而不是页面标题,这让我认为是发生了意外的数组与字符串对话: 有人可以吗 带我去看核心模态API的官方文档, 向我解释一下,它仅以管理员身份工作的原因可能是什么。 最后告诉我,为什么实际上发生了一个数组到字符串的对话,称为模式?
10 8  javascript 

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.