web-dev-qa-db-ja.com

コンテンツ本文のnode / idをnode / path-aliasに変換します

Ckエディターからコンテンツ本文へのリンクを/node/7として追加しました。このページを表示するとき、www.sitename.com/example/aliasを表示します。

これはdrupal 7(私のサイトの以前のバージョン))では正常に機能していますが、どのモジュールがこの機能を実行するかはわかりません。

pathautoredirectpathologicモジュールをインストールしました。また、admin/config/content/formatsでテキスト形式を構成し、病理学的フィルターを最優先に設定しました。しかし、運はありません。

リダイレクトモジュールをインストールした後、ブラウザーでnode/7を押すと、予期したエイリアスに自動的にリダイレクトされます。しかし、ckeditorにurl aliasを入力した場合でも、コンテンツページには/node/7のみが表示される必要があります。

上記のモジュールの構成が不足していますか?または、モジュールが不足していますか?

3
siddiq

Pathologicモジュールにhook_pathologic_alterとしてフックが見つかり、ノードパスをURLエイリアスに変換するために使用しました。

このフックを次のように使用しました

/**
 * Implements hook_pathologic_alter().
 */
function mymodule_pathologic_alter(&$url_params, &$parts, &$cached_settings){
    if ($parts['path'] != '<front>') {

        //get the alias for the path and assign it in path
        $alias = \Drupal::service('path.alias_manager')->getAliasByPath('/'.$url_params['path']);

        //Url::fromUri which Pathologic uses need a path without slash at first, so trim it
        $url_params['path'] = ltrim($alias, '/');
    }
}

これにより、ノードパスがエイリアスに変換されて渡されるため、Pathologicはエイリアスを使用してURLを形成します。

2
siddiq