2

Ubercartを実行しているDrupalで動作するように、古い学校のPHPサイト( http://cordair.com/ )をアップグレードしようとしています。重要なことの1つは、人々がブックマークしたURLが同じままであることを確認することです。

私の分類法は次のようになります

Catalog
 + Artists
    + Pablo Picaso
    + Lenardo DaVinci
 + Medium
    + Sculpture
    + Painting
    + Print

分類法は複数選択です。したがって、それぞれに1人のアーティストがいて、場合によっては複数のメディアがあります(たとえば、何かがオリジナルの絵画であると同時に、印刷物としても利用できる場合があります)。http://foo.com/picasoで、PabloPicaso以下のすべてのアイテムを一覧表示するページをサイトで提供できるようにしたいと思います。また、 http://foo.com/paintingsのように、すべてのアーティストのすべての絵画を一覧表示できるページを作成できるようにしたいと考えています。

これをやってのけるための最良の方法は何ですか?パスオートを使用する必要があるように見えますが、正しい設定が何であるかを理解するのは本当に混乱しています。また、分類用語をURLに変換する方法をカスタム調整する方法もわかりません。今はIDを取得しています。用語名を使用する方法があるようですが、作成しようとしているURLは、名前ではなく名前だけを使用しています。

Drupalの初心者を許してください。これはすべて可能であり、おそらく私が思っているよりも簡単だと確信しています。

4

2 に答える 2

2

可能ですが疑わしいアプローチ:

姓のみを抽出するには、必要な文字列操作を行う分類用語のカスタムトークンを実装する必要があります。[cat](デフォルトトークンのバリエーションを作成する必要があります。カスタムノードタイトルトークンのこの例も、プロセスを理解するのに役立つ場合があります。)

ただし、このアプローチにはいくつかの重大な欠点があります。

推奨される代替アプローチ:

上記のあいまいさの問題に対処することを回避し、置き換えたいサイトのターゲット名のセットがこれまでのところ非常に少ないことを考えると[cat]、URLにフルネームを使用して、標準のトークンを使用します(Pathautoでは特殊文字のデフォルトの置換を指定します(スペースからアンダースコアまたはダッシュなど)。次に、すべての古い「姓のみ」のURLのリダイレクトルールをサイトの.htaccessファイルに追加して、新しいバージョンを宣伝しながら機能を維持できます。

# http://example.com/picasso  => http://example.com/pablo_picasso
RewriteRule ^picasso $ http://example.com/pablo_picasso [L,R=301]
# ... and so on for all old urls that changed

( .htaccess操作の代わりに「Drupalinternal」としてパスリダイレクトモジュールをチェックすることもできます)。


さらに、「カタログ」階層を「アーティスト」と「ミディアム」などの2つの別々の語彙に分割することをお勧めします。これにより、ノード入力フォームに2つの別個の分類フィールドが作成されますが、セマンティックディファレンスに適合し、ノードのフィルタリング、並べ替え、およびグループ化の柔軟性が向上します。

于 2010-07-04T15:54:02.053 に答える
0

パス自動は、コンテンツの属性に基づいてコンテンツのパスエイリアスを自動的に生成するためのものです。

あなたはいくつかの異なるコンテンツタイプ(cck)を持ち、それらのタイプをノード参照モジュールに関連付けることについてもっと話しているようです。次に、picasoとpaintingsのURLは単純なビューであり、引数を取るか、公開されたフィルターを使用して、表示されるノードをさらに制限することができます。

于 2010-07-02T22:16:27.010 に答える