inoue

MTAppjQueryを利用したブログID、コンテンツタイプID、IDで特定のページ情報を表示したい

0

お世話になっております。

MTAppjQueryを利用して、
・ブログID
・コンテンツタイプID
・ID
を取得し、ページを表示しようとしているのですが、
MTタグへの変数受け渡しでうまくいかず悩んでおります。

<mt:setVarBlock name="b_id"><$mt:Var name="mtappVars" key="blog_id"$></mt:setVarBlock>
				<mt:setVarBlock name="ct_id"><$mt:Var name="mtappVars" key="content_type_id"$></mt:setVarBlock>
				<mt:setVarBlock name="_id"><$mt:Var name="mtappVars" key="id"$></mt:setVarBlock>
				<mt:Contents blog_id="$b_id" content_type="$ct_id" id="$_id">
                    var siteurl = '<mt:ContentSiteURL><mt:SubCategoryPath>/<mt:ContentIdentifier>.html';
                    console.log(siteurl);
                </mt:Contents>

user.jsの中で、上記ソースを記載。

setVarBlockでmtappVarsの中身を取得するところまでは出来たのですが、mt:Contentsにその変数を渡すのが全くうまくできず悩んでおります。
mt:Contentsに各IDを数値で入れるとうまくいくので変数の受け渡しが原因と考えております。

他の変数受け渡し方法があるのでしょうか?
ご教授いただければ幸いです。

返信(9)

| 返信する
  • このuser.jsは、
    「モジュールテンプレート」にして設定の「bodyタグ直前」に読み込みにしていますでしょうか?

    自分の環境で試したところ、コンテンツタイプ詳細画面で出力ページURLが表示されました。

  • ご返信ありがとうございます。

    システム全体に適用する設定>自由テキストエリア>body の閉じタグの直前
    に直接記載しております。

    これが原因でしょうか?

  • 「body の閉じタグの直前」に直接記述してみました。
    こちらでも「siteurl」は正しく取得できました。

    ---------------------
    <script>
    (function($){

    <mt:SetVarBlock name="b_id"><$mt:Var name="mtappVars" key="blog_id"$></mt:SetVarBlock>
    <mt:SetVarBlock name="ct_id"><$mt:Var name="mtappVars" key="content_type_id"$></mt:SetVarBlock>
    <mt:SetVarBlock name="_id"><$mt:Var name="mtappVars" key="id"$></mt:SetVarBlock>

    //b_id:<mt:Var name="b_id">
    //ct_id:<mt:Var name="ct_id">
    //_id:<mt:Var name="_id">

    <mt:Contents blog_id="$b_id" content_type="$ct_id" id="$_id">
    var siteurl = '<$mt:ContentSiteURL$><$mt:SubCategoryPath$><$mt:ContentIdentifier$>.html';
    console.log(siteurl);
    </mt:Contents>

    })(jQuery);
    </script>
    ---------------------

  • (function($){
    })(jQuery);
    は別にいりませんでしたね。

  • ありがとうございます。

    Cannot build error template; got error 'テンプレート「error.tmpl」の再構築中にエラーが発生しました: タグでエラーがありました: タグでエラーがありました: テンプレート「layout/chromeless/header.tmpl」の再構築中にエラーが発生しました: タグでエラーがありました: タグでエラーがありました: タグでエラーがありました: mtContentsをコンテキスト外で利用しようとしています。サイトの外部で使っていませんか? '. Giving up. Original error was: テンプレート「cfg_plugin.tmpl」の再構築中にエラーが発生しました: タグでエラーがありました: タグでエラーがありました: テンプレート「layout/common/header.tmpl」の再構築中にエラーが発生しました: タグでエラーがありました: タグでエラーがありました: タグでエラーがありました: mtContentsをコンテキスト外で利用しようとしています。サイトの外部で使っていませんか?

    頂いたコードを入力したところ上記エラーが出てしまいます。

    前述のコードでもこのようなエラーが出てしまいます。
    何かの設定を忘れているのでしょうか?

  • そうですね。
    使用する場所を固定しないと全ページに適用されてしまうので限定してください。
    ---------------------
    if(mtappVars.screen_id == 'edit-content-type-data'){

    ~コンテンツタイプの入力画面のみ~

    };
    ---------------------

  • 申し訳ございません。
    ご指摘の通り、前述のコード含め、コンテンツタイプのみ効くように設定を行っています。

    また、頂いたコードをご指摘のifで囲っても同じエラーが出てしまいました。

  • おそらく、システムのプラグイン設定に記述しているのでそのエラーが出るのかもしれません。

    各サイトのプラグインの設定に記述するか、
    以下のように「システム」では回避するようにすればエラーにならないと思います。

    ---------------------
    <mt:If tag="siteID">
    <script>
    if(mtappVars.screen_id == 'edit-content-type-data'){
    <mt:SetVarBlock name="b_id"><$mt:Var name="mtappVars" key="blog_id"$></mt:SetVarBlock>
    <mt:SetVarBlock name="ct_id"><$mt:Var name="mtappVars" key="content_type_id"$></mt:SetVarBlock>
    <mt:SetVarBlock name="_id"><$mt:Var name="mtappVars" key="id"$></mt:SetVarBlock>

    //b_id:<mt:Var name="b_id">
    //ct_id:<mt:Var name="ct_id">
    //_id:<mt:Var name="_id">

    <mt:Contents blog_id="$b_id" content_type="$ct_id" id="$_id">
    var siteurl = '<$mt:ContentSiteURL$><$mt:SubCategoryPath$><$mt:ContentIdentifier$>.html';
    console.log(siteurl);
    </mt:Contents>
    }
    </script>
    </mt:If>
    ---------------------

  • ありがとうございます!!!
    システムでのエラーに気づけませんでした。
    コンテンツタイプでも取得したIDで表示が出来ました。

    ご返信頂き感謝します!

返信する


カテゴリグループ

106 23

最新のトピック: test (2019年5月29日 sato)

フォーラムカテゴリー

22 76

最新のトピック: ボンズカジノ入金不要 (2022年9月21日 Somight)

303 888

最新のトピック: mtappVarsの中の数字の変数を取得したい (2023年3月27日 inoue)

177 505

最新のトピック: Category (2022年1月16日 Mark)

419 1135

最新のトピック: htmlのパーミッションが666であることについて (2023年3月 9日 css)

OpenID対応しています OpenIDについて