同様の現象に引っかかりました。
記事ブロックのHTML表示で見るとhref属性はこうなってます。
href="http://example.com/index.php?cID=90"
ただし、編集を終了して確認するとスラッシュになっている。
(index.phpがつかないのは私のサイトではプリティURLにしているため)
href="/"
ちょい調べてみましたがcontentブロックのconctroller.phpの、
ContentBlockControllerクラスのreplaceCollectionIDメソッドで正式なURLに変換しているようです。
で、実際にフィルタリングしているのが以下の部分で"/"が返ってきていました。
Page::getCollectionPathFromID($cID)
どうもページパスを入力していないとこういう挙動になってしまうようです。
これはバグなのか仕様なのかどちらなんでしょうか。。。
とりあえず、ページパスを入力すればリンクは直ると思います。。。
私のクライアントは毎度ページパスを入れることを徹底するのが難しいので
blocks/content/controller.phpの127行あたりの
$path = DIR_REL . $path;
を以下のように書き換えてしまいました。
if($path == '/') {
$path = DIR_REL . '/' . DISPATCHER_FILENAME . '?cID=' . $cID;
} else {
$path = DIR_REL . $path;
}
Re: 「リンクを追加」の挙動について
2010年5月25日 at 10:57
http://******.***/index.php?cID=90
を直接アドレスバーに入力してもページが表示されませんか?
もしそうなら.htaccessやパーマリンクの設定が間違っていると思います。
Your post has been saved and will be published after approval by the forum moderator.
Sunvisor
Re: Re: 「リンクを追加」の挙動について
現象の書き方が甘かったですね。
記事の編集で,「リンクを追加」したばあい,編集画面で,リンクのプロパティを確認すると
リンクURLの値は,http://******.***/index.php?cID=90 というようになっています。
HTMLソースエディターで内容を確認しても
<a title="まっぷ" href="http://******.***/index.php?cID=90">ここから</a>
というように目的地アドレスがちゃんとセットされています。
しかし,編集モードを終えて実際にリンクをクリックするとindexに飛ぶのです。
で,そこでそのページのソースを見てみると
<a title="まっぷ" href="/index.php/">ここから</a>
というように?以後のパラメータがない状態になっています。
編集モードに戻り,再度リンクのプロパティを編集して,http~ドメイン名部分を削除して
/index.php?cID=90 としてみます。
すると,公開されたページのソースは
<a title="まっぷ" href="/index.php?cID=90">ここから</a>
となり,ちゃんと目的のページが表示されるようになります。
この動作がなんかおかしいなと思うわけです。なにか標準でHTMLのフィルタでもかかっているのでしょうか。