'https://docs.google.com/spreadsheets/d/1StMFSdD_Nq0Af6DYzbp22RZFD8vdtn-9_3oKSlbZ-y4/export?format=csv', 'https://www.fragranza.sk' => 'https://docs.google.com/spreadsheets/d/1R3XcKwvsZlZutGYco7CBayBOzIAAFV6kzq24Cu-8OW0/export?format=csv', ]; protected function run(array $arguments) { $rewriteUtil = ServiceContainer::getService(Rewrite::class); sqlGetConnection()->getConfiguration()->setSQLLogger(); foreach ($arguments as $domain => $file) { foreach (FileUtil::loadCSV($file) as $key => $item) { if ($key <= 0) { continue; } if (empty($item[1]) || $item[1] === '#N/A') { continue; } $parsed = parse_url($item[0]); $path = $parsed['path'].(!empty($parsed['query']) ? '?'.$parsed['query'] : ''); $rewriteId = sqlQueryBuilder() ->select('id') ->from('rewrite') ->where(Operator::equals(['url' => trim($path, '/')])) ->execute()->fetchOne(); if ($rewriteId) { sqlQueryBuilder() ->delete('rewrite') ->where(Operator::equals(['id' => $rewriteId])) ->execute(); } $related = '/'; if (!empty($item[1])) { $related = $item[1]; } QueryHint::withRouteToMaster(fn () => $rewriteUtil->addRewrite($domain.'/'.ltrim($path, '/'), Rewrite::TYPE_CUSTOM, $related)); } } } } return FixRewriteScript::class;