首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在页面加载和ajax调用之后,需要将当前页面的“内容类型”传递给node.html.twig模板(对于不同的内容类型)

在页面加载和ajax调用之后,需要将当前页面的“内容类型”传递给node.html.twig模板(对于不同的内容类型)
EN

Drupal用户
提问于 2020-04-23 20:58:28
回答 1查看 507关注 0票数 0

我正在尝试获取节点页面的内容类型值(用户当前正在访问的内容类型值--让我们称之为CT-1).并将该值作为变量输入到不同内容类型的node.html.twig模板(CT-2)中。此CT-2模板正在视图输出中使用,显示在CT-1页上.这是我的密码。

代码语言:javascript
复制
function custom_mods_preprocess_node(array &$variables, $hook) {
   if ($node = \Drupal::request()->attributes->get('node')) {
     $variables['pageNodeType'] = $node->getType();
   }
 }

然后我把pageNodeType变量打印到CT-2's node.html.twig模板中。

代码语言:javascript
复制
{% if pageNodeType == 'TYPE' %}
TEST
{% endif %}

这一切都完美地工作在页面加载。但是当使用AJAX (通过公开过滤器)过滤视图输出时,pageNodeType变为空,因此"if语句“与CT-2模板中断。

在ajax更新之后,我能做些什么来保持这个变量的活动呢?

我试过利用..。

代码语言:javascript
复制
\Drupal::request()->headers->get('referer');

..to提取前一页,但通过这种方法获得Content似乎是一项相当大的任务。有没有更好的方法。

谢谢!!

编辑:可能也与这篇文章有关。但没有答案?在钩子中使用ajax获取当前节点的视图_视图_查询_更改

EN

回答 1

Drupal用户

回答已采纳

发布于 2020-04-24 20:42:51

嗯,这是我想出来的.而且它可以按需要工作。如果这种方法有问题,请随时批评。我的后端技能还有很多需要改进的地方。谢谢!

代码语言:javascript
复制
function custom_mods_preprocess_node(array &$variables, $hook) {

// Get the current page's content type on page load
$node = \Drupal::routeMatch()->getParameter('node');
if ($node instanceof \Drupal\node\NodeInterface) {
  $variables['pageNodeType'] = $node->getType();
}

// Keeps the type available if an AJAX call happens 
if (\Drupal::routeMatch()->getRouteName() == 'views.ajax') {
  $previousUrl = \Drupal::request()->headers->get('referer');
  $fake_request = Request::create($previousUrl);
  $url_object = \Drupal::service('path.validator')->getUrlIfValid($fake_request->getRequestUri());
  if ($url_object) {
    $route_params = $url_object->getRouteParameters();
    $ent_id = $route_params['entity_id'];
    $node = \Drupal\node\Entity\Node::load($ent_id);
    $variables['pageNodeType'] = $node->getType();
  }
}
票数 0
EN
页面原文内容由Drupal提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://drupal.stackexchange.com/questions/293093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档