[Tep-j-develop] oscommerce.org の拡張モジュールの文書

Back to archive index

Masahiko Nagata nagat****@ideas*****
2002年 10月 16日 (水) 01:59:40 JST


鈴川さん、こんばんは。
永田です。

osCommerce日本語版の純正(?)ファイルの話題では無いのに、おつき合い頂いて申
し訳ありません...

on 2002.10.15 21:56, Naomi Suzukawa at suzuk****@bitsc***** wrote:
> 永田さんが確認された不具合ですが、こちらでは同じ現象は発生していません。
> 因みに、Description_in_Product_Listing_v.2 の、全てのファイルについて、
> 日本語版のファイルへ差分を追加・修正しています。

鈴川さんとは、アプローチが全く逆でした。
Description_in_Product_Listing_v.2のファイルへ、日本語版の修正部分を追加・修
正してました。

日本語版ファイルへ、Description_in_Product_Listing_v.2で「Products
Description Hack begins〜end」となっている部分を追加・修正したところ、商品リ
スト表示で商品説明部分が表示されないと言う状態だった為、勝手な解釈の元、逆ア
プローチを取った為に発生していたエラーでした。

上記助言を頂いて、もう一度、日本語版ファイルへDescription_in_Product_Listing
_v.2の「Products Description Hack begins〜end」の部分を追加・修正し直しまし
たところ、やはり商品リスト表示での商品説明部分が表示されないと言う状態だった
のですが、ソースをもう一度眺めたところ、product_listing.phpの冒頭部分の

  // create column list
  $define_list = array(
    'PRODUCT_LIST_MODEL' => PRODUCT_LIST_MODEL,
    'PRODUCT_LIST_NAME' => PRODUCT_LIST_NAME,
    'PRODUCT_LIST_MANUFACTURER' => PRODUCT_LIST_MANUFACTURER,
  <以下省略>

となっている部分に

  // create column list
  $define_list = array(
    'PRODUCT_LIST_MODEL' => PRODUCT_LIST_MODEL,
    'PRODUCT_LIST_NAME' => PRODUCT_LIST_NAME,
    'PRODUCT_LIST_DESCRIPTION' => PRODUCT_LIST_DESCRIPTION, <== 追加
    'PRODUCT_LIST_MANUFACTURER' => PRODUCT_LIST_MANUFACTURER,
  <以下省略>

とすれば良いことに気づき、無事解決しました。

で、general.phpに加える「Products Description Hack begins〜end」の部分なので
すが、そのままでは表示させる文字数のカウントがおかしい様ですので、下記の様に
修正しました。

# 全然自信ありませんが....(^^;)

////
// Products Description Hack begins
//  
// grabs a length from a string, but goes back to the last space if it cut
into
// the middle of a string.  If the string is longer than that, cut, then add
'...'
// to the end of the string, if the $more == 1
      function osc_trunc_string($str="",$len=150,$more=1)
      {
            if ($str=="") return $str;
            if (is_array($str)) return $str;
            $str = trim($str);
            // if it's les than the size given, then return it
            if (mb_strlen($str) <= $len) return $str;
            // else get that size of text
            $str = mb_substr($str,0,$len);
            // backtrack to the end of a word
            if ($str != "") {
                  // check to see if there are any spaces left
                  if (!substr_count($str," ")) {
                        if ($more) $str .= "...";
                        return $str;
                   }
                  // backtrack
                  while(mb_strlen($str) && ($str[mb_strlen($str)-1] != " "))
{
                        $str = mb_substr($str,0,-1);
                   }
                  $str = mb_substr($str,0,-1);
                  if ($more) $str .= "...";
            }
            return $str;
      }
// Products Description Hack ends

こうすると表示文字数が正しく(?)カウントされる様です。

上記ご報告方々お礼申し上げます。
ありがとうございました。




Tep-j-develop メーリングリストの案内
Back to archive index