[support] pager_query eredmény szűrés (drupal 5)

Szurmik Csaba mhn at mhn.hu
2009. Feb. 16., H, 18:01:30 CET


Sziasztok!

Egy olyan modulon dolgozom, ami különböző statisztikákat mutat az oldalról.
Találtam egy pager_query függvényt ami nagyon, jó mert oldalakra bontott 
rendezhető táblában adja vissza a lekérdezés eredményét.
Viszont én szeretnék bele egy szűrő rendszert. (pl. csak az aktív 
usereket listázza, azaz a saját user táblámban a status mező 1)
A szűrőket a form api-val készíteném el.
A modul ezen a címen érhető el: /stat/users Ehhez tartozik egy 
stat_users callback

function stat_users($status=NULL, $type=NULL) {
  $output = drupal_get_form('stat_users_form', $status, $type);
 
  $header = array(
        array('data' => t('user_id'), 'field' => 'user_id'),
        array('data' => t('status'), 'field' => 'status'),
  );
 /*
*  ide jön majd kód, ami összerakja a query-t a szűrési feltételekkel
*/
  $query = "SELECT * FROM users". tablesort_sql($header);
  $result = pager_query($query, 50, 0, NULL);
  while ($row = db_fetch_object($result)) {
    $rows[] = array($row->user_id,
                    $row->status,
                    $row->type,
                    );
  }
  $output .= '<div id="stat_users" class="stat_list">';
  $output .= theme('table', $header, $rows);
  $output .= theme('pager', NULL, 50, 0);
  $output .= '</div>';
 
  return $output;
}
Úgy terveztem, h amit a stat_users_from-ban megadok, pl. status 1, azt 
a  fenti querybe belerakom.
Mégpedig úgy, hogy a stat_users_form_submit függvény végén meghívom a
drupal_goto('/stat/users/'.$form_values['status'].'/'.$form_values['type']) 
függvényt.

A rendezést úgy csinálja a rendszer, h az url végére pl. a 
"?sort=asc&order=status" stringet illeszti.
Ezért én ezt a stat_users_form-ban a $_GET változóból kiszedem, egy 
hidden mezőben tovább küldöm a _submit-nak,
majd hozzáillesztem a drupal_goto függvényben az urlhez.

$url = 
'stat/users/'.$form_values['status'].'/'.$form_values['type'].'?sort='.$form_values['sort_order'].'&order='.$form_values['sort_field'];

Az a problémám, h a fenti url-ből ez lesz: 
stat/users/1/free%3Fsort%3Dasc%2526order%3Dstatus
ehelyett: stat/users/1/free?sort=asc&order=status

Szval az első kérdésem, h az url-t hogy alakítsam ki, h a vége 
megmaradjon ilyennek: ?sort=asc&order=status.

Bár nem tutter, hogy jó irányból közelítem meg az alapkérdést 
(pager_query eredmény szűrés),
szval ha van vkinek jobb ötlete az  alapproblémára akkor szóljon bátran :).
(nem feltétlenül konkrét kód, csak valami irányelv, h merre is kellene 
elindulni)

Előre is köszönöm!

üdv,
Csaba







További információk a(z) support levelezőlistáról