kreativan
2/26/2018 - 6:50 PM

Sort Pages via API

Processwire Sort Pages using API

<?php
// move to beginning
$pages->sort($page, 0);

// move to end
$lastSibling = $page->siblings('include=all')->last();
$pages->insertAfter($page, $lastSibling);

// move 1 step forward
$pages->insertAfter($page, $page->next);

// move 1 step backwards
$pages->insertBefore($page, $page->prev);

// move to any index position
$newIndex = 0;
if ($newIndex === 0) $pages->sort($page, 0);
else {
    $futureBefore = $page->siblings('include=all')->eq($newIndex);
    $futureBefore = $futureBefore? $futureBefore : $page->siblings('include=all')->last();
    $pages->insertAfter($page, $futureBefore);
}