The following plugin dynamically hides the two offending radios using jQuery, and kills revision self-comparisons.



<?php
# Plugin Name: Pest Control
# Plugin URI: http://www.semiologic.com/
# Description: Kills the Easter Bunny
# Version: 1.0
# Author: Denis de Bernardy
# License: Public Domain
class PestControl { public static function bootstrap() { add_action('admin_head-revision.php', array(__CLASS__, 'mixomatosis')); add_action('load-revision.php', array(__CLASS__, 'plague')); } public static function mixomatosis() { echo <<<EOD<script type="text/javascript">
// <![CDATA[
jQuery(document).ready(function($) { var mixomatosis = function() { var left = $(':radio[name=left]:checked').val(), right = $(':radio[name=right]:checked').val(); $(':radio[name=left], :radio[name=right]').each(function() { var t = $(this); switch (true) { case t.attr('name') == 'left' && t.attr('value') == right: case t.attr('name') == 'right' && t.attr('value') == left: t.css('display', 'none'); break; default: t.css('display', ''); } }); }; mixomatosis(); $(':radio[name=left], :radio[name=right]').change(mixomatosis);
});
// ]]>
</script>
EOD; } public static function plague() { if ($_GET['action'] == 'diff' && $_GET['left'] == $_GET['right']) { wp_die("Can compare a revision with itself."); } }
}
PestControl::bootstrap();
?>



More Solution