--- flexinode.module.old 2006-03-10 22:59:42.000000000 +0000 +++ flexinode.module 2007-01-02 10:57:09.000000000 +0000 @@ -191,7 +191,7 @@ drupal_not_found(); } - if ($_POST['op'] == t('Search')) { + if ($_POST['op'] == t('Search') || isset($_GET['what'])) { return flexinode_page_table($ctype_id); } @@ -238,16 +238,28 @@ $extra_where = count($where_clauses) > 0 ? ' AND ' . implode(' AND ', $where_clauses) : ''; $sql = 'SELECT n.nid, n.title '. $extra_fields .' FROM {node} n '. implode(' ', $table_joins) ." WHERE n.status = 1 AND n.type = '$type'". $extra_where; - if ($_POST['op'] == t('Search')) { - $edit = $_POST['edit']; + if (isset($_POST['edit']) && $_POST['op'] == t('Search')) { + $params = $_POST['edit']; + $encoded_params = base64_encode(serialize($params)); + unset($_POST['edit']); + $_POST['what'] = $encoded_params; + } + else { + if (isset($_GET['what'])) { + $encoded_params = $_GET['what']; + $params = unserialize(base64_decode($encoded_params)); + } + } + + if (isset($params)) { foreach ($ctype->fields as $field) { - $clause = flexinode_invoke('search_clause', $field, $edit); + $clause = flexinode_invoke('search_clause', $field, $params); if ($clause) { $sql .= ' AND '. $clause; } } - $search = db_escape_string($edit['search']); + $search = db_escape_string($params['search']); if ($search) { $sql .= " AND (n.title LIKE '%". $search ."%'"; foreach ($ctype->fields as $field) {