お返事ありがとうございます。すばやくお返事をいただいてとてもうれしく思います。
現象の書き方が甘かったですね。
記事の編集で,「リンクを追加」したばあい,編集画面で,リンクのプロパティを確認すると
リンク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のフィルタでもかかっているのでしょうか。
「リンクを追加」の挙動について
2010年5月24日 at 22:51
立て続けの投稿で恐れ入ります。
編集モードで,WISYWIGエディタの「リンクを追加」をクリックして,内部ページのリンクを追加した場合に,そのリンクをクリックすると,ホームに戻ってしまいます。
編集モードに戻り,そのリンクを確かめてみると,
http://******.***/index.php?cID=90
という感じで,フルパスながらちゃんと設定されている雰囲気なのです。
でも,実際の画面では上記の症状が出ます。
で,http://から始まるところをとって,/index.php?cID=90 とすると,
ちゃんと,対象ページに飛ぶようになります。
これは,バグでしょうか。それとも私が悪いのか,はたまた何か回避策が...
Re: Re: Re: 「リンクを追加」の挙動について
2010年6月2日 at 21:46
同様の現象に引っかかりました。
記事ブロックの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;
}
記事ブロックの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: Re: 「リンクを追加」の挙動について
2010年6月3日 at 16:36
> 日本語だから起こるバグですね。
なるほど、タイトルからページパスは自動生成される仕様なのですね。
マルチバイト文字だとページパスが空になることがあり得ると。
できればマルチバイト文字でも何らかの命名規則に沿ってページパスが入力されてほしいです…!
なるほど、タイトルからページパスは自動生成される仕様なのですね。
マルチバイト文字だとページパスが空になることがあり得ると。
できればマルチバイト文字でも何らかの命名規則に沿ってページパスが入力されてほしいです…!
Your post has been saved and will be published after approval by the forum moderator.
Tao Sasaki
Re: 「リンクを追加」の挙動について
を直接アドレスバーに入力してもページが表示されませんか?
もしそうなら.htaccessやパーマリンクの設定が間違っていると思います。