baserCMSのBcTextHelperを利用してみよう
ナカエです。
本日はbaserCMSの普段あまり使わないであろうHelperの紹介記事です。
BcBaserHelperやBcPageHelper、BlogHelperはテーマ内でもよく利用されていますし、公式の関数マニュアルに掲載されているので知名度も高いでしょう。baserCMSはこれらの主要なヘルパーに加えいろいろとHelperが用意されています。
bcTextHelperは基本的には管理画面や他のヘルパーの中で利用されています。縁の下の力持ちとでも言うべきヘルパーです。baserCMS独自の仕様も多く、フロント側では利用しにくいメソッドもあります。 その中からテーマ内でも使えそうなメソッドをいくつかピックアップしました。
参考:baserCMS API Document >> \BcTextHelper
age
日付より年齢を取得する
<?php echo $this->BcText->age('1999/7/26'); ?>
//出力: 15歳
<?php echo $this->BcText->age('2034/7/26'); ?>
//出力: -20歳
<?php echo $this->BcText->age(''); ?>
//出力: 不明
引数
- string $birthday 日付を表す文字列
- string $suffix 年齢の後に付与する文字列(指定しない場合は'歳')
- mixed $noValue 第一引数が空の場合の返り値(指定しない場合は'不明')
日付を表す文字列を引数として与えると、現時刻における年齢を返します。
moneyFormat
金額を整形して出力
<?php echo $this->BcText->moneyFormat(100000, '$'); ?>
//出力: $100,000
引数
- int $value
- string $prefix 金額の前に付与する文字列。通貨記号など。(指定しない場合は'\')
数値に3桁区切りでカンマが入り、先頭に通貨記号などの文字列が付与されます。
zipFormat
郵便番号にハイフンをつけて出力
<?php echo $this->BcText->zipFormat('6008825'); ?>
//出力: 〒 600-8825
引数
- string $value 郵便番号
- string $prefix 郵便番号の数字の前に付与する文字列(指定しない場合は'〒 ')
autoLinkEmails
メールのリンクを出力
<?php echo $this->BcText->autoLinkEmails('info@example.com', array('class' => 'email')); ?>
//出力: <a href="mailto:info@example.com" class="email">info@example.com</a>
引数
- string $text メールアドレス
- array $options オプション(HTMLの属性など)
BcTextHelperはCakePHPのTextHelperクラスを継承しているので、TextHelperに定義されているメソッドも使えます。 autoLinkEmailsはその一つです。ブラウザからメーラーを起動させる mailto:~の形のリンクを返します。
truncate
文字列を先頭から指定文字数だけ切り取って出力
<?php
$text = <<< EOT
bcTextHelperは基本的には管理画面の入力フォームや
他のヘルパーで利用されています。縁の下の力持ちとでも言うべきヘルパーです。
そのためbaserCMS独自の仕様が多く、フロント側では利用しにくい関数もあります。
EOT;
echo $this->BcText->truncate($text, 20, array('ellipsis' => '……'));
//出力:bcTextHelperは基本的には……
?>
※ヒアドキュメント構文を利用
引数
- string $text 切り取り対象の文字列
- int $length 切り取り文字数の指定
- array $options オプション
truncateもCakePHPのTextHelperから継承されています。指定した文字数以下におさまるように文字列を切り取ります。オプションで切り取った文字列の後に付与する記号も変更可能です。
注意事項
BcTextHelperのメソッドはbaserCMSの主要なヘルパーと異なり、メソッド名の頭にgetがつくものがありませんが、返り値に文字列を返す取得系関数になっています。 画面に表示させるためにはechoが必要です。
APIドキュメントいいよ APIドキュメント
関数マニュアルに載っていないヘルパーやメソッドがAPIドキュメントには掲載されています。 baserCMSの使用頻度の高いヘルパーに慣れたなら、是非一度目を通してみてはいかがでしょうか?