We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 19033
    • 892 Posts
    こんにちは。よろしくお願い致します。

    以下の問題(?か仕様かはまだわからないのですが)が、
    見つかりましたので、ご報告します。

    Jot では、以下のようにコールして、
    [!Jot? &output=`0` &placeholders=`1`!]

    ドキュメントのいずれかの場所に以下のように記述すると
    [+jot.html.comments+]
    [+jot.html.form+]


    任意の場所に任意のブロックを出力させることができますが、PHxをインストールした
    状態だと、上記のように書いてもプレイスホルダの値が出力されません。

    この時、PHxを無効にすれば、各ブロックを出力できます。
    あるいは、PHxが有効でも、以下のように
    [[Jot? &output=`0` &placeholders=`1`]]

    cache-style でコールすると、各ブロックが出力されます。

    しかし、Jotコールをcache-style で行う場合、ドキュメントのキャッシュを
    「不可」にする必要があります。

    …という問題にはまっていました。。
    私としては、ドキュメントのキャッシュは「可」で運用したくて、かつPHxも使いたいのです。
    そして、「&output=`0` &placeholders=`1`」を指定して、プレイスホルダで
    各ブロックを出力したいです。

    Jotのフォーラムには投稿したんですが。。
    http://modxcms.com/forums/index.php/topic,12828.msg103702.html#msg103702

    解決策はあるでしょうか。。?
      • 19033
      • 892 Posts
      もうひとつ問題点がありました。

      JOTは、通常、パラメータで「&validate=`vericheck:必須:#[abc]#」とかやると、
      正規表現で、チェックをかけられるのですが、PHxを導入していると、この正規表現の中に
      「[」「]」を使えないのです。

      例にも依るとは思うのですが、PHxが有効な状態で、例えば、以下のようにスニペットコールをして
      [[Jot? &validate=`content:コメント必須,title:タイトル必須:#[abc]#`]]

      (ドキュメントのキャッシュは不可)

      で、表示されるコメントフォームのsubmitボタンをクリックすると、以下のようにエラーが出ます。
        Error: 	preg_match() [function.preg-match]: Empty regular expression	 
        Error type/ Nr.: 	Warning - 2	 
        File: 	/ドメインなど/assets/snippets/jot/jot.class.inc.php	 
        Line: 	781	 
        Line 781 source: 	if (!preg_match($re,$value))


      PHxが無効になっていれば、問題ないんですけど。。
      プログラムに詳しい方ならどこをいじればよいか、または正規表現の書き方を
      変えるとかすればよい、等、おわかりになるのでしょうか。。
      (私自身、プログラムも正規表現も詳しくないんです…)。

      もし、解決方法などわかれば、教えて頂ければ幸いです。
      よろしくお願い致します。
      ---*---*---*---*---*---
      PHPのエラーログは以下のようです。
      [04-Jul-2007 21:02:18] PHP Warning:  Unknown(): Unable to load dynamic library 
      '/usr/local/lib/php/extensions/no-debug-non-zts-20020429/gd.so' - Cannot open 
      "/usr/local/lib/php/extensions/no-debug-non-zts-20020429/gd.so" in Unknown on line 0


      フォーラム投稿:
      http://modxcms.com/forums/index.php/topic,7522.msg103954.html#msg103954
        • 19033
        • 892 Posts
        経過報告です。
        PHxは、やはり、別のスニペットにも影響しているようです。
        eFromでも問題があがっているとの報告がありました。
        解決策は見つかっていません。
          • 19033
          • 892 Posts
          こんにちは。
          ちょっと、私、誤解していたんですが。。

          Jot、Ditto、maxigallery、にはあらかじめ、PHxファンクションが組み込まれているんで、
          これらのスニペットでPHxを利用したいのならば、別途、PHxプラグインを導入しなくても
          いいんですね。。(ファイル構成をみていて今日気がついたんですが…)。
           ↑
          PHxの解説の方にもその旨は追記しておきました。

          ということで、Jotで、PHxプラグインを導入しているときに、問題が出るのは、
          なにかの衝突が起こっているのかも知れないですね。

          PHx導入時、eFormで問題が出るのは、別の問題だと思いますが。。
            • 1965
            • 2 Posts
            こいつ、私もハマりました。
            私の場合はDittoなのですが、paginate=`1`にしたときのプレースホルダが全滅という悲しい事態に。
            Ditto自身はPHx内蔵ですが、TVの整形とかで便利なのでPHxを入れちゃいまして。

            自分の場合はプラグインPHxでプレースホルダへの適用は必要なかったので殺して逃げました。
            phx.parser.class.inc.phpのfunction Parseにある
            preg_match_all(’~\[(\+|\*|\()([^:\+\[\]]+)([^\[\]]*?)(\1|\))\]~s’, $template, $matches);
            を
            preg_match_all(’~\[(\*|\()([^:\[\]]+)([^\[\]]*?)(\1|\))\]~s’, $template, $matches);
            として+のマッチを削除します。

            でもPHx内蔵以外のスニペットのプレースホルダで使いたい人にはダメですな。
            ちょっと今はソースを追ってる暇があまり無いので、あとは偉い人にお任せ。
              • 19033
              • 892 Posts
              こんにちは。arさん。どうもありがとうございます。

              なるほど、Dittoでページナビゲーションを入れる場合も、
              ドキュメントにプレイスホルダを書きますが、それが表示されない
              と言うことなのですね。。

              対処法もありがとうございます。
              でもPHx内蔵以外のスニペットのプレースホルダで使いたい人にはダメですな。

              確認させて頂ければ嬉しいのですが、これは、たとえば、
              [*introtext:limit=`40`*](ドキュメント変数を使った場合)といった使い方なら平気という意味です...?
                • 1965
                • 2 Posts
                確認させて頂ければ嬉しいのですが、これは、たとえば、
                [*introtext:limit=`40`*](ドキュメント変数を使った場合)といった使い方なら平気という意味です...?

                プレースホルダのみ殺してますので、ドキュメント変数は問題ありません。

                しかしながらこの方法もMaxiGallery等の一部のプレースホルダが展開されないという問題が出てボツとなりました。
                なので、使用しないようお願いします。
                さすがにテキトーすぎでした。反省。
                ちゃんと追わないとダメですねー。
                  • 19033
                  • 892 Posts
                  こんにちは。ありがとうございます。
                  しかしながらこの方法もMaxiGallery等の一部のプレースホルダが展開されないという問題が出てボツとなりました。

                  私の方でも、試してみました。Jotですが、コードがそのまま出てきちゃう部分がありました。
                  なんとか使えるようになるといいですよね。。テンプレートごとにPHxの有効無効を切り替えられる
                  とかでもいいんですけど。。
                    • 19033
                    • 892 Posts
                    こんにちは。
                    個別の問題についての回避策が出ているようです。
                    Dittoでページナビゲーション用のプレイスホルダで上手く値を
                    表示できない場合の回避策が出ています。

                    それとチャンクのなかで[*変数タグ*]が利用できない場合の
                    回避策(たぶん...)がでています。
                    http://modxcms.com/forums/index.php/topic,7522.msg107144.html#msg107144

                    ※テンプレート/ドキュメントごとにPHxを無効にする方法はこちら
                    http://modxcms.com/forums/index.php/topic,16867.0.html