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') などですぐに使えます。 ヘルパーは関数で書けますので、やったことない方はチャレンジしましょう! //安藤