仅在选中此复选框时更新路径

时间:2020-07-15 07:45:58

标签: drupal drupal-8 pathauto

我的内容类型为“ static_content”,该字段具有两个选项:“ CN-中文”和“ EN-英语”(复选框) 在pathauto中,我创建了一个默认模式,将其保存为“ page / [node:title]” 在此自定义模块中。我只是希望当用户创建/更新节点并选择“ EN-English”时,更新后的模式只是在路径开头添加“ en /”。

下面是我使用的代码,没有应用任何新模式。 如果我将$ lang ==“ en-english”更改为$ lang =“ en-english”,那么无论选中哪个选项,都将应用模式“ en/"。

我在做什么错,如何解决?

function custom_alias_pathauto_pattern_alter(PathautoPattern &$pattern, array $context) {
      // When nodes are created or updated, alter pattern with criteria logic.
      if ($context['module'] == 'node' && ($context['op'] == 'insert' || $context['op'] == 'update')) {
        /** @var \Drupal\node\Entity\Node $node */
        $node = $context['data']['node'];

        switch ($node->getType()) {

          case 'static_content':
           $lang = '[node:field_content_language:name]';
           if($lang == "en-english"){
            $pattern->setPattern('en/'. $pattern->getPattern());
           }
          default:
            break;
        }

      }
    }

这是我第一次尝试创建自定义模块并使用钩子。任何建议和技巧表示赞赏。谢谢! :)

0 个答案:

没有答案
相关问题