/** * Reorder modules positions (without holes) * * @return array Maximum position by type */ protected function cleanPosition() { $modulesType = []; $this->moduleQuery->clear(); $modules = $this->moduleQuery->orderByPosition(Criteria::ASC); /** @var \Thelia\Model\Module $module */ foreach ($modules as $module) { if (!isset($modulesType[$module->getType()])) { $modulesType[$module->getType()] = 0; } $module->setPosition(++$modulesType[$module->getType()])->save(); } return $modulesType; }