Просмотр исходного кода

- Can now save a QBF query, returning its qid
- Still limited to a single client module per site

Frederic G. Marand 15 лет назад
Родитель
Сommit
888c553a01
1 измененных файлов с 37 добавлено и 4 удалено
  1. 37 4
      qbf.module

+ 37 - 4
qbf.module

@@ -7,7 +7,7 @@
  *
  * @copyright 2008 Ouest Systemes Informatiques (OSInet)
  * @author Frederic G. MARAND
- * @version $Id: qbf.module,v 1.8 2008-08-31 10:45:05 marand Exp $
+ * @version $Id: qbf.module,v 1.9 2008-09-02 08:25:24 marand Exp $
  * @license CeCILL 2.0
  * @package QBF
  */
@@ -454,11 +454,14 @@ function qbf_submit($form_id, $form_values)
       $ret = FALSE;
       break;
     case t('Save query'):
-      $ret = url('goo');
+      _qbf_save($form_id, $form_values);
+      drupal_set_message(t('Your query was saved as "@name".',
+        array('@name' => $form_values['save-name'])));
+      global $user;
+      $ret = "user/$user->uid/edit/job";;
       break;
     }
-  dsm(func_num_args());
-  dsm(array('QS' => $form_values));
+  //dsm(array('QS' => $form_values));
   return $ret;
   }
 
@@ -481,4 +484,34 @@ function qbf_get_queries_by_user($uid)
     $ret[$o->qid] = $o; // qid is the PK, so it is present and unique
     }
   return $ret;
+  }
+
+/**
+ * Save a query and return its qid.
+ *
+ * @global $user
+ * @param string $form_id
+ * @param array $form_values
+ * @return int
+ */
+function _qbf_save($form_id, $form_values)
+  {
+  global $user;
+
+  if ($user->uid == 0)
+    {
+    $warning = t('Attempt by anonymous user to save a QBF query. Should not happen.');
+    drupal_set_message($warning, 'error');
+    watchdog('qbf', $warning, WATCHDOG_WARNING);
+    $ret = 0;
+    }
+  else
+    {
+    $sq = 'INSERT INTO {%s} (qid, uid, name, query) '
+        . "VALUES           (%d,  %d,  '%s', '%s' ) ";
+    $ret = db_next_id('qbf_qid');
+    $q = db_query($sq, QBF_TABLE_NAME, $ret, $user->uid, $form_values['save-name'], serialize($form_values));
+    }
+
+  return $ret;
   }