baserCMSのヘルパーを覗く旅:TextExヘルパー

baserCMSに、セキュリティ上の脆弱性があることが発表されました。
ご利用中の方はアップデートされましたか?
BaserCMSにXSSなど複数の脆弱性、アップデートを呼びかけ(JVN)|ScanNetSecurity
JVN09789751 / JVN16617002 に対応するバージョン別改善ファイル一覧|改善ファイル|baserCMS - 国産オープンソース!コーポレートサイトにちょうどいいCMS

作業自体はそれ程大掛かりな手間が掛かるワケじゃないので、情報に気付いた方は早目のアップデートを行いましょう!(`・ω・´)

・・・というワケで、今回は「baserCMSの秘めたる力を探る旅:第1弾 (仮題)」。
「TextExヘルパーを覗いてみよう!」です。

そもそもTextExヘルパーとは?

通常のデータをテキスト(Text)表示する方法を、拡張(Extend)したものです。
extension なのか extend なのか expand なのか expansion なのかはこの際、そっと隣の席に置いておく事にします。
とにかく、純正のCakePHPの Textヘルパーを更に拡張し、表示(ビュー)側の処理の利便性を高くしたヘルパーです。です。

■BASERCMS/app/views/helpers/text_ex.php

最初っから事細かに1つずつ見て行くのはアレなので、ここでは幾つかを紹介してみます。

arrayValue($key, $array, $noValue = '')

配列とキーを指定すると、その値を取ってくれる関数です。
使い方はこんな感じ。
arrayValue('取りたいキー', 配列を指定, '値がない時の表示')
例えばこんな風に使えます。

<?php echo $textEx->arrayValue('version', $baser->siteConfig); ?>
この関数を使う良いところ

仮に指定したキーが定義されていない場合でも、エラー表示が出ないです。
値がない場合の表示を指定出来る点。
if文での存在チェックが不要になる点。

echo $baser->siteConfig['version'];

echo $baser->siteConfig['hoge'];
echo $textEx->arrayValue('hoge', $baser->siteConfig, '値がないよ');

noValue($value, $noValue)

指定した値に対してチェックを掛けて、存在する時はその値を、無い時は指定の表示が出来る関数です。
使い方はこんな感じ。
noValue($baser->siteConfig['hoge'], '値がない時の表示')
例えばこんな風に使えます。

echo $textEx->noValue($textEx->arrayValue('hoge', $baser->siteConfig), '無し');
echo $textEx->noValue($textEx->arrayValue('version', $baser->siteConfig), '不明');
この関数を使う良いところ

値がない場合の表示を指定出来る点。
if文での存在チェックが不要になる点。

ちょっち変えてみたところ

この関数は、第2引数の指定が必ず必要な関数なので、その点を省略出来るようにして使っても良いですね。

function noValue($value, $noValue)
  ↓↓↓
function noValue($value, $noValue = '')

prefList($empty = '都道府県')

都道府県のリストを出力します。
例えばこんな風にするだけで、都道府県選択リストを作る事が出来ます。

<?php echo $formEx->input('Model.key', array('type' => 'select', 'options' => $textEx->preflist())); ?>
この関数を使う良いところ

都道府県リストはtextExヘルパー内で定義されているので、並び替えも自在。
使いたい県名だけのリストに変更する事も可能です。

zipFormat($value)

郵便番号にハイフンとマークを付けて出力してくれます。
例えばこんな風にするだけで、郵便番号表記が簡単に出来上がります。

<?php echo echo $textEx->zipFormat(8100001); ?>
この関数を使う良いところ

数字を簡単に郵便番号付きで表現出来る点。

ちょっち変えてみたところ

あとがき

ここで紹介したのは幾つかなのですが、他にも便利関数がたくさん揃ってます。
ビュー(ctp のテンプレート)側を調整する際には、ヘルパーを有効に使ってラクしたいですね!

▲ to Top

トラックバック(0)

▲ to Top