Reply to comment

Webform Einträge durchsuchen

Bei umfangreichen Webform-Formularen und über 100 Einträgen (Submissions) wird es schwer gezielt Einträge wiederzufinden. Deswegen habe ich mal angefangen ein Minimodul zu erstellen das den hook_search von Drupal nutzt um die Daten der Webformeinträge zu durchsuchen.

Mit folgender Funktion lassen sich bereits eingegebene Daten finden. Um die Webform-Suche zu nutzen muss die Funktion in ein eigenes Modul gepackt und über Drupal aktiviert werden. Dann findet man in der Drupalsuche einen neuen Reiter "Webform".

<?php
function webform_search($op = 'search', $keys = NULL) {
  switch (
$op) {
    case
'name':
      if (
user_access('access webform results')) {
        return
t('Webform');
      }
    case
'search':
     
$find = array();
     
// Replace wildcards with MySQL/PostgreSQL wildcards.
     
$keys = preg_replace('!\*+!', '%', $keys);
     
$query = "SELECT s.sid, s.nid, GROUP_CONCAT(sd.data) as data
        FROM {webform_submissions} s
        LEFT JOIN {webform_submitted_data} sd ON sd.sid = s.sid
        WHERE LOWER(data) LIKE LOWER('%%%s%%')
        GROUP BY s.sid"
;
     
$result = pager_query($query, 15, 0, NULL, $keys);
     
      while (
$submission = db_fetch_object($result)) {
       
$find[] = array('title' => t('Submission #') . $submission->sid, 'link' => url('node/'. $submission->nid . '/submission/' . $submission->sid, NULL, NULL, TRUE));
      }
      return
$find;
  }
}
?>

Die Funktion ist allerdings nur ein erster Entwurf, es fehlen noch Zugriffsbeschränkungen, etc. Smiling

Trackback URL for this post:

http://www.pebosi.net/trackback/128

Reply

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.
  • You may post code using <code>...</code> (generic) or <?php ... ?> (highlighted PHP) tags.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Textual smileys will be replaced with graphical ones.

More information about formatting options