如何404 page在Drupal 8中创建自定义?
我在后台创建了一个名为404(节点号100)的新页面(内容).我在Configuration>
Basic site设置中将其设置为404默认页面.
它适用于我在Backoffice中设置的内容.
但现在我希望它以编程方式编辑,我不知道如何创建覆盖文件.
我试图创建mytheme/templates/html--node--100.html.twig它只有当它直接请求url(node/100)时才有效,但是当你在URL上尝试随机slug并且drupal必须解决它时它不起作用.当发生这种情况时,drupal正在为我提供404 page后台内容而不是我刚刚创建的文件中的内容.
我尝试了好几种文件,如page--404-html.twig,html--node--404.html.twig,html--page--404.html.twig,...但它不工作也不
任何人都可以帮我一把吗?
今天是我第一次进入Drupal网站,以便了解它并获得版本6,7,8的API页面.
我认为8正在制作中,但无论如何 - 目前使用的最佳版本是什么?
我正在研究Drupal 8.我希望获得内容类型的机器名称和标签.这是我的代码:
$cont_type = node_type_get_types();
foreach ($cont_type as $key => $value) {
$label = $value->name;
$machine_name = $key;
}
Run Code Online (Sandbox Code Playgroud)
这里我收到一条错误消息: Cannot access protected property Drupal\node\Entity\NodeType::$name
我有一个自定义模块,可以创建一个具有字段元素的自定义块.
这一切都很好,但我需要主题这个块.我已经检查过这里的其他帖子,并试着没有运气.
我已启用twig调试并获得主题建议.仍然没有运气.
任何人都可以指出我正确的方向.
这是我到目前为止:
my_module/my_module.module
// nothing related in here
my_module/SRC /插件/块/ myModuleBlock.php
<?php
namespace Drupal\my_module\Plugin\Block;
use Drupal\Core\Block\BlockBase;
use Drupal\Core\Form\FormStateInterface;
/**
* Provides a 'ModuleBlock' block.
*
* @Block(
* id = "module_block",
* admin_label = @Translation("My Module"),
* )
*/
class ModuleBlock extends BlockBase {
public function blockForm($form, FormStateInterface $form_state) {
$form['test'] = array(
'#type' => 'select',
'#title' => $this->t('test'),
'#description' => $this->t('test list'),
'#options' => array(
'Test' => $this->t('Test'),
),
'#default_value' => isset($this->configuration['test']) ? $this->configuration['test'] : 'Test', …Run Code Online (Sandbox Code Playgroud) 我使用migrate_upgrade模块创建了迁移脚本,但是在迁移时我有很多被忽略的项目,我试图从迁移工具中使用drush mmsg,但是对于忽略的字段只有失败才有帮助.
我想知道如何在我正在测试的模块的功能测试中导入配置同步文件。例如,我想测试一些自定义内容类型,并且 config/sync 中有许多文件与定义自定义内容类型的节点模块有关。
class ArticleControllerTest extends BrowserTestBase {
protected static $modules = ['node', 'dist_source'];
}
Run Code Online (Sandbox Code Playgroud)
在测试的顶部,我定义了成功导入的模块,但它不包括配置同步设置,因此我的自定义内容类型都不存在。如何将这些导入到我的测试环境中?
phpunit drupal functional-testing configuration-management drupal-8
我想为Drupal 8安装启用PHP OPcode缓存.我在Xampp php.ini中有以下内容.但是,我仍然没有启用操作码.我究竟做错了什么??
opcache.enable=1
engine = On
zend_extension=php_opcache.dll
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1
Run Code Online (Sandbox Code Playgroud) 我在一个页面上有两个并排的块。右侧是一个带有空 div 的自定义块,class="js-view-dom-id-ccd-update"。左侧是一个视图,其中将标题列为内容类型(“中心”)的链接。当用户单击其中一个链接时,我希望该记录的详细信息显示在右侧的块中。
我创建了一个视图(“center”),它将单个中心作为页面返回(机器名称 page_1”)。可以从 URL /center/## 访问该页面,其中 ## 是中心的节点 ID。我使用一个模板,使其仅显示中心内容,而不显示普通页面的其余部分。
我创建了一个 .js 文件,理论上,该文件将附加一个 AJAX 操作来调用该页面视图并将结果放入右侧的块中。这是基于我在这里找到的简短教程:https://www.thirdandgrove.com/rendering-view-ajax-drupal-8
(function ($) {
Drupal.behaviors.ajaxContentCenter = {
attach: function (context, settings) {
$('#content-center-list-block-2 li').once('attach-links').each(this.attachLink) ;
),
attachLink: function (idx, list) {
// determine the node ID from the link (not ideal but should work for now)
var link = $(list).find('a');
var href = $(link).attr('href');
var matches = /node\/(\d*)/.exec(href);
var nid = matches[1];
var view_info = {
// the view to get one center's record …Run Code Online (Sandbox Code Playgroud) 我注意到 Paragraph 实体没有从数据库中删除。他们宁愿取消与父节点的链接。
如果您创建一个视图,该视图列出段落并附加上下文过滤器,该过滤器按Parent ID.
现在,我找到了一种解决方法,可以创建一个列出内容的视图。将关系附加到段落。这样可以确保只显示链接的段落。
仍然存在数据库中有数百个孤立段落和字段数据的问题。有没有办法清理它们?
编辑: 这显然是一个主要错误,可以在段落模块的问题跟踪器中找到:已删除的段落实体不会从数据库中删除
我已经设置了一个 Drupal 8 的新实例并安装了两个模块:
我还安装了 Barrio 主题(Barrio 5.5.1。)
然后我继续创建了一个包含两个字段的新内容类型(都是段落修订)。当尝试通过导航到“内容”->“添加”来添加新页面时,一切正常,直到我继续对表单显示进行任何修改或 内容类型的显示设置。一旦进行了修改,无论进行了哪些修改,我都会在添加所述内容类型的页面时收到错误 500。
相关日志条目:
var/www/vhosts/some-website.com/httpdocs/core/lib/Drupal/Core/Field/WidgetBase.php on line 510', referer: https://some-website.com/node/add/
[Thu Jun 24 16:33:28.779959 2021] [proxy_fcgi:error] [pid 10213:tid 140020013704960] [client 91.249.132.211:43799] AH01071: Got error 'PHP message: PHP Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 135168 bytes) in /var/www/vhosts/some-website.com/httpdocs/core/lib/Drupal/Core/Field/WidgetBase.php on line 510'
[Thu Jun 24 16:36:33.558731 2021] [proxy_fcgi:error] [pid 10213:tid 140019649947392] [client 91.249.132.211:62936] AH01071: Got error 'PHP message: PHP Fatal error: Allowed memory size …Run Code Online (Sandbox Code Playgroud)