Posted by Lumiere@drupalfr.org on July 16, 2008 at 2:50pm
i am developping a patch for epublish module, and i want to page the publications in stead of listing a big list and i dont know how to include the theme('pager') function. the code will sounds odd for those who are not indulged in the epublish's module codes.
Thanks for ur help in advance
<?php
$order = variable_get('epublish_edition_order', 'DESC');
$publications = db_query("SELECT * FROM {epublish_publication}");
$header = array(t('publication/editions'), array("data" => t("operations"), "colspan" => 2));
while ($publication = db_fetch_object($publications)) {
$rows[] = array(l('<b>' . t($publication->name) . '</b>', "epublish/$publication->pid", array(), NULL, NULL, FALSE, TRUE),
l(t("edit publication"), "admin/epublish/edit/publication/$publication->pid"),
l(t("add edition"), "admin/epublish/add/edition/$publication->pid")
);
$sql = "SELECT * FROM {epublish_edition} WHERE pid='%d' ORDER BY volume $order, number $order, pubdate $order, eid $order", $publication->pid);
$countsql = "SELECT COUNT(*) FROM {epublish_edition} WHERE pid='%d'";
$sql .= tablesort_sql($header);
$result = pager_query($sql, 5,0,$countsql);
$previous_volume = -1;
$editions = array();
while ($edition = db_fetch_object($result)) {
if ($edition->volume != $previous_volume) {
if ($previous_volume != -1) {
$rows[] = array(implode('<br />', $editions), array('data' => t('volume name: ') . l(theme('epublish_volume_reference', $publication->pid, $previous_volume), "admin/epublish/edit/volume/$publication->pid/$previous_volume"), 'colspan' => 2));
$editions = array();
}
}
$editions[] = '-' . theme('epublish_edition_reference', $edition) . ' (' . l(t('edit edition'), "admin/epublish/edit/edition/$edition->eid") . ')';
$previous_volume = $edition->volume;
}
if ($editions) {
$rows[] = array(implode('<br />', $editions), array('data' => t('volume name: ') . l(theme('epublish_volume_reference', $publication->pid, $previous_volume), "admin/epublish/edit/volume/$publication->pid/$previous_volume"), 'colspan' => 2));
}
}
$output = theme("table", $header, $rows);
$output.=theme('pager', "epublish/$pid/v$volume", 10, 0);
return $output;
?>