Usar o módulo de dados jQuery para o Drupal 7
estou a tentar integrar uma lista paginada de utilizadores que é apenas um script PHP separado no momento em o meu novo site Drupal 7:
Estou a tentar implementá-lo como um menu Drupal, para poder chamá-lo de http://preferans.de/top (para ter a paginação offset de 0) e http://preferans.de/top/100 (para mostrar a lista de utilizadores a começar pelo 100º utilizador):function pref_menu() {
$items['top'] = array(
'title' => 'Weekly player rating',
'description' => 'Weekly player rating',
'page callback' => 'pref_top_callback',
'access callback' => TRUE,
'file' => 'pref.top.inc',
'file path' => drupal_get_path('module', 'pref'),
'type' => MENU_CALLBACK,
);
return $items;
}
e o meu simples pref.superior.o ficheiro inc é:
function pref_top_callback($offset = 0) {
return array(
'pref_players_table' => array(
'#type' => 'markup',
'#markup' => pref_players_table($offset),
),
);
}
function pref_fetch_players($offset) {
/* FETCH MAX 20 RECORDS INTO AN ARRAY */
$players = array();
$result = db_query("
select u.id,
u.first_name,
row_number() OVER (order by m.money desc) as pos,
u.female,
u.city,
u.avatar,
m.money,
u.login > u.logout as online
from pref_users u, pref_money m where
m.yw=to_char(current_timestamp, 'IYYY-IW') and
u.id=m.id
order by m.money desc
limit 20 offset :offset
", array(':offset' => array($offset)),
array('fetch' => PDO::FETCH_ASSOC)
);
$players = $result->fetchAll();
/* PRINT THE ARRAY AS AN HMTL-TABLE */
$table = '<table>';
foreach ($players as $user) {
$table .= '<tr>';
$table .= sprintf('<td>%u</td>
<td><a href="/user.php?id=%s">%s</a></td>
<td>%s</td><td>%d $</td>',
$user['pos'],
$user['id'],
$user['first_name'],
$user['city'],
$user['money']);
$table .= '</tr>';
}
$table .= '</table>';
return $table;
}
isto funciona, eu recebo uma página Drupal com uma tabela HTML contendo até 20 linhas:
mas não faço ideia de como usar O módulo Drupal de Dados . Eu baixei e instalei com sucesso e estou olhando para o seu código fonte, mas não sei por onde começar.
Por favor, ajude-me. eu, como posso chamá-lo da minha função de menu? Obrigado! Alex1 answers
Esse módulo é um plugin de vistas, você terá de expor a sua tabela a vistas para ser capaz de usá-lo.
Dependendo do que você quer, você também pode obter uma tabela de várias páginas com apenas o núcleo Drupal, veja https://drupal.stackexchange.com/questions/364/how-do-you-make-sortable-tables-with-a-pager-with-data-from-a-custom-table/367#367{[6]sobre como você precisa construir sua consulta para fazer isso.Algumas outras dicas sobre o seu código:
"$players = $result - >fetchAll (); " is desnecessário. Você pode iterar diretamente sobre o resultado de$.
Além disso, você quer usar o tema('table'). Então, só precisas disto no teu anzol.
<?php
$rows = array();
$header = array(t('Position'), t('Id'), t('First name'), t('City'), t('Money'));
foreach ($result as $player) {
$rows[] = array($player['pos'], $player['id'], $player['first_name'], $player['city'], $player['money']);
}
return theme('table', array('rows' => $rows, 'header' => $header));
?>
Para além disso, terá de definir a lista $header, que está descrita em theme_table() (veja o campo e ordenar as teclas em $header).