Magical URLでの個別アイテムページの検索不具合

Magical URLでの個別アイテムページの検索不具合

Author : pushman|Nucleus|2005-09-17 Sat 10:20

サイトを再開するにあたって、Nucleus 3.21を新規インストールしたのですが、そのままでは個別アイテムページで検索機能が働かなかったので、その修正メモです。

Nucleusは標準でサイト内検索機能を提供してくれています。しかも、Blogごとにその検索対象にするかどうか設定できるので、特に広く知らしめたく無いページを隠すことも可能です。サイト内検索なので、どこのページで検索しても同じ結果が出てくるはずなのですが、今回は個別アイテムページでのみ検索機能が働きませんでした。当サイトはすべてのスキンを使用していないので*1、もしかすると他のスキンでも不具合があるかもしれません。

検索機能がスキンによって動かないということは、基本的なコードに問題があるのではなく、フォームのソースがおかしいのではないかと見当をつけて「Nucleus」ディレクトリ直下の「forms」ディレクトリの「searchform.template」を開くと

<form method="get" action="<%self%>">
<div class="searchform">
		<input name="query" class="formfield" size="10" maxlength="60" accesskey="4" value="<%formdata(query)%>" />
		<input type="hidden" name="amount" value="0" />
		<input type="hidden" name="blogid" value="<%formdata(id)%>" />
		<br />
		<input type="submit" value="<%text(_SEARCHFORM_SUBMIT)%>" class="formbutton" />
	</div>
</form>

となっています。一行目の「form」タグの「action」属性の値が「<%self%>」となっています。実際に展開されるとこの値はこうなっています。

<form method="get" action="">

となっています。空ですね。だからどうなのかさっぱりわかりません。「action」属性で指定されたファイルにそのフォームに入力された値を渡すことだと思うのですが、もうここら辺りになると、いっちょかみにはわかりません。が、ここで思い出したのはindex.phpの「$CONF['Self']」の値。今回いろいろと忘れていたのでこちら「URLのサーチエンジン対策(Fancy URL)」を参考にMagical URLで動かすための修正を行ったのですが、

(4)index.phpの変更
同様にindex.phpファイルの
$CONF['Self'] = 'index.php';


$CONF['Self'] = '';

と変更します。
#http://example.com/blog/などとディレクトリの下にNucleusをインストールしている場合は
$CONF['Self'] = '.';

と、カンマ(.)を入れるとうまくいきました。

Nucleusでいこう! URLのサーチエンジン対策(Fancy URL)

ということだったのですが、たしか以前は「.」だったはず…ということで「.」に変更後、個別アイテムページで検索すると、無事に検索結果が表示されました。

ここらあたりの理屈が理解できれば、もうちょっとトラブル解決の術を得られそうなのですが、まあ僕の専門ではないので問題解決の糸口を見つける勘を鍛えていこうと思います。

  • *1エラーページ、メインの目次ページ、個別アイテムページ、検索ページを使用しています。

Tag(s): Nucleus Tips / コア改造

[Nucleus] Next & Previous

Comment Form (policy)

(メールアドレスは非公開です)

Others
Newest 5 Items

NP_znItemFieldEXとNP_ifの連携

NP_znItemFieldEX|PHP 5で検索機能を有効にする

NP_GoogleMaps|最大ズームレベルを変更

NP_ImageExtractor|エラー修正

NP_ImageExtractor|画像を抽出するプラグイン

Web Service

Google Mapsで緯度と経度を測定

Nucleus CMS: Pure Publishing