「リンクを追加」の挙動について

2010年5月24日 at 22:51

立て続けの投稿で恐れ入ります。

編集モードで,WISYWIGエディタの「リンクを追加」をクリックして,内部ページのリンクを追加した場合に,そのリンクをクリックすると,ホームに戻ってしまいます。

編集モードに戻り,そのリンクを確かめてみると,
http://******.***/index.php?cID=90
という感じで,フルパスながらちゃんと設定されている雰囲気なのです。
でも,実際の画面では上記の症状が出ます。

で,http://から始まるところをとって,/index.php?cID=90 とすると,
ちゃんと,対象ページに飛ぶようになります。

これは,バグでしょうか。それとも私が悪いのか,はたまた何か回避策が...

Re: 「リンクを追加」の挙動について

2010年5月25日 at 10:57
http://******.***/index.php?cID=90

を直接アドレスバーに入力してもページが表示されませんか?

もしそうなら.htaccessやパーマリンクの設定が間違っていると思います。
 

Re: Re: 「リンクを追加」の挙動について

2010年5月25日 at 13:00
お返事ありがとうございます。すばやくお返事をいただいてとてもうれしく思います。

現象の書き方が甘かったですね。
記事の編集で,「リンクを追加」したばあい,編集画面で,リンクのプロパティを確認すると

リンク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のフィルタでもかかっているのでしょうか。
 

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;
}
 

Re: 「リンクを追加」の挙動について

2010年6月3日 at 15:40
日本語だから起こるバグですね。

本家ではバグではないですからね・・・。

日本語版で独自に機能を付ける必要があるかも・・・。

うーむ。
 

Re: Re: 「リンクを追加」の挙動について

2010年6月3日 at 16:36
> 日本語だから起こるバグですね。

なるほど、タイトルからページパスは自動生成される仕様なのですね。
マルチバイト文字だとページパスが空になることがあり得ると。

できればマルチバイト文字でも何らかの命名規則に沿ってページパスが入力されてほしいです…!