From fd1f8fb4361b415defa8d6da2c93d2f19fb59ba1 Mon Sep 17 00:00:00 2001
From: Michael Johnston <michaelgeorgejohnston@gmail.com>
Date: Fri, 9 Mar 2012 21:29:39 -0500
Subject: [PATCH] allow user to set number of items to show on network page

---
 mod/network.php   | 3 ++-
 mod/settings.php  | 9 +++++++++
 view/settings.tpl | 1 +
 3 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/mod/network.php b/mod/network.php
index 27c6e315b8..b04a7b4890 100755
--- a/mod/network.php
+++ b/mod/network.php
@@ -403,7 +403,8 @@ function network_content(&$a, $update = 0) {
 
 		if(count($r)) {
 			$a->set_pager_total($r[0]['total']);
-			$a->set_pager_itemspage(40);
+	                $itemspage_network = get_pconfig(local_user(),'system','itemspage_network');
+                        $a->set_pager_itemspage(((intval($itemspage_network)) ? $itemspage_network : 40));
 		}
 		$pager_sql = sprintf(" LIMIT %d, %d ",intval($a->pager['start']), intval($a->pager['itemspage']));
 	}
diff --git a/mod/settings.php b/mod/settings.php
index a9d00bc981..2ef582fdfe 100755
--- a/mod/settings.php
+++ b/mod/settings.php
@@ -237,6 +237,10 @@ function settings_post(&$a) {
 	if($browser_update < 10000)
 		$browser_update = 40000;
 
+	$itemspage_network   = ((x($_POST,'itemspage_network')) ? intval($_POST['itemspage_network']) : 40);
+	if($itemspage_network > 100)
+                $itemspage_network = 40;
+
 
 	$allow_location   = (((x($_POST,'allow_location')) && (intval($_POST['allow_location']) == 1)) ? 1: 0);
 	$publish          = (((x($_POST,'profile_in_directory')) && (intval($_POST['profile_in_directory']) == 1)) ? 1: 0);
@@ -331,6 +335,7 @@ function settings_post(&$a) {
 
 	set_pconfig(local_user(),'system','suggestme', $suggestme);
 	set_pconfig(local_user(),'system','update_interval', $browser_update);
+	set_pconfig(local_user(),'system','itemspage_network', $itemspage_network);
 
 	$r = q("UPDATE `user` SET `username` = '%s', `email` = '%s', `openid` = '%s', `timezone` = '%s',  `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s', `notify-flags` = %d, `page-flags` = %d, `default-location` = '%s', `allow_location` = %d, `theme` = '%s', `maxreq` = %d, `expire` = %d, `openidserver` = '%s', `blockwall` = %d, `hidewall` = %d, `blocktags` = %d  WHERE `uid` = %d LIMIT 1",
 			dbesc($username),
@@ -648,6 +653,9 @@ function settings_content(&$a) {
 
 	$browser_update = intval(get_pconfig(local_user(), 'system','update_interval'));
 	$browser_update = (($browser_update == 0) ? 40 : $browser_update / 1000); // default if not set: 40 seconds
+
+	$itemspage_network = intval(get_pconfig(local_user(), 'system','itemspage_network'));
+	$itemspage_network = (($itemspage_network > 0 && $itemspage_network < 101) ? $itemspage_network : 40); // default if not set: 40 items
 	
 	if(! strlen($a->user['timezone']))
 		$timezone = date_default_timezone_get();
@@ -814,6 +822,7 @@ function settings_content(&$a) {
 		'$allowloc' => array('allow_location', t('Use Browser Location:'), ($a->user['allow_location'] == 1), ''),
 		'$theme'	=> array('theme', t('Display Theme:'), $theme_selected, '', $themes),
 		'$ajaxint'   => array('browser_update',  t("Update browser every xx seconds"), $browser_update, t('Minimum of 10 seconds, no maximum')),
+		'$itemspage_network'   => array('itemspage_network',  t("Number of items to display on the network page:"), $itemspage_network, t('Maximum of 100 items')),
 
 		'$h_prv' 	=> t('Security and Privacy Settings'),
 
diff --git a/view/settings.tpl b/view/settings.tpl
index b7f427b324..46c737b23a 100755
--- a/view/settings.tpl
+++ b/view/settings.tpl
@@ -30,6 +30,7 @@ $nickname_block
 {{inc field_checkbox.tpl with $field=$allowloc }}{{endinc}}
 {{inc field_select.tpl with $field=$theme }}{{endinc}}
 {{inc field_input.tpl with $field=$ajaxint }}{{endinc}}
+{{inc field_input.tpl with $field=$itemspage_network }}{{endinc}}
 
 
 <div class="settings-submit-wrapper" >