Paginate all sections.
[readifood.git] / lib / contact.php
index fdbd169..ee9f3e0 100644 (file)
     echo ", " . $city->getLink(get_city_displayname($city));
   }
 
-  function show_contacts($offset, $per_page, $address_ids) {
+  function show_contacts($address_ids) {
+    list($first_page, $per_page) = pagination();
     $q = new ContactQuery;
-    $contacts = $q->filterByAddressId($address_ids)->orderByForename()->orderBySurname()->find();
+    $contacts = $q->filterByAddressId($address_ids)->orderByForename()->orderBySurname()->orderById('desc')->paginate($first_page, $per_page);
     if (count($contacts)) {
       foreach ($contacts as $contact) show_contact_summary($contact);
+      show_pagination($contacts);
     }
     else echo " none";
   }
 
-  function search_contacts($offset, $per_page, $search) {
+  function search_contacts($search) {
+    list($first_page, $per_page) = pagination();
     $q = new ContactQuery;
-    $contacts = $q->filterByDisplayname("%$search%")->find();
+    $contacts = $q->filterByDisplayname("%$search%")->orderByForename()->orderBySurname()->orderById('desc')->paginate($first_page, $per_page);
     echo "<p>Contacts matching '" . htmlspecialchars($search) . "':";
     if (count($contacts)) {
       foreach ($contacts as $contact) show_contact_summary($contact);
+      show_pagination($contacts);
     }
     else echo "none";
     echo "</p>\n";
     foreach ($addresses as $address) $address_ids[] = $address->getId();
 
     $q = new ContactQuery;
-    $contacts = $q->filterByAddressId($address_ids)->find();
+    $contacts = $q->filterByAddressId($address_ids)->orderByForename()->orderBySurname()->orderById('desc')->paginate($first_page, $per_page);
     echo "<p>Contacts in address '" . htmlspecialchars($search) . "':";
     if (count($contacts)) {
       foreach ($contacts as $contact) show_contact_summary($contact);
+      show_pagination($contacts);
     }
     else echo "none";
     echo "</p>\n";
   }
 
-  function show_city_contacts($offset, $per_page, $city_name, $city_id = null) {
+  function show_city_contacts($city_name, $city_id = null) {
     if (isset($city_id)) $city = get_city_by_id($city_id);
     else if ($city_name) $city = get_city_by_name($city_name);
     if ($city) {
       foreach ($addresses as $address) $address_ids[] = $address->getId();
 
       echo "<p>Contacts in city " . $city->getLink(get_city_displayname($city)) . ":";
-      return show_contacts($offset, $per_page, $address_ids);
+      return show_contacts($address_ids);
     }
     else echo "<p>No such city!</p>\n";
   }
 
-  function show_area_contacts($offset, $per_page, $area_name, $area_id = null) {
+  function show_area_contacts($area_name, $area_id = null) {
     if (isset($area_id)) $area = get_area_by_id($area_id);
     else if ($area_name) $area = get_area_by_name($area_name);
     if ($area) {
       foreach ($addresses as $address) $address_ids[] = $address->getId();
 
       echo "<p>Contacts in area " . $area->getLink() . ":";
-      return show_contacts($offset, $per_page, $address_ids);
+      return show_contacts($address_ids);
     }
     else echo "<p>No such area!</p>\n";
   }
           $area = $q->findOneById($area_id);
           $city = get_area_city($area);
           if ($city) $city_id = $city->getId();
-          show_area_contacts(0, 10, $parameters[2], $area_id);
+          show_area_contacts($parameters[2], $area_id);
         break;
 
         case "city":
           $_POST['city_id'] = $city_id;
           $q = new CityQuery;
           $city = $q->findOneById($city_id);
-          show_city_contacts(0, 10, $parameters[2], $city_id);
+          show_city_contacts($parameters[2], $city_id);
         break;
       }
     }
     else if ($parameters[0] == "search") {
-      search_contacts(0, 10, urldecode($parameters[1]));
+      search_contacts(urldecode($parameters[1]));
     }
   }
   list($name, $id, $args) = parse_parameters($parameters);