太郎

コンテンツデータのリンクに関して

0

「パーツ」、「本体」という2つのコンテンツタイプを作成したとします。
「本体」のコンテンツフィールドにはコンテンツタイプがあり、「パーツ」を複数選択できます。
サイトには「パーツ」の一覧を表示します。

ここからが問題なのですが、一覧に表示されている「パーツ」をクリックすると、
その「パーツ」を含む「本体」の詳細ページ(コンテンツタイプアーカイブから出力)へ遷移させたいのですが、
そのようなことはできますでしょうか。

なお、各「パーツ」は必ず1つの「本体」にしか属さないものとします。

返信(3)

| 返信する
  • ちなみに「本体」にいくつの「パーツ」が属するかは決まっておらず、
    「パーツ」にはそれぞれタグを指定することができ、そのタグにより検索することをできるようにするため、
    「パーツ」と「本体」はそれぞれ別のコンテンツデータでなければなりません。

  • 「パーツID」と「本体の詳細ページURL」を対応付けたハッシュを用意し、
    パーツの一覧を表示する際に、上記のハッシュを参照して本体の詳細ページURLを取得すればよいと思います。

    <mt:Ignore>「パーツID」と「本体の詳細ページURL」を対応付けるハッシュを用意する</mt:Ignore>
    <mt:SetVar name="body_urls">
    <mt:Contents content_type="本体" limit="999999">
      <mt:ContentPermaLink setvar="body_url">
      <mt:ContentField content_field="パーツ">
        <mt:Ignore>パーツのユニークIDをキーとして、本体の詳細ページURLをハッシュに格納する</mt:Ignore>
        <mt:ContentUniqueId setvar="parts_id">
        <mt:SetVarBlock name="body_urls" key="$parts_id"><mt:Var name="body_url"></mt:SetVarBlock>
      </mt:ContentField>
    </mt:Contents>
    
    <mt:Ignore>パーツ一覧の表示</mt:Ignore>
    <mt:Contents content_type="パーツ" limit="999999">
      <mt:ContentsHeader><ul></mt:ContentsHeader>
      <mt:Ignore>パーツのユニークIDをもとにハッシュを参照し、本体の詳細ページURLを取得する</mt:Ignore>
      <mt:ContentUniqueId setvar="parts_id">
      <li><a href="<mt:Var name="body_urls" key="$parts_id">"><mt:ContentLabel></a></li>
      <mt:ContentsFooter></ul></mt:ContentsFooter>
    </mt:Contents>

返信する