最近の投稿

Written on 12/02/2012, 23:46 by toemon
mavik-thumbnails-の日本語パックこのサイトでも利用させてもらっているmavik Thumbnails プラグインの日本語パッケージなんぞを作成...
Written on 29/01/2012, 19:58 by toemon
dj-catalog2-japanese-language製品紹介用のエクテンションとして、DJ-Catalog2っちゅうコンポーネントを試してみやした。 ...
Written on 26/01/2012, 19:53 by toemon
k2-ver-2-5-4の日本語ファイルK2 Ver2.5.4 の日本語ファイルをダウンロードしてみたけれど、まだ未翻訳(2012/01/26現在)み...
Written on 13/01/2012, 10:14 by toemon
aidanews2-japanese-languageAiDaNews2の日本語言語パックなんぞを、作ってみやした。 まだ、使いこなしてないんで、かなり、怪しげな...
Written on 12/01/2012, 15:39 by toemon
phoca-gallery-ver3-1-2-japanese-language-packPhoca Gallery Ver3.1.2用の日本語言語パッケージを作成してみました。 ダウンロードはこち...
この記事の評価:  / 0
低い高い 

最近の投稿を画像サムネイル付きにしてみたかったんで、AiDaNews2っちゅうextentionを試してみました。

しかーし、 たまぁに、タイトルや、本文の抜粋が出来ずに空白になることがあるみたいでんな。下の絵では「AiDaNewsを試してみる」の記事本文の抜粋が表示されてませんやろ。

そんなんになりますねん。

最初は、よーわかりまへんでしたけど、よーくよくコードを眺めてましたら、ありましたが・・・大穴が

AiDaNews2の抜粋時のコードは、

mod_aidanews2_17_2.0.8/helper.php

View source
  1.     function shorten($txt, $cut, $type, $end){
  2.         if ($cut > 0) {
  3.             if ($type){
  4.                 $cut += 5;
  5.                 if (function_exists('mb_substr')) {
  6.                     $txt = mb_substr($txt, 0, $cut, 'UTF-8');
  7.                     $txt = mb_substr($txt, 0, mb_strrpos($txt," "), 'UTF-8');
  8.                 }else{
  9.                     $txt = substr($txt, 0, $cut);
  10.                     $txt = substr($txt, 0, strrpos($txt," "));
  11.                 }
  12.                 $txt .= $end;
  13.             }else{
  14.                 $array = explode(" ", $txt);
  15.                 if (count($array)<= $cut) {
  16.                     //Do nothing
  17.                 }else{
  18.                     array_splice($array, $cut);
  19.                     $txt = implode(" ", $array) . $end;
  20.                 }
  21.             }
  22.         }
  23.         $txt = str_replace('"', '&quot;', $txt);
  24.         return $txt;
  25.     }
  26.  

とかなってて、一見キチンとマルチバイト処理が行われているように思ってましたが・・・

よーくみると、189と192行目が、かなり怪しく、要するに半角スペースが無いと・・・ありゃりゃでんな。

まあ、とりあえずは抜粋を切りたいところで半角スペースを入れるっちゅうことで対処ができるけど・・・

気に入らないんで該当部分を以下の様に変えちまうことに・・・。さらに半角スペースで切られるのが嫌っちゅうお方は190と195行目をコメントアウトするとよろし。

mod_aidanews2_17_2.0.8/helper.php Edit

View source
  1.     function shorten($txt, $cut, $type, $end){
  2.         if ($cut > 0) {
  3.             if ($type){
  4.                 $cut += 5;
  5.                 if (function_exists('mb_substr')) {
  6.                     $txt = mb_substr($txt, 0, $cut, 'UTF-8');
  7.                     if ($space_pos =  mb_strrpos($txt," ")){
  8.                         $txt = mb_substr($txt, 0, $space_pos, 'UTF-8');
  9.                     }
  10.                 }else{
  11.                     $txt = substr($txt, 0, $cut);
  12.                     if ($space_pos =  strrpos($txt," ")){
  13.                         $txt = substr($txt, 0, $space_pos);
  14.                     }
  15.                 }
  16.  
  17.                 $txt .= $end;
  18.             }else{
  19.                 $array = explode(" ", $txt);
  20.                 if (count($array)<= $cut) {
  21.                     //Do nothing
  22.                 }else{
  23.                     array_splice($array, $cut);
  24.                     $txt = implode(" ", $array) . $end;
  25.                 }
  26.             }
  27.         }
  28.         $txt = str_replace('"', '&quot;', $txt);
  29.         return $txt;
  30.     }
  31.  

おそるおそる、本家のフォーラムに報告をば、してみます。

注目記事