Hi!
Szeretnék a modulomban egy lekérdezés menüt. Megadja a user a paramétereket és utána hogy érdemes generálni a HTML táblázatot az eredmény megjelenítésére?
Csak az elv érdekelne.
A lenti kód egy korábbi fórumtéma demokód részlete. Gyakorlatilag elég, ha a listazas() függvénynek átadásra kerül a szükséges paraméter? Ez jó megoldás?
G.
<?php function listazas() { $header = array( array('data' => t('User name'), 'field' => 'u.name', 'sort' => 'asc'), array('data' => t('Mail'), 'field' => 'u.mail'), array('data' => t('Operations'), 'colspan' => 2), ); $form['header'] = array( '#type' => 'value', '#value' => $header, ); $sql = 'SELECT * FROM {users} u WHERE u.uid > 0'; $sql .= tablesort_sql($header); $result = pager_query($sql, 50, 0); $form['user']['#tree'] = TRUE; while ($user = db_fetch_object($result)) { $form['user'][$user->uid] = users_row($user); } $form['pager'] = array('#value' => theme('pager', NULL, 50, 0)); $form['#theme'] = 'listazas'; return $form; } function users_row($user) { $form['name'] = array( '#type' => 'markup', '#value' => $user->name, ); $form['mail'] = array( '#type' => 'markup', '#value' => $user->mail, ); $edit_link = (0) ? '' : l(t('Edit'), 'lista/edit/'. $user->uid); $form['edit_user'] = array( '#type' => 'markup', '#value' => $edit_link, ); $delete_link = (0) ? '' : l(t('Delete'), 'lista/delete/'. $user->uid); $form['delete_user'] = array( '#type' => 'markup', '#value' => $delete_link, ); return $form; } function theme_listazas($form) { $header = $form['header']['#value']; $rows = array(); foreach (element_children($form['user']) as $key) { // Build the table row. $rows[] = array( array('data' => drupal_render($form['user'][$key]['name'])), array('data' => drupal_render($form['user'][$key]['mail'])), array('data' => drupal_render($form['user'][$key]['edit_user'])), array('data' => drupal_render($form['user'][$key]['delete_user'])), ); } $output = theme('table', $header, $rows); if ($form['pager']['#value']) { $output .= drupal_render($form['pager']); } $output .= drupal_render($form); return $output; } ?>
Drupal verzió:
Fórum:
igen
pl status alapjan (active, blocked)
de ha a lista nem egy extrem admin felulet akkor inkabb a views modullal keszitenem a listat..
views modul
mire is jó a views module (http://drupal.org/project/views)? Views=nézetek?
Egy SQL query-t lehet vele készíteni?
G.
igen
Igen, többek közt... bátran próbáld is ki! :)
Választ szeretnél? - Új kérdés, új téma - Tesztoldal - Trollkezelés - Frissítés
nem
Kattingatós felületen tudsz összerakni bármilyen listát(tartalom, felhasználó, taxonomy stb. ami meg van valósítva benne.) a megadott szempontok alapján. (de nem bármilyen sql-t)
pp
Palócz István
https://palocz.hu | https://tanarurkerem.hu
nem bármilyet
de azért egy ilyet elég könnyen :)
-
clear: both;
magam irnék query-t
Magam irnék egy query-t.
A form_submit-ban szeretném meghívni a listazas függvényt, de a form függvényre ugrik.
Mit csinálok rosszul? A submit-ban hogyan tudom meghivni a listazas függvényt?
G.
atiranyitas
ugyanaz
A helyzet nem változott. Önmagát hivja meg. :O
A $form_state['redirect'] = 'base/lekerd/ugylekerd/'. $adat;
hogyan fogja meghívni az ugylekerd_listazas($form_state, $adat) függvényt?
Nem egészen világos. :(
Vagy kell egy menu item a .module-ban ehhez?
G.
mindig minden útvonalhoz kell a hook_menu -ben bejegyzés
az regisztrálja az útvonalat és meghatározza, hogy mi történjen (jelen esetben fusson az ugylekerd_listazas fgv) amikor az adott útvonalat látogatja meg valaki. enélkül a drupal honnan tudná, hogy melyik útvonallal mit kell kezdenie?
-
clear: both;
igen
igen.
:)
Pl.:
működik :)
Köszi, működik.
Egy kérdés maradt...
Az
ugylekerd_listazas($form_state, $adat)
miért is kell a $form_state (első) paraméternek?
Ha kihagyom nem jól működik, az $adat egy tömb (array) lesz. Ekkor ő lesz a $form_state?
G.
igen
ha drupal_get_form-al hivsz meg egy php fuggvenyt akkor a fuggveny elso parametere a $form_state.