0

ヘルパーの皆さん、こんにちは!

最近、Drupal の機能を読んだりテストしたりしていますが、この CMS は非常にスケーラブルで興味深いものだと思います。テーマ、ビュー、コンテンツ タイプなどの作業を開始しましたが、インターネットで見つけられないものを探しています。

背景 : 10 周年を記念して、ある非営利団体の新しい Web サイトを作成しています。主に、このサイトはルール内でさまざまな能力を持つゲーム用です。さまざまな能力の用語集を作成したいと思います。それは大きな挑戦ではありません。

これは私がアーカイブしたいものです: この用語集では、コンテンツ内で遭遇するたびに能力の説明をしたいと思います.

アビリティ用語集(一覧) : http://conflitseternels.net/index.php?id=habiletes

コンテンツ内で 1 つの能力に遭遇するたびに、その説明にリンクします。

この質問を達成するために私を導くことができれば、私はとても幸せです!

ありがとう、ウィル

4

1 に答える 1

0

Glossify ( http://drupal.org/project/glossify )のようなことをしていると思われるモジュールを 1 つ見つけました。私自身は使ったことはありませんが、試してみる価値はあります。Glossify がうまくいかない場合は、モジュールの改善に協力するか、自分でカスタム モジュールを作成することを検討してください。

理論的には、単語をリンクに変換する方法には、ノードを保存するときとノードを表示するときの 2 つがあります。どちらの場合も、ノード内のすべての単語をチェックして、それが能力の 1 つと一致するかどうかを確認します。どちらのソリューションにも長所と短所があります。ソリューションを選択するときは、パフォーマンスに注意する必要があります。これは、検索と置換のアクションが多くのシステム リソースを消費する可能性があるためです。特に、多くのユーザー、長いテキスト、および多くの機能がある場合はそうです。

Drupal では、hook_nodeapi ($op=presave) を実装することで、ノードの保存時にコンテンツを変更できます。コンテンツがデータベースに書き込まれる直前に、nodeapi 関数が魔法のように機能します。利点: 検索と置換は、ノードごとに 1 回だけ実行されます。欠点: 新しいアビリティを追加しても、既存のノードに新しいリンクは追加されません (ノードを再保存しない限り)。

ノードが表示されているときにコンテンツを変更するには、hook_nodeapi ($op=view) または hook_filter を実装します。リンクはデータベースに保存されませんが、ユーザーがノードを表示するたびにオンザフライで追加されます。利点: 新しいアビリティは、以前に保存されたノードにもリンクされます。短所: パフォーマンス、検索と置換はすべてのノード ビューで実行する必要があります (ただし、キャッシュによって部分的に解決される可能性があります)。

于 2010-01-08T22:38:56.313 に答える