隣接ドキュメントの移動(兄弟)

タスク:各子ページにナビゲーション「previous next」を装備する必要があります

私が見つけたわずかな解決策はすべて私に合わなかった。いくつかはうまくいかなかった、いくつかはそのような些細な問題を解決するのに非常に膨大であるように見えた。 スニペットを書くことにしました。私にとってだけでなく、生活が楽になることを願っています。


<?php
$ID = $modx->documentIdentifier;
$parentId = array_pop($modx->getParentIds($modx->documentIdentifier,1));

$children = $modx->getActiveChildren($parentId, 'menuindex' , 'ASC' );

$i=0;
$key = false ;
while (!$key && $i<count($children)){
$key = array_search($ID,$children[$i]);
$i++;
}

if (!empty($key) && count($children)>1){
$placeholders = array(
'prev' =>($i-2>=0? '<a href="' .$modx->makeUrl($children[$i-2][ 'id' ]). '">« </a>' : '' ),
'next' =>($i<count($children)? '<a href="' .$modx->makeUrl($children[$i][ 'id' ]). '"> »</a>' : '' )
);
$output = $modx->parseChunk( 'prevnext' ,$placeholders, '[+' , '+]' );

}
return $output;
?>


* This source code was highlighted with Source Code Highlighter .


このスニペットは、結果をprevnextチャンクに表示します。これは、2つのプレースホルダーを使用します。
[+前へ+]
[+次+]

それでも動作します;)

Source: https://habr.com/ru/post/J71722/


All Articles