|
@@ -7,7 +7,7 @@
|
|
*
|
|
*
|
|
* @copyright 2008 Ouest Systemes Informatiques (OSInet)
|
|
* @copyright 2008 Ouest Systemes Informatiques (OSInet)
|
|
* @author Frederic G. MARAND
|
|
* @author Frederic G. MARAND
|
|
- * @version $Id: qbf.module,v 1.7 2008-08-28 17:06:04 marand Exp $
|
|
|
|
|
|
+ * @version $Id: qbf.module,v 1.8 2008-08-31 10:45:05 marand Exp $
|
|
* @license CeCILL 2.0
|
|
* @license CeCILL 2.0
|
|
* @package QBF
|
|
* @package QBF
|
|
*/
|
|
*/
|
|
@@ -35,7 +35,7 @@ define('QBF_LEVEL_REQUIRED', 3);
|
|
/**
|
|
/**
|
|
* The main QBF path
|
|
* The main QBF path
|
|
*/
|
|
*/
|
|
-define('QBF_PATH_QUERY', 'qbf/query');
|
|
|
|
|
|
+define('QBF_PATH_MAIN', 'qbf');
|
|
|
|
|
|
/**
|
|
/**
|
|
* Authorize use of QBF searches
|
|
* Authorize use of QBF searches
|
|
@@ -46,6 +46,10 @@ define('QBF_PERM_QUERY', 'use QBF search functions');
|
|
*/
|
|
*/
|
|
define('QBF_PERM_ADMIN', 'administer QBF');
|
|
define('QBF_PERM_ADMIN', 'administer QBF');
|
|
|
|
|
|
|
|
+/**
|
|
|
|
+ * The name of the table used to store queries
|
|
|
|
+ */
|
|
|
|
+define('QBF_TABLE_NAME', 'qbf_queries');
|
|
|
|
|
|
/**
|
|
/**
|
|
* Transform a form array for QBF.
|
|
* Transform a form array for QBF.
|
|
@@ -88,7 +92,8 @@ function qbf_transform_form($form_id)
|
|
|
|
|
|
$newForm['#id'] = $newFormId;
|
|
$newForm['#id'] = $newFormId;
|
|
$newForm['#multistep'] = TRUE;
|
|
$newForm['#multistep'] = TRUE;
|
|
- $newForm['#redirect'] = FALSE;
|
|
|
|
|
|
+ // Do not set #redirect, even to FALSE (submit handlers)
|
|
|
|
+ // $newForm['#redirect'] = FALSE;
|
|
$newForm['#after_build'][] = 'qbf_after_build';
|
|
$newForm['#after_build'][] = 'qbf_after_build';
|
|
$newForm['#submit'] = array('qbf_submit' => array());
|
|
$newForm['#submit'] = array('qbf_submit' => array());
|
|
// dsm($newForm);
|
|
// dsm($newForm);
|
|
@@ -425,10 +430,10 @@ function qbf_import_values($element, $form_values)
|
|
function qbf_load($qid)
|
|
function qbf_load($qid)
|
|
{
|
|
{
|
|
$sq = 'SELECT qq.qid, qq.uid, qq.query '
|
|
$sq = 'SELECT qq.qid, qq.uid, qq.query '
|
|
- . 'FROM {qbf_queries} qq '
|
|
|
|
|
|
+ . 'FROM {%s} qq '
|
|
. 'WHERE qq.qid = %d ';
|
|
. 'WHERE qq.qid = %d ';
|
|
// db_rewrite_sql does not apply here until we add more advanced support for access control
|
|
// db_rewrite_sql does not apply here until we add more advanced support for access control
|
|
- $q = db_query($sq, $qid);
|
|
|
|
|
|
+ $q = db_query($sq, QBF_TABLE_NAME, $qid);
|
|
$ret = db_fetch_object($q); // 0 or 1 row: we are querying on the primary key
|
|
$ret = db_fetch_object($q); // 0 or 1 row: we are querying on the primary key
|
|
if ($ret === FALSE)
|
|
if ($ret === FALSE)
|
|
{
|
|
{
|
|
@@ -443,7 +448,37 @@ function qbf_load($qid)
|
|
|
|
|
|
function qbf_submit($form_id, $form_values)
|
|
function qbf_submit($form_id, $form_values)
|
|
{
|
|
{
|
|
|
|
+ switch ($form_values['op'])
|
|
|
|
+ {
|
|
|
|
+ case t('Search'):
|
|
|
|
+ $ret = FALSE;
|
|
|
|
+ break;
|
|
|
|
+ case t('Save query'):
|
|
|
|
+ $ret = url('goo');
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
dsm(func_num_args());
|
|
dsm(func_num_args());
|
|
dsm(array('QS' => $form_values));
|
|
dsm(array('QS' => $form_values));
|
|
- return url('goo');
|
|
|
|
|
|
+ return $ret;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * List queries owned by a given user.
|
|
|
|
+ *
|
|
|
|
+ * @param int $uid > 0
|
|
|
|
+ * @return array
|
|
|
|
+ */
|
|
|
|
+function qbf_get_queries_by_user($uid)
|
|
|
|
+ {
|
|
|
|
+ $sq = 'SELECT qq.qid, qq.uid, qq.name, qq.query '
|
|
|
|
+ . 'FROM {%s} qq '
|
|
|
|
+ . 'WHERE qq.uid = %d '
|
|
|
|
+ . 'ORDER BY qq.name ';
|
|
|
|
+ $q = db_query($sq, QBF_TABLE_NAME, $uid);
|
|
|
|
+ $ret = array();
|
|
|
|
+ while ($o = db_fetch_object($q))
|
|
|
|
+ {
|
|
|
|
+ $ret[$o->qid] = $o; // qid is the PK, so it is present and unique
|
|
|
|
+ }
|
|
|
|
+ return $ret;
|
|
}
|
|
}
|