User:
Pass:
Keep:   
Xoops Cube Project
XOOPS Cube Project Site
Powered by Google


Powered by XOOPS Cube Legacy 2.1.8
PukiWikiMod 1.5.1
WordPress Module 0.6.0 Alpha
Wordpressカレンダーで曜日ヘッダ文字化け? 投稿者: viva 投稿日:2005/03/23(Wed) 08:17 No.1331  
はじめまして。vivaといいます。

最近xoopsに興味を持ち始め、ローカルマシンに入れて
お勉強がてら遊んでます。
※OS
  =WindowsXP(Pro)
※自分で勝手にインストール
  =Apache2.0.53
   +PHP4.3.10
   +MySQL3.23.42
   +Xoops2.0.9.2(-ja-euc)
   +WordpressME Xoops Module 0.3.3



モジュールを色々インストールしていたところ、
Wordpressカレンダーで曜日タイトルが文字化けするんです。

もう少し具体的にいうと、曜日タイトルが
===vivaこっから==========================================
<th abbr='日曜日' scope='col' title='日曜日'>銅/th>
<th abbr='月曜日' scope='col' title='月曜日'>啓/th>
<th abbr='火曜日' scope='col' title='火曜日'>下/th>
<th abbr='水曜日' scope='col' title='水曜日'>深/th>
<th abbr='木曜日' scope='col' title='木曜日'>娘/th>
<th abbr='金曜日' scope='col' title='金曜日'>脅/th>
<th abbr='土曜日' scope='col' title='土曜日'>甜/th>
===vivaここまで==========================================
となっています。



ソースを見てみたら、wordpress/wp-includes/template-functions-general.phpの
get_calendar関数(?)内で
===vivaこっから==========================================
foreach ($weekday as $wd) {
if (function_exists('mb_substr')) {
echo "\n\t\t<th abbr='$wd' scope='col' title='$wd'>" . mb_substr($wd, 0, $daylength,$blog_charset) . '</th>';
} else {
echo "\n\t\t<th abbr='$wd' scope='col' title='$wd'>" . substr($wd, 0, $daylength) . '</th>';
}
}
===vivaここまで==========================================
の部分があったので、これを、自己責任で、お好きに、勝手に、
===vivaこっから==========================================
foreach ($weekday as $wd) {
if (function_exists('mb_substr')) {
echo "\n\t\t<th abbr='$wd' scope='col' title='$wd'>" . mb_substr($wd, 0, $daylength,$blog_charset) . '</th>';
} else {
$daylength = 2;
echo "\n\t\t<th abbr='$wd' scope='col' title='$wd'>" . substr($wd, 0, $daylength) . '</th>';
}
}
===vivaここまで==========================================
と、無理矢理$daylengthを2にするよう修正することで、
===vivaこっから==========================================
<th abbr='日曜日' scope='col' title='日曜日'>日</th>
<th abbr='月曜日' scope='col' title='月曜日'>月</th>
<th abbr='火曜日' scope='col' title='火曜日'>火</th>
<th abbr='水曜日' scope='col' title='水曜日'>水</th>
<th abbr='木曜日' scope='col' title='木曜日'>木</th>
<th abbr='金曜日' scope='col' title='金曜日'>金</th>
<th abbr='土曜日' scope='col' title='土曜日'>土</th>
===vivaここまで==========================================
となるところまで確認できました。



・・・ここで、初心者質問をさせてください。(^^;
===本題質問:こっから==========================================
(1)私の環境でfunction_exists('mb_substr')がfalseを返しているのが
   本件の直接の原因と推測されるんですが、falseが返ってきた原因として
   どういうことが考えられるのでしょうか?
   (※何か、私、設定シクってるんでしょうか?・・・・汗)

(2)$daylengthを動的に(?)変更できるような設定って、
   どっかのオプションで設定できるんですか?
   (※smarty_get_calendaerだったか何かで既に$daylength=1って・・。
     かつwordpress/wp-includes/template-functions-general.phpの
     get_calendar($daylength=1)って・・。
     で、同関数内でその値をそのまま使ってる・・。
     grepしてもそれ以外に見つからない・・・?)


関係ありませんが、私にとっての重要度は
 ◇上記質問(1)=「超重要!」
 ◇上記質問(2)=「ま、いっか・・」
です。(^^;
===本題質問:ここまで==========================================


ご多忙のところ恐れ入りますが、ご回答のほど、
どうか宜しくお願いします。


Re: Wordpressカレンダーで曜日ヘッダ文字化け? 投稿者: のぶのぶ 投稿日:2005/03/23(Wed) 22:56 No.1333  

引用:

(1)私の環境でfunction_exists('mb_substr')がfalseを返しているのが
   本件の直接の原因と推測されるんですが、falseが返ってきた原因として
   どういうことが考えられるのでしょうか?
   (※何か、私、設定シクってるんでしょうか?・・・・汗)

phpにmbstringエクステンションがロードされていないのでは無いでしょうか?
phpinfo();
で確認願います。
Windows環境の場合には、元々のc:\windows\php.ini内の

;extension=php_mbstring.dll


extension=php_mbstring.dll

というようにコメントをはずす必要があります。
引用:

(2)$daylengthを動的に(?)変更できるような設定って、
   どっかのオプションで設定できるんですか?
   (※smarty_get_calendaerだったか何かで既に$daylength=1って・・。
     かつwordpress/wp-includes/template-functions-general.phpの
     get_calendar($daylength=1)って・・。
     で、同関数内でその値をそのまま使ってる・・。
     grepしてもそれ以外に見つからない・・・?)

これに関しては、元々は言語依存(日本語なら1文字、英語なら2文字)なので、
language/japanes/main.php内に、

define("_WP_CAL_SWEEK_LEN", 1);

と定義してあるのを参照するようにしています。
が・・・この様な不具合やカレンダーを英語表示したい方々のために、
themes/xxxxx/wp-config-custom.php内にて

$GLOBALS['s_weekday_length'] = 3; //曜日を省略形で表示するときの文字数 "Sunday"は"Sun"になる。"日曜日"を"日"にする場合は1を指定。

を変更してコメントアウトをはずしてやれば、良いようにしてあります。
コメントが前後の10行くらいにまとめてかかっているので。
この行だけをコピーして、コメントの外に出してやるのが確実だと思います。

お試しあれ!


Re[2]: Wordpressカレンダーで曜日ヘッダ文字化け? 投稿者: viva 投稿日:2005/03/24(Thu) 15:07 No.1336  

のぶのぶさん、ありがとうございますっ!
で、で、で、出来ました〜\(ToT)/



引用:

のぶのぶさんは書きました:
引用:

(1)私の環境でfunction_exists('mb_substr')がfalseを返しているのが
   本件の直接の原因と推測されるんですが、falseが返ってきた原因として
   どういうことが考えられるのでしょうか?
   (※何か、私、設定シクってるんでしょうか?・・・・汗)

phpにmbstringエクステンションがロードされていないのでは無いでしょうか?
phpinfo();
で確認願います。
Windows環境の場合には、元々のc:\windows\php.ini内の

;extension=php_mbstring.dll


extension=php_mbstring.dll

というようにコメントをはずす必要があります。
引用:

(2)$daylengthを動的に(?)変更できるような設定って、
   どっかのオプションで設定できるんですか?
   (※smarty_get_calendaerだったか何かで既に$daylength=1って・・。
     かつwordpress/wp-includes/template-functions-general.phpの
     get_calendar($daylength=1)って・・。
     で、同関数内でその値をそのまま使ってる・・。
     grepしてもそれ以外に見つからない・・・?)

これに関しては、元々は言語依存(日本語なら1文字、英語なら2文字)なので、
language/japanes/main.php内に、

define("_WP_CAL_SWEEK_LEN", 1);

と定義してあるのを参照するようにしています。
が・・・この様な不具合やカレンダーを英語表示したい方々のために、
themes/xxxxx/wp-config-custom.php内にて

$GLOBALS['s_weekday_length'] = 3; //曜日を省略形で表示するときの文字数 "Sunday"は"Sun"になる。"日曜日"を"日"にする場合は1を指定。

を変更してコメントアウトをはずしてやれば、良いようにしてあります。
コメントが前後の10行くらいにまとめてかかっているので。
この行だけをコピーして、コメントの外に出してやるのが確実だと思います。

お試しあれ!


NO: PASS:

このプログラムは KENT 氏の yybbs を xoops(PHP) に移植したものです
- KENT -