2010年4月30日金曜日

jQueryライブラリの読み込ませる順番でミスした。

header.phpの中で、べた書きでjsをインクルードさせたら、
アクティブになってくれず、しばし悩みました。。

おかしいと思ったら、

<?php Loader::element('header_required'); ?>
の前に記述していたのが原因でした。

というのも、jQueryの本体を読み込む前に、ライブラリを読み込ませていた、と。
大ボケ。

<?php Loader::element('header_required'); ?>
の後に記述し直したら、無事jsが機能してくれました。

良かった。

jsファイルのインクルード

concrete5で、jsファイルをインクルードするには、
トップディレクトリ配下の「js」ディレクトリ内にjsファイルをアップロードし、
該当ページで、「設定」⇒「カスタム属性」⇒「追加ヘッダー要素」欄に、以下のように普通にscriptタグでインクルードさせたらOKでした。

<script type="text/javascript"  src="/js/fontsize.js"></script>
<script type="text/javascript"  src="/js/cookie.js"></script>
(補足:パスの"/js/cookie.js"などの最初の"/"を抜かしてこれまで書いていました。もし参考にして,インクルードがうまくいかなかった方がおられればすみません!)

テンプレート全体でインクルードするなら、
<?php echo $this->getThemePath().'/js/fontsize.js'; ?>
といったように、テーマのheader.phpでインクルードするのが良いかな、と。
(ファイルやディレクトリ名の前に/が必要です。忘れたら、エラーが出て焦りました。。)

もっといい方法があるかな。。

imgをテンプレート内から参照する方法メモ

<img src="<?php echo $this->getThemePath().'/images/image.gif'; ?>" />
といったように囲むと吉。

$this->getThemePath().がミソですね。

これ、スタイルシートのインクルードにも使えます。
要するに、テーマのパスを取得して返してくれる、という便利なおまじないです。