#3621817: stop wiping Pagedesigner content when the uninstall list is rendered
PagedesignerUninstallValidator::validate() ran _pagedesigner_prepare_uninstall() directly, which truncates every Pagedesigner element table and deletes field storages. validate() is invoked by ModulesUninstallForm::buildForm() for every installed module on every GET to admin/modules/uninstall, so merely visiting that page destroyed all Pagedesigner content with no confirmation.
The validator is now read-only: it blocks uninstall with a reason and a link whenever Pagedesigner still owns field storages, instead of mutating anything. The actual purge now only runs from the explicit, confirmed PagedesignerPrepareUninstallForm (or from the pagedesigner_uninstall() hook during a real uninstall).
Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com
Closes #3621817