Re: ブロックにおける追加テンプレートでのDBアクセス
hissy 様
ご教授ありがとうございました。
キャッシュクリアにより無事SQLは動作しました。助かりました。
合わせてご質問です。
ちょっと別件でのご質問で申し訳ないのですが、本件のSQL処理において「ClloctionVersionBlockStyle」テーブルのカラム「bID」を取得し、現在有効なブロックにおいて設定されたcss_idの値を取得し、その値の内容により、JavaScriptを動作させているテンプレートとなっていました。
その他のSQL条件は、「CollectionVersions」テーブルのカラム「csIsApproved」が1(おそらく承認され現在有効なデータの条件だと思いますが・・・)としています。
Ver5.4.1.1.1の場合は、一度作ったブロックを何回更新・承認してもbIDが変化しなかったのが、Ver5.6.3.2の場合、承認ごとにbIDがカウントアップしていきました。
(尚、bIDはシステムで一意っぽいですね。他のブロックを追加したらさらに1つカウントアップしていましたので・・・)、
ブロックテンプレート用に作成したphpの中で「$contoroller->bID」にてブロックIDを取得していますが、このbIDは次に承認されるときに設定されるbIDとなっています。(未来のbID)
ただ、現在のDBに存在しているbIDは現在承認されているbIDなので、取得したbIDより-1小さい値です。【例:現在DBに登録されているbIDは150とした場合、「$contoroller->bID」にて取得できるbIDは151となっている】
その為、テンプレートを設定した段階では条件に設定されたbIDではDBに値が存在しない為取得できず、結果としてJsが動作しない状況となっていました。
ただ、承認後はSQLが実行されれば値が取得できるので、該当ページを開くたびに動作するSQLと構成するJsにてうまくいくかと思いきや、ページを開いてもJsは構成されず、SQLも動いていませんでした。
phpで記載したSQLやJsは更新時(管理画面での設定時)一回のみ動作して画面を構成する仕組みなのでしょうか?
画面を開く度に、毎時SQLが動作するわけではないのでしょうか?