Nucleus(JP)フォーラム

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

ログインしていません。

#1 2009-05-15 23:36:48

きゃしゃ
メンバー
From: 北河内
登録日: 2007-12-15
投稿: 351

Re: <%bloglink%>再び

どうにも挙動に納得がいきません。

blogid=2のブログを作成し、「簡単な方法:」に従い、「アクセス専用phpファイル」を作成します。

<?php

$CONF['Self'] = 'second.php';

include('./config.php');

selectBlog('second');
selector();

?>

ブログ2にアクセスすると、<%bloglink%>は

second.php?blogid=1

といった具合に展開されます。
お世辞にも美しいURLではありませんが、ともかく、このリンクでブログ1が表示されることが期待されるはずです。
が、実際には、second.php?blogid=1だろうがsecond.php?blogid=2だろうがsecond.php?blogid=9999だろうが、
ブログ2が表示されます。
ドキュメントには

(* URLにて指定するblogidの方が優先されます。URLにて指定がない場合にこの指定が使われます)

とありますが、
実際にはURLで指定したクエリ"blogid=1"よりも、phpファイル中の"selectBlog('second');"が優先されています。
globalfunctions.php 1149あたりからの  * functions for use in index.php 群を見ますと、$blogid等global変数を問答無用で上書きしています。
クエリが優先されるのが本来の仕様であるならば、

if (!$blogid)

とかチェックすればいいかとは思いますが、
先ほどのドキュメント、本家版ではURLが優先されるという記述はありません。

現状は正しい挙動ではないとは思うのですが、生成するURLを修正するべきなのか、優先順位を修正するべきなのか判断できません。


これとは別に、3.4xで密かにブログリストテンプレートでテンプレート変数<%blogurl%>が使えるようになっている(カレントブログのURLではなく各ブログのURLを返す)ので、こっちを使えってことですかねぇ。

オフライン

Board footer