We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 6158
    • 224 Posts
    今可能かどうか調べている最中なのですが、ご存知の方がおられましたらお教
    えください。

    ドキュメントの作者自身が、ドキュメントの中に自作の php script を埋め込
    み、それを自分のページで表示させることは、可能なのでしょうか?

    こういう機能が何と呼ばれているのか分からないので、タイトルには「user
    script」と書かせて頂きました。


    FAQ によると、スニペットやプラグインは管理画面から触れると書かれていま
    すので、同じようにユーザーが独自のスクリプトを書き込めるのではないかと
    思いますが。詳細はまだ分かりません。


    お分かりの方がいらっしゃったらお教えください。
    # ここの話題として不適当かもしれませんが。
      • 8382
      • 253 Posts
      custerさん。ようこそ

      php scriptをドキュメントの内容として書き込んで、それを「表示」させることは可能です。
      今のところ、ドキュメントに直接書き込んだphpスクリプトを「実行」する事はできません。
      こんな答えでよろしいでしょうか? wink
        • 6158
        • 224 Posts
        eastbind 様、お返事ありがとうございます。

        望ましくは、そのスクリプトを実行させ、その結果をドキュメント上に表示さ
        せたいと考えています。

        具体的には、ユーザーが用意したデータベース上のデータを php で抽出し、そ
        れを一覧させるというものです。やりたいことは凄く簡単なのですが、MODx で
        可能なのかお聞きしたいと思っています。


        eastbind 様の回答を「コードの表示はできても実行は不可」と読み取りました。

        もしその通りだとすると、ユーザーが独自にテーブルから情報を読み取り、そ
        の結果を表示させたいとすると、MODx ではどのように実現することが可能なの
        でしょうか?
          • 8382
          • 253 Posts
          custerさん。

          データベース上のデータを動的に一覧表示する方法は、MODxではいろいろあります。
          が、通常は「スニペット」というMODx管理画面から保存するPHPスクリプトを使用すると思います。
          MODxでは、ドキュメントには直接PHPスクリプトを書かずに、実行したいスニペットの名前を
          [[名前]]と書き込むことによって、ドキュメントの任意の場所でPHPスクリプトを実行しその結果を得ます。
          後は実際にMODxに触ってみることをお勧めします。
          lipsrsealed
            • 6158
            • 224 Posts
            Quote from: eastbind at Sep 04, 2006, 01:47 AM

            データベース上のデータを動的に一覧表示する方法は、MODxではいろいろあります。

            それは何という方法なんでしょうか。



            Quote from: eastbind at Sep 04, 2006, 01:47 AM

            通常は「スニペット」というMODx管理画面から保存するPHPスクリプトを使用すると思います。

            Content > New document > Document setting > Snippets

            で見られる「Snippets available for you to include in your page」がドキュ
            メントで使える snippets に当たるのかな、と推測しています。書き出しますと、

            404form
            ContactForm
            DateTime
            DropMenu
            FlexSearchForm
            GetStats
            ListIndexer
            ListRelated
            MemberCheck
            NewsFeed
            NewsListing
            NewsPublisher
            PageTrail
            Personalize
            PoweredBy
            UserComments
            WebChangePwd
            WebLogin
            WebSignup

            ...以上ですが、名前を読めば、ある程度は想像つきます。が、詳細を調べよう
            と説明のページを探していますが、見つかりません。「Resource Repository」
            も全て見渡しましたが、ありません。

            何処に snippets の詳細説明があるかお分かりになりますか。



            Quote from: eastbind at Sep 04, 2006, 01:47 AM

            MODxでは、ドキュメントには直接PHPスクリプトを書かずに、実行したいスニペットの名前を
            [[名前]]と書き込むことによって、ドキュメントの任意の場所でPHPスクリプトを実行しその結果を得ます。

            この手のものは高機能な CMS であれば自作することができると思いますが、そ
            の前に、私が作ろうとする機能を既にもつ snippet を探そうと思います。それ
            は何処で調べれば宜しいのでしょうか?
              • 6158
              • 224 Posts
              Resources > Manage resources > Snippets

              に簡単な説明が書かれていました。Official Site のドキュメントにあるもの
              とばかり思っていたのに、管理画面にあるなんて。

              おぼろげながらに仕組みが分かりつつあります。まだ疑問は尽きませんが。


              | 運用に関する質問
              | -チャンク・スニペット・プラグイン・モジュールの違いは?
              |
              |faq - よくある質問の一覧
              |http://modxcms.com/forums/index.php/topic,4923.0.html

              ....同感。

              - Chunks
              - Snippets
              - Widgets
              - Plugins
              - Modules

              これらは何なんだろう、どんな違いがあるんだろう? ...今調べています。
                • 6158
                • 224 Posts
                snippets の説明はフォーラムで行われているんですね。
                これまた本家のドキュメントにあると思っていました。

                MODx Community Forums
                ≫ Japanese Community
                ≫ マニュアル・テュートリアル・翻訳
                ≫ 事例集、テュートリアル
                http://modxcms.com/forums/index.php/board,114.0.html

                リポジトリ - MODx で利用可能なリソースの一覧 (スニペット・プラグインetc.)
                http://modxcms.com/forums/index.php/topic,4917.0.html


                snippet, plugin, module の関係も概略は分かりました。
                • 遅いコメントになっちゃいましたが。(今気付いた)

                  > ドキュメントの中に自作の php script を埋め込み、それを自分のページで表示させる

                  ってことなら、スニペットだと思います。スニペットというのはJavaScript外部ファイルみたいなものです。
                  JavaScriptを外部ファイルに記述して、それをhtmlページの中から呼び出しますよね。
                  あれと似たイメージです。

                  普通にphp文を書けばいいようですが、書き方を少し工夫すればパラメータを与えることも
                  できるようです。僕はphp文を書けないので、これくらいしか言えませんが。。 tongue

                  ちなみに次バージョンのMODxではこのパラメータを動的に制御できるようになる見通しなので、
                  アイデアのある人には楽しいものになりそうな予感です。
                    • 6158
                    • 224 Posts
                    yama 様、お返事有り難うございます。

                    Quote from: yama at Sep 05, 2006, 12:27 PM

                    > ドキュメントの中に自作の php script を埋め込み、それを自分のページで表示させる

                    ってことなら、スニペットだと思います。
                    スニペットというのはJavaScript外部ファイルみたいなものです。
                    JavaScriptを外部ファイルに記述して、それをhtmlページの中から呼び出しますよね。

                    分かりやすい、イメージしやすい。納得しました。

                    最近は、php よりも javascript ばかり触っていますので、
                    ご説明で扱い方が想像できるようになりました。

                    試してみます。
                      • 6158
                      • 224 Posts
                      typo3 の運用テストと並行しながらやっていましたが、typo3...余りに面倒く
                      さすぎました。たかがログイン画面作るのに何時間かかったやら。

                      ドキュメントが沢山あるのはいいのですが、かなり特殊でした。勝手に色々やっ
                      てくれるのは一面楽そうなんだけど、仕組みが分かってないと手に負えません。
                      全体的な見通しの悪さが私の能力を超えていました。

                      枯れたアプリケーションの集大成的なドキュメント類とそのスタイルに馴染む
                      には、ギャップが大き過ぎたと感じています。



                      で、改めて modx に戻ってきますと、どうにかログイン画面を作ることができ
                      ました。snippet に関しても自前のスクリプトを動かせることも確認できて、
                      満足しています。typo3 に比べて小回りが利きそうです。正しい使い方やプロ
                      グラミング規約みたなものがあるかもしれないので、もう暫く遊んでみます。



                      ページデータで使われている日本語がおかしいかなと感じたところがあります。
                      "manager access" が「マネージャへのアクセス」となってるけど、マネージャ
                      に対してアクセスするのか?と読み違えてしまいました。

                      マネージャがそのページにアクセスする時のことを言うのなら、「マネージャ
                      のアクセス」もしくは「マネージャからのアクセス」、「マネージャによるア
                      クセス」というのはどうでしょう。

                      私が特に引っ掛かったのは、ドキュメント・グループというもの。何だそれ?
                      と思い、英語ドキュメントを読んだら、ある程度理解できました。


                      遊んだ結果を一応残しておきます。



                      -- 環境 --

                      windows xp homeedition sp2
                      xampp 1.5.2
                      apache 2.2.0
                      php 1.5.2
                      mysql 5.0.20
                      modx 0.9.2.1



                      -- 作業内容 --

                      (1) アーカイブを展開して適当に改名する。(tar.gz は壊れていた)
                      $ unzip -q ../.downloads/modx-0.9.2.1.zip
                      $ mv modx-0.9.2.1 modx


                      (2) config.inc.php の作成とパーミッションの変更
                      $ cd modx
                      $ touch manager/includes/config.inc.php
                      $ chmod 666 manager/includes/config.inc.php
                      $ chmod 777 assets/cache assets/cache/*.php assets/export assets/images


                      (3) ブラウザで http://localhost/modx/install にアクセス (インストール開始)
                      ...中略....


                      (4) Optional Items で「Sample Web Site」をチェックする。


                      (5) 後は次々にボタンを押して、インストールを終了する。install ディレクトリの削除に失敗するが無視。


                      (6) ログイン


                      (7) web user group "hpd" の作成

                      Users > Web permissions > Web User groups:
                      Create a new user group
                      [ hpd ]


                      (8) Document group "Corporate" の作成

                      Users > Web permissions > Document groups:
                      Create a new document group
                      [ Corporate ]


                      (9) web user group と document group の関連付け

                      Users > Web permissions > User/Document group links:
                      hpd - Corporate [add]


                      (10) web user の作成

                      Users > Manage web users > New web user:
                      General
                      - Username : user1
                      - password : user123
                      - E-mail : [email protected]
                      - Web access permissions : hpd ... web user group "hpd" に属するとして保存。

                      勝手に「Registered Users」にも登録される。


                      (11) ログインページの作成

                      Content > New document:
                      General
                      - Title : HPD
                      - Document content : [!WebLogin? &tpl=`FormLogin` &loginhomeid=`38`!] と記入して保存。
                      - Access permissions : "Corporate" を選択。"Web access: Private" となる。

                      Page Settings:
                      - Published? : チェック


                      (12) ログインできました。