user icon

baserCMS 2系で追加されたテーマヘルパーが便利(だけど要注意)

本日の「忘れないうちに書いとくぜ!baserCMSネタ」のお時間がやってまいりました。

baserCMS 2系でテーマヘルパーが追加されました。
http://basercms.net/functions/theme_helper

弊社サイトはlancardというテーマを作ってその下で構築しています。

現在、その中で、これから追加や編集をしていく予定があり、書き方が複雑だけど規則性がある、「ホームページのピックアップ(上部の画像切替)」と「ウィジェットのバナー表示」についてテーマヘルパーを利用して更新コストを下げています。

参考に、バナー表示用のヘルパーのコードを抽出して貼ります(ピックアップについては複雑なので)。
app/webroot/themed/lancard/helpers/lancard.php

BcBaser->getUrl('/themed/lancard/img/bunner/'.$imgFile, true)
.')';
$this->BcBaser->link(
$title,
$url,
$linkAttributes
);
}
}
?>

使用方法はこんな感じ。

bunner('OSSダウンサイジング', 'downsizing.jpg', '/it-model') ?>

と書くと

OSSダウンサイジング

と出力されます。便利です。

しかし、このテーマヘルパー、注意して扱わないと大変ヒドイ目にあいます。

テーマヘルパー用のディレクトリに「正しいテーマヘルパー以外のファイル」を置くとサイトのルーティングが全滅します。管理ページもアクセス不能! 初めてこの現象に遭遇したときは超ビビリました。

ヘルパーを読み込もうとしてエラーが発生するわけですが、その影響範囲が想定の範囲外!

私がやってしまったパターン

  • テーマヘルパー開発中に動作確認しようとしたらサイトが全滅してた。
  • テーマヘルパーを更新するときに旧ファイルをlancard.php_oldとリネームしたら全滅。

 
いかがでしょうか。恐ろしいですね。

しかしこの副作用、次のチケットでかなり解決しそうですので一時的な問題だと思います。
TODO #2604 「テーマヘルパの読み込みはテーマ名のヘルパのみにする」

そうそう、ヘルパー名は上記チケットの内容にしたがってつけておきましょうね。

Facebooktwitterlinkedintumblrmail

タグ: ,

名前
E-mail
URL
コメント

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)