【ECCUBE4カスタマイズ】誕生日から年齢を算出するtwigの関数を追加する

※この記事は上級者向きの記事です。
※この記事のカスタマイズはECCUBE4.0.2で実装確認したものです。
今回はEC-CUBE4で会員の誕生日を取得し、
レビューなどで年齢を表示するための関数を作成したお話です。
以下の通りに行えば超簡単です。
- 関数を追加するファイルの場所
- 設置する関数のサンプル
- twigでの関数の利用方法
変更するファイルの場所
EC-CUBE4の場合、以下のPHPファイルの中へ関数を設置します。
/src/Eccube/Twig/Extension/IntlExtension.php
設置する関数のサンプル
設置する関数は以下の通り。
どこでも構いませんが、私は関数定義の一番下に設置しました。
そのままコピペでOK!
PHP
/**
* 誕生日文字列( 例: 1983-12-19)から現在の年齢を返します
*
* @param string $date_name (例: '1983-12-19')
* @return int 現在の年齢
*/
public function getage( $date_name )
{
$birth = date('Ymd', strtotime($date_name));
$now = date("Ymd");
return floor(($now-$birth)/10000);
}
またL30あたりのgetFilters()という関数内のreturnに以下を追加します。
PHP
new TwigFilter('getage', array($this, 'getage')) ,
twigでの関数の利用方法
Customerのbirth(日付型)に対して処理を行いたい場合は、上記で定義した「getage」という関数を使って以下のようにして年齢を取得します。
{{ Customer.birth|date(“Y-m-d”)|getage }}才

twig関数を新しく定義することで
簡単に呼び出せて便利に利用することができます。
簡単に呼び出せて便利に利用することができます。
最後までお読みいただきありがとうございます。






