お世話になっております。
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を数値で入れるとうまくいくので変数の受け渡しが原因と考えております。
他の変数受け渡し方法があるのでしょうか?
ご教授いただければ幸いです。
この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で表示が出来ました。
ご返信頂き感謝します!