福岡 web・ホームページ制作 Eight(エイト)

【Modx】【ページトップ】フレンドリーURLを設定した際に、そのページまでのフォルダ階層を返すメソッド「getCurUrl」

Category:Modxコーディング

Modxにおいて、開いているページの先頭(ページトップ)に飛ぶ場合、[*alias*]で指定する(フレンドリーURL使用時)かid指定するしかないです。

内部リンクでも「#~」とするとModxでは「#~」をaliasと認識してNotfoundとなり404ページに飛ばされます。なので内部リンクする際も「[*alias*].html#~」としなければなりません。

ですがフレンドリーURLを有効にし、baseタグを設定して「エイリアスパスを使用」していると階層ができた場合、フォルダが省かれて「baseUrl/[*alias*].html#~」となり404ページに飛ばされます。

そこで、スニペットを作ってみました

getCurUrl

<?php
$url;
$array = $modx->getDocument($method=$modx->documentObject[‘parent’]);
while($array[‘parent’] != 0){
$url = $array[‘alias’] .’/’ .$url;
$array = $modx->getDocument($method=$array[‘parent’]);
}

$url = $array[‘alias’] .’/’ .$url;

return $url;
?>

戻り値

「エイリアス名/」を返します。階層が深くなるとそれに合わせて「エイリアス名/エイリアス名/」を返します。

気に入ったら使ってみて下さい。

Related Article

Comments

Page Top