Nucleus(JP)フォーラム

NucleusCMS日本語版ユーザーのためのサポートフォーラムです。疑問が生じたらまずは記事検索をご利用ください。

ログインしていません。

#1 2005-12-07 23:35:42

KOO
メンバー
From: Tokyo
登録日: 2005-03-23
投稿: 9
ウェブサイト

Re: 公式Skin「plain01」について

公式サイトのSkin「plain01」が気に入りDLしディレクトリに入れ、読み込みを行いましたがスキンを適用しても真っ白になるだけで表示されません。
どこか注意する点はありますでしょうか?

オフライン

#2 2005-12-08 14:54:00

On3
メンバー
From: 横浜
登録日: 2004-11-30
投稿: 40
ウェブサイト

Re: 公式Skin「plain01」について

解凍後そのままUPするとスキン・ディレクトリー(フォルダー)の名前は"plain10_skin"ですよね、
これを"plain01"にリネームしてみたらどうでしょう。

オフライン

#3 2005-12-09 14:47:04

KOO
メンバー
From: Tokyo
登録日: 2005-03-23
投稿: 9
ウェブサイト

Re: 公式Skin「plain01」について

リネームはしていますが、選択しても白紙状態です。

Skin名は間違えて投稿していました。
正しくは「plain10」でした。

オフライン

#4 2005-12-09 16:46:55

Andy
メンバー
登録日: 2004-03-18
投稿: 1,495
ウェブサイト

Re: 公式Skin「plain01」について

このスキン,plain10と書いてありますが,plain01が正しいんです。
ですからディレクトリ名はplain01にしてください。

オフライン

#5 2006-01-26 15:15:30

enakalle
メンバー
From: Tokyo
登録日: 2006-01-25
投稿: 13

Re: 公式Skin「plain01」について

某ブログサービスからレンタルサーバーで自前ブログへ移行しようとしているものです。
Nucleusを始めてまだ3日目です。最終的には自分でページデザインをしたいのですが、
まだNucleusはほとんど理解していない状態です。まず、

・Windows XP
・Apache 2.0.55
・MySQL 5.0.18
・PHP 5.1.2
文字コード設定:utf-8

という環境を準備しまして、動作確認後、

・Nucleus 3.21日本語版(nucleus3.21_ja_utf8.zip)
+ 20050816-nucleus_ja_xmlrpcs-patch.zip

をインストールしました。デフォルトで記事の書き込み等が問題なくできましたので、うまく
インストールできたものと思われます。

この状態でスキンを変えてみようと、公式サイトのSkin「plain01」をダウンロードし、この
トピックのディレクトリ名をplain01にするという情報でインストールはうまくいったかに
思えましたが、画面をよく見ると月別アーカイブへのリンクのところが

<A title="Archive for 1??, 2006"
  href="http://localhost/nucleus/index.php?blogid=1&archive=2006-01">1??,
  2006</A>

というように文字化けしています。このソースはアーカイブ一覧のテンプレートの

<a href="<%archivelink%>" title="Archive for %B, %Y">%B, %Y</a>

から生成されていることはわかりましたが、この%Bに代入されるコードがどこからくるのか
がよくわかりません。試しにテンプレート編集でlocaleをen → ja_JPにしても同じ状態です。

何かアドバイスいただければ幸いです。

オフライン

#6 2006-01-26 18:16:03

yu
メンバー
From: 神奈川
登録日: 2003-11-15
投稿: 718
ウェブサイト

Re: 公式Skin「plain01」について

たしか昔同様の問題にひろさんが遭遇してたのを読んだ気がします。
(解決したのかどうかはわかりませんが)

追記:
これはNucleusのヘルプを読めばわかりますが(help.html#strftime)

%B - 現在のロケールに基づく完全な月の名前

です。
1月、とかの値を「月」込みで返すわけですね。
ロケールに基づかない指定、たとえば%mなら、単純に問題を避けることは出来るとは思います。

さらに追記:
テンプレ、ja_JP.UTF-8 のように、文字コードまで指定したらどうでしょう?


Nucleusだとか
http://nucleus.datoka.jp/

オフライン

#7 2006-01-26 18:46:55

alzenma
メンバー
From: Tokyo
登録日: 2005-06-27
投稿: 27
ウェブサイト

Re: 公式Skin「plain01」について

うーん。

問題の文字化け個所が、
「◆◆」または「??」となってる場合 → サイト全体は当然EUC-JPかUTF-8で運営してるはず

ってのが現状だと思います。

じゃこの文字化けは何で表示されているのかっていうと、「Shift-JIS」なわけです。ここだけ。
つまりyuさんがおっしゃるようにロケールに基づく完全な名前(例えば「1月」とか)の「月」は、出力はされているのです。

出力されているのに、ここだけなぜか文字コードをShift-JISから譲りません。あるいはISOやアスキー系かもしれませんが。とにかく言うことをきかないんすよね。
応急処置対応するなら、yuさんのおっしゃった%mの他に%bでもいいかもです。

スクリプトの流れとしては、/nucleus/libs/SKIN.phpにある、parse_archivedate関数で処理してあとはテンプレートへ引き渡してるようですので、この間にencodingがかかってないとか?
encoding群は/nucleus/libs/mb_emulator/mb-emulator.phpあたりでやってると予測。


今確かめられる環境なくて憶測になっちゃってますけど・・・。

#間違ってたらごめんなさい

オフライン

#8 2006-01-26 19:39:04

enakalle
メンバー
From: Tokyo
登録日: 2006-01-25
投稿: 13

Re: 公式Skin「plain01」について

yuさん、alzenmaさん、ありがとうございます。

まず、テンプレート編集でのロケール変更en → ja-JP,UTF-8ですが、テンプレ編集画面で行う
ロケール変更はその項目にしか適用されなくて、文字化けしている項目のロケール変更はできない
ようです。ロケール変更した部分の表示が変わることは確認しました。

それで次善策として%mに変えてみたのですが、確かにその部分はうまく表示できるようになりま
したが、テンプレートでは指定できない部分:アーカイブ一覧--->月選択で出てくる画面に

<DIV class=message-box>This is the archive for 1?? 2006</DIV>

という箇所があり、やはり文字化けしてしまいます。

alzenmaさんの情報を元にもう少し調べてみようと思います。

オフライン

#9 2006-01-27 18:12:48

enakalle
メンバー
From: Tokyo
登録日: 2006-01-25
投稿: 13

Re: 公式Skin「plain01」について

いろいろ調べたり実験したりしてわかってきたのですが、この現象はWindows特有の現象の
ようです。現在、当方ではWindowsXP上に実験的に環境を作って作業しています。

WindowsXPではロケールとして、
  ・SJIS → Japanese_Japan.932
  ・EUC → Japanese_Japan.20932
という2種類に対応できていて、問題になっている文字化けの発生源はSKIN.phpの
parse_archivedate関数内のstrftimeだと思われますが、これがデフォルトのSJIS
のロケールで文字列を生成してしまうためと思われます。

どうやらWindowsにはja_JP,UTF-8に対応するロケールが無いようなので、
parse_archivedate関数をWindows用に書き換えるしかないように思われますが、
いかがでしょうか?

オフライン

#10 2006-01-27 18:23:09

cha_cya
メンバー
From: 東京
登録日: 2004-08-25
投稿: 745

Re: 公式Skin「plain01」について

こちらの記事が参考になると思います。
<!-- l --><a class="postlink-local" href="http://japan.nucleuscms.org/bb/viewtopic.php?t=1153">viewtopic.php?t=1153</a><!-- l -->

私の環境では上記の対応で解決できたので、Windows用の書き換えはしていません。

オフライン

#11 2006-01-27 19:02:48

enakalle
メンバー
From: Tokyo
登録日: 2006-01-25
投稿: 13

Re: 公式Skin「plain01」について

cha_cyaさん、ありがとうございました。

まったく同じことで長時間悩んでいましたが、いろいろ勉強になりました。
どうやらこれはFAQのようですね。 wink

スキンによってはテンプレートからではなくarchivedateを直接表示しているものもあるので、
やはりparse_archivedate関数を次のように書き換えることにしました。

} elseif ($d == 0) {
    //$format = '%B %Y';   
    $format = '%Y-%m';   
} else {
    //$format = '%d %B %Y';   
    $format = '%Y-%m-%d';   
}
   
echo strftime($format,mktime(0,0,0,$m,$d?$d:1,$y));

オフライン

#12 2006-01-27 19:17:42

cha_cya
メンバー
From: 東京
登録日: 2004-08-25
投稿: 745

Re: 公式Skin「plain01」について

FAQではありませんが自分でも忘れそうなのでNucleusFAQ(仮)に登録しておきました。
http://nucleus.mz-style.com/faq/skin/ca ... m/143.html

NFAQに登録したの何ヶ月ぶりだか・・
サボっててごめんなさい :oops:

オフライン

Board footer