Index: signwriter.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/signwriter/signwriter.module,v
retrieving revision 1.10.2.3
diff -u -p -r1.10.2.3 signwriter.module
--- signwriter.module	19 Nov 2008 03:44:46 -0000	1.10.2.3
+++ signwriter.module	11 Mar 2009 18:10:25 -0000
@@ -106,7 +106,29 @@ function signwriter_filter_tips($delta, 
 }
 
 function _signwriter_db_fields() {
-  return array('id', 'name', 'pattern', 'fontfile', 'fontsize', 'imagetype', 'background', 'foreground','multiline', 'drop_shadow', 'shadow_color', 'shadow_xoffset', 'shadow_yoffset', 'transparent', 'bgimage', 'width', 'height', 'maxwidth', 'textalign', 'xoffset', 'yoffset');
+  return array(
+    'id' => array('name' => 'id', 'type' => '%d'),
+    'name' => array('name' => 'name', 'type' => '"%s"'),
+    'pattern' => array('name' => 'pattern', 'type' => '"%s"'),
+    'fontfile' => array('name' => 'fontfile', 'type' => '"%s"'),
+    'fontsize' => array('name' => 'fontsize', 'type' => '%d'),
+    'imagetype' => array('name' => 'imagetype', 'type' => '"%s"'),
+    'background' => array('name' => 'background', 'type' => '"%s"'),
+    'foreground' => array('name' => 'foreground', 'type' => '"%s"'),
+    'multiline' => array('name' => 'multiline', 'type' => '%d'),
+    'drop_shadow' => array('name' => 'drop_shadow', 'type' => '%d'),
+    'shadow_color' => array('name' => 'shadow_color', 'type' => '"%s"'),
+    'shadow_xoffset' => array('name' => 'shadow_xoffset', 'type' => '%d'),
+    'shadow_yoffset' => array('name' => 'shadow_yoffset', 'type' => '%d'),
+    'transparent' => array('name' => 'transparent', 'type' => '%d'),
+    'bgimage' => array('name' => 'bgimage', 'type' => '"%s"'),
+    'width' => array('name' => 'width', 'type' => '%d'),
+    'height' => array('name' => 'height', 'type' => '%d'),
+    'maxwidth' => array('name' => 'maxwidth', 'type' => '%d'),
+    'textalign' => array('name' => 'textalign', 'type' => '"%s"'),
+    'xoffset' => array('name' => 'xoffset', 'type' => '%d'),
+    'yoffset' => array('name' => 'yoffset', 'type' => '%d')
+  );
 }
 
 function _signwriter_profile_whereclause($profile) {
@@ -183,10 +205,12 @@ function signwriter_save_profile($profil
   }
 
   $fields = _signwriter_db_fields();
-  foreach ($fields as $fieldname) {
+  foreach ($fields as $field) {
+    $fieldname = $field['name'];
     if (!is_null($profile->$fieldname)) {
       $keys[] = $fieldname;
-      $value_keywords[] = "'%s'";
+      $value_keywords[] = $field['type'];
+      $assignments[] = "$fieldname = {$field['type']}";
       $values[] = $profile->$fieldname;
     }
   }
@@ -199,9 +223,6 @@ function signwriter_save_profile($profil
     }
     else {
       $where = _signwriter_profile_whereclause($profile);
-      foreach ($keys as $key) {
-        $assignments[] = "$key = '%s'";
-      }
       $assignments = implode(', ', $assignments);
       db_query("UPDATE {signwriter} SET $assignments $where", $values);
     }
@@ -222,7 +243,7 @@ function signwriter_save_profile($profil
  */
 function signwriter_load_profile($profile) {
   if ($where = _signwriter_profile_whereclause($profile)) {
-    $fields = implode(', ', _signwriter_db_fields());
+    $fields = implode(', ', array_keys(_signwriter_db_fields()));
     return db_fetch_object(db_query("SELECT $fields FROM {signwriter} $where"));
   }
 }
@@ -241,7 +262,7 @@ function signwriter_load_profile($profil
 function signwriter_load_profiles($profiles = null) {
   if (is_null($profiles)) {
     $profiles = array();
-    $results = db_query("SELECT %s FROM {signwriter}", implode(', ', _signwriter_db_fields()));
+    $results = db_query("SELECT %s FROM {signwriter}", implode(', ', array_keys(_signwriter_db_fields())));
     while ($profile = db_fetch_object($results)) {
       $profiles[] = $profile;
     }
