Kenichi Ando
neo.k****@gmail*****
2009年 3月 9日 (月) 21:34:59 JST
安藤です。
ティーブレイク小話。
OpenPNEには日本語での有用なSmartyのプラグインがありますね。
その資産をCIで活用しない手は無いですね。
(EC CUBEなんかにも日本向けの有用な汎用関数がありました)
OpenPNE/lib/smarty_pluginsか
OpenPNE/webapp/lib/smarty_plugins
遅いSmartyを使うことなく、ヘルパーで同じことができます。
例えば、t_truncate。
これは、文字列に対して、何文字以上になったら「...(指定可)」と省略表示するものです。
trancate_hepler.phpとファイルを作り、system/application/helpersに入れます。
そのまま使うか、自分好みの書き方に変えましょうね。
(例ではそのままコピペしています)
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
if ( ! function_exists('trucate'))
{
function truncate($string, $length = 80, $etc = '...', $break_words = true)
{
if ($length == 0)
return '';
$from = array('&', '<', '>', '"', ''');
$to = array('&', '<', '>', '"', "'");
$string = str_replace($from, $to, $string);
if (strlen($string) > $length) {
$length -= strlen($etc);
if (!$break_words)
$string = preg_replace('/\s+?(\S+)?$/', '', substr($string, 0, $length+1));
$string = mb_strimwidth($string, 0, $length) . $etc;
}
return htmlspecialchars($string, ENT_QUOTES, 'UTF-8');
}
}
/* End of file date_helper.php */
/* Location: ./system/helpers/date_helper.php */
使い方:
$this->load->helper(array('truncate');
でロードします。
truncate('文字列', '100')
などですぐに使えます。
ヘルパーは関数で書けますので、やったことない方はチャレンジしましょう!
//安藤