We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 27893
    • 7 Posts
    こんばんは。
    親のドキュメントIDを取得する[*parent*]みたいに、親ドキュメントのタイトルを取得するドキュメント変数ってあるのでしょうか?ドキュメント変数じゃなくても何か違うやり方で取得する方法があれば教えてください。宜しくお願いします。
      • 27086
      • 37 Posts
      こんばんは。

      スニペットのgetFieldかgetParentあたりでどうでしょうか。

      #他スレにもありましたが、この掲示板だとOSX+safariだとプレビューまで大丈夫ですが、postすると結果は化けちゃいますね。
        • 27893
        • 7 Posts
        スニペットを使えばできるんですね。勉強になります。ありがとうございます smiley
        safariだと文字化けするんですか。safari3(mac版,win版)が正式公開するまでには直していただきたいですね。
          • 10105
          • 51 Posts
          似たような内容なのでこちらに質問させていただきました。

          bodyタグに個別のid属性を出力したく、

          [[GetField? &parent=`1` &field=`alias`]] 

          として、子以下のドキュメントは、親ドキュメントのエイリアスの出力ができたのですが、

          親自身はid属性が出力されません。(親が無いため)←*規正*実際は出力されます!

          ”親ドキュメントの場合は、親自身のエイリアスを出力する” という風にするにはどうしたらよいでしょうか?
            • 26012
            • 324 Posts
            freakaleさんこんにちは

            テンプレートやチャンクの中で処理する場合は、PHxを使って[*parent*]==0かどうかで分岐。
            ID以外の複数の項目を表示したり、条件によってより複雑な処理が必要になる、と判断する場合は、
            スニペットを自作してPHPでコーディング、という感じかと。 (勿論他にも方法があると思います)

            それと、これはあくまで私の経験則なんですが、getFieldなどの独立したスニペットを多用して、
            非常に多くの項目を出力すると、DBへのクエリー回数が極端に増加して描画性能が落ちることが
            あります。もしDittoやWayFinderなどのプレースホルダが使えるスニペットのテンプレート内での
            処理であれば、なるべくプレースホルダを利用することをお勧めします。
              • 10105
              • 51 Posts
              sama55さんありがとうございます。

              Quote from: sama55 at Feb 05, 2009, 07:40 AM

              それと、これはあくまで私の経験則なんですが、getFieldなどの独立したスニペットを多用して、
              非常に多くの項目を出力すると、DBへのクエリー回数が極端に増加して描画性能が落ちることが
              あります。もしDittoやWayFinderなどのプレースホルダが使えるスニペットのテンプレート内での
              処理であれば、なるべくプレースホルダを利用することをお勧めします。

              まだまだ勉強不足で理解できてないですが、自分なりに調べてみます。

              今回は、getfieldは、bodyタグのid取得のみで使用予定なので大丈夫かなと。(そういうことじゃない??)

              やはりPHxとやらを使わなければならないんですね
              少し調べて、わからなければ再度質問させていただきます。

              あと気になったのですが、親ドキュメントを公開せずに純粋にフォルダのみとして使用しても問題ないのでしょうか?
              既存のWEBサイトを移行しようとしているので、その方が何かと都合が良いのですが・・・

                • 26012
                • 324 Posts
                Quote from: freakale at Feb 05, 2009, 08:08 AM

                今回は、getfieldは、bodyタグのid取得のみで使用予定なので大丈夫かなと。(そういうことじゃない??)
                その程度の使用であれば、「それと・・・」 は、無視してください。

                Quote from: freakale at Feb 05, 2009, 08:08 AM

                あと気になったのですが、親ドキュメントを公開せずに純粋にフォルダのみとして使用しても問題ないのでしょうか?
                既存のWEBサイトを移行しようとしているので、その方が何かと都合が良いのですが・・・
                ちょっと微妙な表現で、やりたいことがしっかり理解できないのですが、もしオーサリングツールで作成した
                ページをサブフォルダ(フォルダドキュメントのエイリアスを利用したフレンドリーURLが指す仮想的なフォルダ)
                にそのまま置きたい、というニーズでしたら、確かどこかで見た気がします。それがどこだったか・・・
                ネットで検索すると出てきたような・・・(うろ覚えですいません。)
                  • 10105
                  • 51 Posts
                  読み返したら、確かに微妙な表現でした。・・・すいません embarrassed

                  親ドキュメント1 ←ここを公開せず、何も記述せずにフォルダ扱い
                   └ ドキュメントA
                   └ ドキュメントB
                     └ ドキュメントC
                     └ ドキュメントD

                  という感じです。

                  アドレスだと ttp://www.******.com/親ドキュメント1/ドキュメントA.html です。

                  これだったら、[[GetField? &parent=`1` &field=`alias`]] で問題ないのかなぁと思ったのですが・・・
                    • 26012
                    • 324 Posts
                    Quote from: freakale at Feb 05, 2009, 09:13 AM

                    親ドキュメント1 ←ここを公開せず、何も記述せずにフォルダ扱い
                     └ ドキュメントA
                     └ ドキュメントB
                       └ ドキュメントC
                       └ ドキュメントD

                    という感じです。
                    アドレスだと ttp://www.******.com/親ドキュメント1/ドキュメントA.html です。
                    これだったら、[[GetField? &parent=`1` &field=`alias`]] で問題ないのかなぁと思ったのですが・・・
                    まず、上記のGetFieldのパラメータの意味を整理すると、、、
                     ・&parent=`1` : 親の情報を取ってきなさい。
                     docid       : 省略しているので、GetFieldの対象はカレントドキュメント。

                    つまり、
                    ドキュメントDでGetFieldを呼び出すと、、、
                     予想結果 : ドキュメントBのaliasが問題なくとれる
                    ドキュメントAでGetFieldを呼び出すと、、、
                     予想結果 : 親ドキュメント1にaliasが定義されてれば定義した文字列が返されるが、なければ空文字が返される
                    親ドキュメント1でGetFieldを呼び出すと、、、
                     予想結果 : 親がいないのできっと失敗する   となり、ここでPHxで仕組んだ判定が発動して自分自身のaliasをGET。

                    こんな返答を期待してますか?
                      • 10105
                      • 51 Posts
                      たびたび、ありがとうございます。

                      まさにそんな感じなのですが、今現在は、

                      ドキュメントA
                       └ ドキュメントB
                         └ ドキュメントC

                      となっていて、試してみた限りでは、

                      ドキュメントB、Cともに、GetFieldを呼び出すと、ドキュメントAのaliasを取得
                      ドキュメントAでは、GetFieldを呼び出すと、取得できず

                      といった状態です。

                      ですので、ドキュメントAがPHxで仕組んだ判定が発動して自分自身のaliasをGETできるようにすればと思ったのですが、

                      親ドキュメント1 ←ここを公開せず、何も記述せずにフォルダ扱い
                       └ ドキュメントA
                         └ ドキュメントB
                          └ ドキュメントC

                      とすることで、ドキュメントA,B,CともにGetFieldで呼び出して、ドキュメントAのaliasを取得できるので、
                      PHxを使わなくてもいいのではと思ったわけです。

                      ただ、ドキュメントをそういった扱いにして、不都合が無いのでしょうか?

                      とりあえずは、テストすればわかると思うので試してみようと思います。