Microweber\Providers\Content\ContentManagerCrud::reorder PHP Метод

reorder() публичный Метод

public reorder ( $params )
    public function reorder($params)
    {
        $ids = $params['ids'];
        if (empty($ids)) {
            $ids = $_POST[0];
        }
        if (empty($ids)) {
            return false;
        }
        $ids = array_unique($ids);
        $ids = array_map('intval', $ids);
        $ids_implode = implode(',', $ids);
        $table = $this->app->database_manager->real_table_name($this->tables['content']);
        $maxpos = 0;
        $get_max_pos = "SELECT max(position) AS maxpos FROM {$table}  WHERE id IN ({$ids_implode}) ";
        $get_max_pos = $this->app->database_manager->query($get_max_pos);
        if (is_array($get_max_pos) and isset($get_max_pos[0]['maxpos'])) {
            $maxpos = intval($get_max_pos[0]['maxpos']) + 1;
        }
        $i = 1;
        foreach ($ids as $id) {
            $id = intval($id);
            $this->app->cache_manager->delete('content/' . $id);
            $pox = $maxpos - $i;
            DB::table($this->tables['content'])->whereId($id)->update(['position' => $pox]);
            ++$i;
        }
        $this->app->cache_manager->delete('content/global');
        $this->app->cache_manager->delete('categories/global');
        return true;
    }