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;
?>
戻り値
「エイリアス名/」を返します。階層が深くなるとそれに合わせて「エイリアス名/エイリアス名/」を返します。
気に入ったら使ってみて下さい。