From 673aba159b039568b93b015c5c8b97a71ec530f6 Mon Sep 17 00:00:00 2001
From: Dries Buytaert <dries@buytaert.net>
Date: Wed, 28 Nov 2007 09:45:47 +0000
Subject: [PATCH] - Patch #194304 by Gabor: upgrade should only enable PHP
 module if necessary.

---
 modules/system/system.install | 26 +++++++-------------------
 1 file changed, 7 insertions(+), 19 deletions(-)

diff --git a/modules/system/system.install b/modules/system/system.install
index 1f036b28fcd7..7e48a8c7e629 100644
--- a/modules/system/system.install
+++ b/modules/system/system.install
@@ -1784,31 +1784,19 @@ function system_update_6008() {
 function system_update_6009() {
   $ret = array();
 
-  // Delete existing PHP filter and input format.
-  $ret[] = update_sql("DELETE FROM {filter_formats} WHERE format = 2");
-  $ret[] = update_sql("DELETE FROM {filters} WHERE format = 2");
-
-  // Enable the PHP filter module.
-  $ret[] = update_sql("UPDATE {system} SET status = 1 WHERE name = 'php' AND type = 'module'");
-
-  // Add the PHP Code input format.
-  $ret[] = update_sql("INSERT INTO {filter_formats} (name, roles, cache) VALUES ('PHP code', '', 0)");
-  $format = db_result(db_query("SELECT MAX(format) FROM {filter_formats}"));
-
-  // Enable the PHP evaluator filter.
-  db_query("INSERT INTO {filters} (format, module, delta, weight) VALUES (%d, 'php', 0, 0)", $format);
-
-  // If any other input formats use the PHP evaluator, update them accordingly.
-  $ret[] = update_sql("UPDATE {filters} SET delta = 0, module = 'php' WHERE module = 'filter' AND delta = 1");
+  // If any input format used the Drupal 5 PHP filter.
+  if (db_result(db_query("SELECT COUNT(format) FROM {filters} WHERE module = 'filter' AND delta = 1"))) {
+    // Enable the PHP filter module.
+    $ret[] = update_sql("UPDATE {system} SET status = 1 WHERE name = 'php' AND type = 'module'");
+    // Update the input filters.
+    $ret[] = update_sql("UPDATE {filters} SET delta = 0, module = 'php' WHERE module = 'filter' AND delta = 1");
+  }
 
   // With the removal of the PHP evaluator filter, the deltas of the line break
   // and URL filter have changed.
   $ret[] = update_sql("UPDATE {filters} SET delta = 1 WHERE module = 'filter' AND delta = 2");
   $ret[] = update_sql("UPDATE {filters} SET delta = 2 WHERE module = 'filter' AND delta = 3");
 
-  // Update any nodes associated with the PHP input format.
-  db_query("UPDATE {node_revisions} SET format = %d WHERE format = 2", $format);
-
   return $ret;
 }
 
-- 
GitLab