Pathautoを使用せずにコンテンツタイプのURLエイリアスを自動的に設定する方法 実装するフックは?


11

Pathautoはすべてのコンテンツタイプの仕事を簡単に行うことができますが、私の場合、カスタマイズが必要なコンテンツタイプのURLは1つだけなので、Pathautoとトークンをインストールしない方がよいでしょう。

誰か私に方法をアドバイスできますか?


2
頭痛の種を省き、pathautoを使用してください。この問題はすでに解決されていますが、なぜ解決するのですか?Pathautoは、ノードを保存しているときにのみパフォーマンスヒットを引き起こします(それでも、最小限の場合のみ)。
Matthew Scharley、2011年

4
pathautoよりも優れたURLを生成できるため、1つまたは2つのタイプのURLを生成する必要がある場合は、単一のフックを実装することで2つのモジュールを取り除くことができます。また、一括インポートは非​​常に遅いです(そして、ある時点で壊れただけで、400ノード以降は何もインポートすることを拒否します)が、私の軽量のcron / bulkスクリプトは、毎秒500ノードをインポートすることができました。エイリアスを生成するノード。
ワイルドピーク、2011年

回答:


12
/**
 * Implements hook_node_insert()
 */
 function mymodule_node_insert($node) {
   if ($node->type == 'mytype') {
     $node->path['alias'] = 'mytype/' . $node->nid;
   }
 }

さらに、このコードをhook_node_update()に追加できます。


1

を参照してください。Pro Drupal開発の149、hook_insert()を使用します。新しいノードが保存されると、hook_insert()が呼び出されます。これは、ノードが保存される前にノードのコンテンツのカスタム処理を処理する場所です。pもご覧ください。152-156プロDrupal開発では、さまざまなhook_node_xxxx()関数のすべてについて説明しています。

前の回答で提案されているようにhook_node_insert()を使用すると、特定のコンテンツタイプを変更する必要性に対処しないすべてのノード作成へのフックが発生すると思います。


次の文を含むhook_insert()で報告されている内容を確認してください:「このフックは、ノードのコンテンツタイプを定義するモジュールでのみ呼び出されます(hook_node_insert()すべてのノード挿入で動作するために使用)。
kiamlaluno
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.