The Trap of Web Design

スペシャルスキンパーツの使い方バージョン 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

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


Portfolio

Stagemind

▲ 珍しくカバーアニメーションとか