function fix_page_trail($parent, $root_parent)
{
    // Get objects and vars from outside this function
    global $admin, $template, $database, $TEXT, $MESSAGE;
    // Get page list from database
    // $database = new database();
    $sql = 'SELECT `page_id` FROM `' . TABLE_PREFIX . 'pages` ' . 'WHERE `parent`=' . (int) $parent;
    // Insert values into main page list
    if ($get_pages = $database->query($sql)) {
        // Insert values into main page list
        while ($page = $get_pages->fetchRow(MYSQLI_ASSOC)) {
            // Fix page trail
            $sql = 'UPDATE `' . TABLE_PREFIX . 'pages` ' . 'SET `page_trail`=\'' . get_page_trail($page['page_id']) . '\' ' . ($root_parent != 0 ? '`root_parent`=' . (int) $root_parent . ', ' : '') . 'WHERE `page_id`=' . (int) $page['page_id'];
            $database->query($sql);
            // Run this query on subs
            fix_page_trail($page['page_id'], $root_parent);
        }
    }
}
function fix_page_trail($parent, $root_parent)
{
    // Get objects and vars from outside this function
    global $admin, $template, $database, $TEXT, $MESSAGE;
    // Get page list from database
    // $database = new database();
    $query = "SELECT page_id FROM " . TABLE_PREFIX . "pages WHERE parent = '{$parent}'";
    $get_pages = $database->query($query);
    // Insert values into main page list
    if ($get_pages->numRows() > 0) {
        while ($page = $get_pages->fetchRow()) {
            // Fix page trail
            $database->query("UPDATE " . TABLE_PREFIX . "pages SET " . ($root_parent != 0 ? "root_parent = '{$root_parent}', " : "") . " page_trail = '" . get_page_trail($page['page_id']) . "' WHERE page_id = '" . $page['page_id'] . "'");
            // Run this query on subs
            fix_page_trail($page['page_id'], $root_parent);
        }
    }
}