UPDATE modx_site_content t1
JOIN (
SELECT
id,
CONCAT(alias, '-', ROW_NUMBER() OVER (PARTITION BY uri ORDER BY id ASC)) AS new_alias
FROM
modx_site_content
WHERE
uri IN (
SELECT uri
FROM modx_site_content
GROUP BY uri
HAVING COUNT(*) > 1
)
AND deleted = 0
) t2 ON t1.id = t2.id
SET
t1.alias = t2.new_alias
WHERE
t2.new_alias != t1.alias;
github.com/vectorserver/maxBotModx/
или через мускул (перед выполнением обязательно сделайте дамп) напрямую + потом кеш почистить
Ссылка: modstore.pro/packages/photos-and-files/phpthumbon
www.php.net/manual/ru/transliterator.transliterate.php
Вот так примерно:
По второму вопросу не скажу, не вникал)