$ git clone http://thingshare.ion.nu/thingshare.git
commit 7e509c224566401229801bc8f7b258e04cecb76d
Author: Alicia <...>
Date:   Fri Mar 20 07:08:58 2020 +0100

    Implemented the "results per page" option in search.

diff --git a/search.php b/search.php
index cb3f646..b2a8c3c 100644
--- a/search.php
+++ b/search.php
@@ -24,7 +24,7 @@ include_once('rpc.php');
 $peers=Array(DOMAIN);
 $res=mysqli_query($db, 'select domain from peers where !blacklist');
 while($row=mysqli_fetch_row($res)){$peers[]=$row[0];}
-$perpage=20;
+$perpage=(isset($_GET['perpage'])?(int)$_GET['perpage']:20);
 $page=(int)(isset($_GET['page'])?$_GET['page']:0);
 $perpeer=round($perpage/count($peers));
 $sortby=(isset($_GET['sort'])?$_GET['sort']:'new');
@@ -34,9 +34,15 @@ $res=rpc_search($peers, 'search/'.urlencode($_GET['q']).'/'.urlencode($sortby).'
 $pagefull=false;
 foreach($res as $r){if(count($r)==$perpeer){$pagefull=true;}}
 $pagenav='';
-if($page>1){$pagenav.='<a href="?q='.urlencode($_GET['q']).'" class="pagenav">'._('First page').'</a>';}
-if($page>0){$pagenav.='<a href="?q='.urlencode($_GET['q']).'&page='.($page-1).'" class="pagenav">'._('Previous page').'</a>';}
-if($pagefull){$pagenav.='<a href="?q='.urlencode($_GET['q']).'&page='.($page+1).'" class="pagenav">'._('Next page').'</a>';}
+$getvariables='';
+foreach($_GET as $k=>$v)
+{
+  if($k=='page'){continue;}
+  $getvariables.=urlencode($k).'='.urlencode($v).'&';
+}
+if($page>1){$pagenav.='<a href="?'.$getvariables.'" class="pagenav">'._('First page').'</a>';}
+if($page>0){$pagenav.='<a href="?'.$getvariables.'page='.($page-1).'" class="pagenav">'._('Previous page').'</a>';}
+if($pagefull){$pagenav.='<a href="?'.$getvariables.'page='.($page+1).'" class="pagenav">'._('Next page').'</a>';}
 
 // Flatten the results into a single array with peer information for each item
 $results=Array();
@@ -75,7 +81,11 @@ foreach($results as $thing)
 }
 ?>
 <div class="sidebar">
-  <?=_('Results per page (approximately. TODO):')?> <input type="number" name="perpage" value="<?=$perpage?>" /><br />
+  <form>
+    <input type="hidden" name="q" value="<?=(isset($_GET['q'])?$_GET['q']:'')?>" />
+    <?=_('Results per page (approximately):')?> <input type="number" name="perpage" value="<?=$perpage?>" /><br />
+    <button><?=_('Update')?></button>
+  </form>
   <p>
     <h4><?=_('Advanced search options')?></h4>
     <?=_('To search for something specifically in the name:')?> <span class="code">name:searchterm</span><br />