[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