我目前正在尝试将网站与 Drupal 8 集成。我的首页与其他页面略有不同,我需要检查 node.html.twig 当前页面是否为首页以添加“div” 。变量“is_front”在 page.html.twig 上工作正常,但在 node.html.twig 上似乎不可用。我该如何解决这个问题?
我想获取在节点中的 drupal 8 站点上选择的实际语言,并在例如语言为“en”时启动 if 请求以输出一些内容。
这是我已经尝试过的:
{% global language %}
{% set lang_name = language %}
{{ lang_name }}
Run Code Online (Sandbox Code Playgroud)
和
{{ app.session.locale }}
{{ app.request.locale }}
Run Code Online (Sandbox Code Playgroud)
但它不起作用。有人可以给我提示如何通过 drupal 8 上的 twig 获取语言吗?或者这根本不可能?
我创建了一个 VIEW 页面 -views-view-fields--MYFOOBAR.html.twig
我设法通过以下方式输出图像字段的 URL:
{{ file_url(row._entity.field_image.entity.uri.value) }}
Run Code Online (Sandbox Code Playgroud)
我还管理了如何输出普通数据字段,如文本或数字:
{{ row._entity.field_MYTEXTFIELD.value }}
Run Code Online (Sandbox Code Playgroud)
抱歉,我问了一个愚蠢的问题,但是我怎样才能获得我的节点的 URL?我需要类似的东西:
<a class="full-item-title" href="NODE URL">{{ row._entity.field_MyH1Text.value }}</a>
Run Code Online (Sandbox Code Playgroud) 我精通 Drupal 7,我可以从中获取当前用户对象global $user,但是如何在 Drupal 8 中获取它?
我正在尝试在基于 drupal 8 的网站中实现内容搜索功能。我正在使用搜索 API 模块进行内容搜索(https://www.drupal.org/project/search_api)我已经搜索了搜索 API 实现YouTube 上的视频。他们正在创建搜索索引并通过创建视图打印结果。我对内容的网址有疑问。如何获取结果的 url,以便我可以从搜索结果页面导航到该页面。另外,如果特定结果是一个块,我怎样才能获取页面 url?还有其他模块可以提供更好的功能吗?
我找到了一些关于如何使用 Drupal 8 打开模式窗口的教程,并不难:
// Add an AJAX command to open a modal dialog with the form as the content.
$response->addCommand(new OpenModalDialogCommand('Load Window', $modal_form, ['width' => '800']));
Run Code Online (Sandbox Code Playgroud)
但现在我如何以编程方式关闭这个窗口?或者更简单地说,我想要模式底部有一个“取消”按钮?
我想通过创建 field_first_name 添加设置用户配置文件数据,如 field_profile_first_name 而不是用户帐户,我可以在用户帐户中设置字段数据,如下所示,我如何为配置文件执行相同的操作。
$account = [
'name' => $user_data->employee_code,
'pass' => 'password',
'mail' => $user_data->employee_mail_id,
'init' => $user_data->employee_mail_id,
'preferred_admin_langcode' => 'en',
'timezone' => drupal_get_user_timezone(),
];
$user = User::create($account);
if (isset($user_data->first_name) && !empty($user_data->first_name)) {
$user->set("field_first_name", $user_data->first_name);
}
if (isset($user_data->last_name) && !empty($user_data->last_name)) {
$user->set("field_last_name", $user_data->last_name);
}
$user->save();
Run Code Online (Sandbox Code Playgroud) 我正在尝试获取分配给分类法的自定义字段。我试过这个:
$vid = 'zeme';
$terms =\Drupal::entityTypeManager()->getStorage('taxonomy_term')->loadTree($vid);
Run Code Online (Sandbox Code Playgroud)
$terms 现在存储名为“zeme”的词汇表中的所有术语。问题是当我打印这个变量时,它没有显示我需要获取的自定义字段。知道如何获得此自定义字段吗?我的代码如下所示:
$vid = 'zeme';
$terms =\Drupal::entityTypeManager()->getStorage('taxonomy_term')->loadTree($vid);
foreach ($terms as $term) {
$term_data[] = array(
'id' => $term->tid,
'name' => $term->name
);
}
Run Code Online (Sandbox Code Playgroud) 我在 drupal8 中用参数创建了动态路由。现在我需要根据用户操作重定向到此页面。如何做到这一点?
页面示例路由器代码如下示例:
domain_site_settings.config_form:
path: '/admin/config/domain/domain_site_settings/{domain_id}/edit'
defaults:
_form: '\Drupal\domain_site_settings\Form\DomainConfigSettingsForm'
_title: 'Domain site settings'
requirements:
_permission: 'domain site settings'
options:
_admin_route: TRUE
Run Code Online (Sandbox Code Playgroud)