Nucleus(JP)フォーラム

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

ログインしていません。

#1 2006-01-13 12:04:08

Z10
メンバー
From: 神奈川
登録日: 2005-06-30
投稿: 228

Re: エラーページに設定したスキンが適用されない(結構必見?)

A、B二つのブログがあり、それぞれ別のスキンを設定しているのですが、通常のコンテンツ表示の際はきちんとそれぞれに設定されたスキンがてきようされるのですが、エラーページとなると、Bのブログ閲覧時に表示されるエラーページにAのブログに設定したスキンが適用されてしまいます。なぜなんでしょうか?
なお、エラーページに適用されるスキンはグローバル設定でのデフォルトスキンとも異なります。
グローバル設定でのaction.phpへのパスはNucleus本体にあるaction.phpへのものとなっています。

サイト構成
home/
____ /A_blog/:デフォルトブログ(設定スキン:A)
____ ____  index.php
____ /B_blog/(設定スキン:B)
____ ____  index.php
____ /cgi/Nucleus/
____ ____  action.php


Kilax.org
http://kilax.org
Kilax : Nucleus HTML5 w/Responsive Skin
http://kilax.org/blog/catid_2-itemid_3.html

オフライン

#2 2006-01-13 13:16:28

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

Re: エラーページに設定したスキンが適用されない(結構必見?)

確かエラーページのときってブログIDが渡されなかったような。
そうするとデフォルトブログのスキンで表示されてしまいますね。

オフライン

#3 2006-01-13 13:31:59

Z10
メンバー
From: 神奈川
登録日: 2005-06-30
投稿: 228

Re: エラーページに設定したスキンが適用されない(結構必見?)

あ、確かにそうでした、デフォルトブログに設定されたスキンでした。
ということは、複数ブログがあって、それぞれに独自のスキンを設定していても、エラーページだけはデフォルトブログに設定されたスキンが適用されてしまうということなのでしょうか?、つまり、エラーページは各スキンごとに設定しても無駄ってことでしょうか?
さらにいえば、Nucleusで複数のブログを一つのNucleusでつくろうとしている人は、デフォルトブログに設定するスキンは今後制作するであろうブログ、スキンに対応できるデザインでなくてはならないということ?。

このことは自分でプラグインを作ってて動作テスト中に気づいたのですが、フォームの入力判定の際に出すエラーページが別のブログで使われているスキンで表示されてしまうので困ってしまっています。私のプラグインソースが悪いのかと思たのですが、そうでもないようで、さてどうしたらいいのかなと。


Kilax.org
http://kilax.org
Kilax : Nucleus HTML5 w/Responsive Skin
http://kilax.org/blog/catid_2-itemid_3.html

オフライン

#4 2006-01-13 13:50:02

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

Re: エラーページに設定したスキンが適用されない(結構必見?)

考えてみたらそもそもACTIONに渡った時点でブログIDって自動的には引き継がれていません。
また,doErrorのソースをみたら,第2パラメータとしてスキンオブジェクトを受けるようになっていました。
ですから,自作のプラグインで対処するのであれば,ACTIONを呼ぶときにブログIDを渡すようにし,
doErrorを呼び出す際にブログIDから,そのブログのデフォルトスキンのオブジェクトを作って
渡せばいいと思います。

オフライン

#5 2006-01-13 14:38:32

Z10
メンバー
From: 神奈川
登録日: 2005-06-30
投稿: 228

Re: エラーページに設定したスキンが適用されない(結構必見?)

Andy さんの発言:

自作のプラグインで対処するのであれば,ACTIONを呼ぶときにブログIDを渡すようにし,

$blogid = getBlogIDFromItemID($itemid);
<input type='hidden' name='blogid' value='{$blogid}' />

とここまでやったところ、ブログB(ID=5/設定スキンB)閲覧時のエラーページは適用されてほしいBスキンで表示されるようになったのですが、スキン内の記載で閲覧中のブログのカテゴリーをメニュー表示させているのですが、そこにデフォルトブログ(ID=1/設定スキンA)のカテゴリーが表示されてしまいます。(つまりデフォルトブログのなかでエラー表示されている状態。)

Andy さんの発言:

doErrorを呼び出す際にブログIDから,そのブログのデフォルトスキンのオブジェクトを作って
渡せばいいと思います。

うぅ、これがわかりません、イメージはわくのですが、どうソース記載すればよいのか・・・。
doError(_FORMMAIL_ERROR_NONAMEINPUT);}


Kilax.org
http://kilax.org
Kilax : Nucleus HTML5 w/Responsive Skin
http://kilax.org/blog/catid_2-itemid_3.html

オフライン

#6 2006-01-13 14:41:45

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

Re: エラーページに設定したスキンが適用されない(結構必見?)

仮にブログIDが$blogidに入っているとすると

	$blog =& $manager->getBlog($blogid);
	$skin =& new SKIN($blog->getDefaultSkin());
	doError(_FORMMAIL_ERROR_NONAMEINPUT, $skin);

でいいんじゃないかと思います。

オフライン

#7 2006-01-13 15:01:08

Z10
メンバー
From: 神奈川
登録日: 2005-06-30
投稿: 228

Re: エラーページに設定したスキンが適用されない(結構必見?)

ありがとうございます。


Kilax.org
http://kilax.org
Kilax : Nucleus HTML5 w/Responsive Skin
http://kilax.org/blog/catid_2-itemid_3.html

オフライン

#8 2006-01-18 15:54:04

Z10
メンバー
From: 神奈川
登録日: 2005-06-30
投稿: 228

Re: エラーページに設定したスキンが適用されない(結構必見?)

あれからなんとかかんとか適用されるべきスキンでエラーページが表示される用ようにはなったのですが、エラーページでblogidがどうにもうまく取得できずにいます。でもまぁ問題なさそうです。


Kilax.org
http://kilax.org
Kilax : Nucleus HTML5 w/Responsive Skin
http://kilax.org/blog/catid_2-itemid_3.html

オフライン

Board footer