スペシャルスキンパーツの使い方バージョン 3.51 用
提案用のサイトを Nucleus CMS で作ってて、お客さんに見せるためにサーバーにあげる時に、Nucleus CMS のバージョンを最新の 3.51 にした。ローカルのやつをアップデートしてから、そのまんまいれちゃえば終わりとなるのだけど、スキンやテンプレートをぐちゃぐちゃ複製したり、使わないアイテムがあったりするので、サーバーに新規インストールして、スキン・テンプレートは書き出ししたものを読み込み、数件しかないアイテムは、コピーペーストでひとつずついれた。
それで DB には余計な情報が無いキレイな状態の(仮)サイトができあがり…のはずが、あれ、グローバルメニューからリンクしてるスペシャルスキンパーツでできてる(半)静的ページのスキンが反映されておらず、index と同じ状態だった。
ローカルの奴はまだ 3.41 で、サーバーの奴は 3.51 という以外に違いは無いので、仕様変更かまたはバグだな、ということで調査。通常モードで ?special=xxx とクエリー送る分にはスペシャルスキンに切り替わる。
(半)静的ページと書いたけど、自分がやってるのは、スペシャルスキンパーツで好き勝手に内容をいれた HTML を作り、
<?php
include('./config.php');
$_REQUEST['special'] = 'specialskin';
selector();
?>
上の 'specialskin' のところに作ったスペシャルスキンパーツ名をいれる、というもの。(以前書いた)これがアウトってことなんで、globalfunction.php の selector() 調べたら、どうやら $special を global 変数にして、$_REQUEST['special'] を受け付けなくした、と。だったら、$_REQUEST['special'] = 'specialskin'; は $special = 'specialskin'; とすりゃよいのよね?…とやってみたら動作した。
…てことはですよ、extra 内の fancyurl のコードじゃ、間違ってることになりませんか?
<?php
include('./fancyurls.config.php');
include('./config.php');
if (!requestVar('special'))
{
$data = explode("/",serverVar('PATH_INFO'));
if (count($data) > 1)
{
$_REQUEST['special'] = $data[1];
}
}
selector();
?>
3.51 アップデートして、スペシャルスキン使ってて、もし開かないページがあったら、上の $_REQUEST['special'] を $special にしたら動きます。
2010-05-19 19:03 | Nucleus | ichiro | permalink


Comments
コメントはまだありません