$ git clone https://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 />