diff options
author | Haakon Meland Eriksen <haakon.eriksen@far.no> | 2016-02-18 20:33:25 +0100 |
---|---|---|
committer | Haakon Meland Eriksen <haakon.eriksen@far.no> | 2016-02-18 20:33:25 +0100 |
commit | cc264b2d60049a844fe17322fbcb367712a7071f (patch) | |
tree | f1f069a49dd186d4cf21c37a25fb794d6d53e6f2 /mod | |
parent | b77c5ae61e5a208daf4b9431a730db874c487e32 (diff) | |
parent | 33c34984e647f48452d53b93b635f6f517a0f392 (diff) | |
download | volse-hubzilla-cc264b2d60049a844fe17322fbcb367712a7071f.tar.gz volse-hubzilla-cc264b2d60049a844fe17322fbcb367712a7071f.tar.bz2 volse-hubzilla-cc264b2d60049a844fe17322fbcb367712a7071f.zip |
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'mod')
-rw-r--r-- | mod/admin.php | 6 | ||||
-rw-r--r-- | mod/connedit.php | 66 | ||||
-rw-r--r-- | mod/item.php | 10 | ||||
-rw-r--r-- | mod/new_channel.php | 2 | ||||
-rw-r--r-- | mod/pdledit.php | 3 | ||||
-rw-r--r-- | mod/profile_photo.php | 54 | ||||
-rw-r--r-- | mod/register.php | 10 | ||||
-rw-r--r-- | mod/settings.php | 8 |
8 files changed, 64 insertions, 95 deletions
diff --git a/mod/admin.php b/mod/admin.php index 09bfef84a..5195db320 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -7,7 +7,7 @@ */ require_once('include/queue_fn.php'); - +require_once('include/account.php'); /** * @param App &$a @@ -861,13 +861,13 @@ function admin_page_users_post($a) { // registration approved button was submitted if (x($_POST, 'page_users_approve')) { foreach ($pending as $hash) { - user_allow($hash); + account_allow($hash); } } // registration deny button was submitted if (x($_POST, 'page_users_deny')) { foreach ($pending as $hash) { - user_deny($hash); + account_deny($hash); } } diff --git a/mod/connedit.php b/mod/connedit.php index cb785fc31..d50783d31 100644 --- a/mod/connedit.php +++ b/mod/connedit.php @@ -25,7 +25,7 @@ function connedit_init(&$a) { return; if((argc() >= 2) && intval(argv(1))) { - $r = q("SELECT abook.*, xchan.* + $r = q("SELECT abook.*, xchan.* FROM abook left join xchan on abook_xchan = xchan_hash WHERE abook_channel = %d and abook_id = %d LIMIT 1", intval(local_channel()), @@ -58,14 +58,14 @@ function connedit_post(&$a) { $channel = $a->get_channel(); // TODO if configured for hassle-free permissions, we'll post the form with ajax as soon as the - // connection enable is toggled to a special autopost url and set permissions immediately, leaving - // the other form elements alone pending a manual submit of the form. The downside is that there + // connection enable is toggled to a special autopost url and set permissions immediately, leaving + // the other form elements alone pending a manual submit of the form. The downside is that there // will be a window of opportunity when the permissions have been set but before you've had a chance // to review and possibly restrict them. The upside is we won't have to warn you that your connection - // can't do anything until you save the bloody form. + // can't do anything until you save the bloody form. $autopost = (((argc() > 2) && (argv(2) === 'auto')) ? true : false); - + $orig_record = q("SELECT * FROM abook WHERE abook_id = %d AND abook_channel = %d LIMIT 1", intval($contact_id), intval(local_channel()) @@ -145,7 +145,7 @@ function connedit_post(&$a) { if($z) { $record = $z[0]['xlink_id']; - $w = q("update xlink set xlink_rating = '%d', xlink_rating_text = '%s', xlink_sig = '%s', xlink_updated = '%s' + $w = q("update xlink set xlink_rating = '%d', xlink_rating_text = '%s', xlink_sig = '%s', xlink_updated = '%s' where xlink_id = %d", intval($rating), dbesc($rating_text), @@ -172,7 +172,7 @@ function connedit_post(&$a) { } if($record) { proc_run('php','include/ratenotif.php','rating',$record); - } + } } if(($_REQUEST['pending']) && intval($orig_record[0]['abook_pending'])) { @@ -181,7 +181,7 @@ function connedit_post(&$a) { // @fixme it won't be common, but when you accept a new connection request // the permissions will now be that of your permissions role and ignore // any you may have set manually on the form. We'll probably see a bug if somebody - // tries to set the permissions *and* approve the connection in the same + // tries to set the permissions *and* approve the connection in the same // request. The workaround is to approve the connection, then go back and // adjust permissions as desired. @@ -210,7 +210,7 @@ function connedit_post(&$a) { intval(local_channel()) ); - if($orig_record[0]['abook_profile'] != $profile_id) { + if($orig_record[0]['abook_profile'] != $profile_id) { //Update profile photo permissions logger('A new profile was assigned - updating profile photos'); @@ -224,7 +224,7 @@ function connedit_post(&$a) { else notice( t('Failed to update connection record.') . EOL); - if($a->poi && $a->poi['abook_my_perms'] != $abook_my_perms + if($a->poi && $a->poi['abook_my_perms'] != $abook_my_perms && (! intval($a->poi['abook_self']))) { proc_run('php', 'include/notifier.php', (($new_friend) ? 'permission_create' : 'permission_update'), $contact_id); } @@ -238,8 +238,8 @@ function connedit_post(&$a) { group_add_member(local_channel(),'',$a->poi['abook_xchan'],$g['id']); } - // Check if settings permit ("post new friend activity" is allowed, and - // friends in general or this friend in particular aren't hidden) + // Check if settings permit ("post new friend activity" is allowed, and + // friends in general or this friend in particular aren't hidden) // and send out a new friend activity $pr = q("select * from profile where uid = %d and is_default = 1 and hide_friends = 0", @@ -285,7 +285,7 @@ function connedit_post(&$a) { // Refresh the structure in memory with the new data - $r = q("SELECT abook.*, xchan.* + $r = q("SELECT abook.*, xchan.* FROM abook left join xchan on abook_xchan = xchan_hash WHERE abook_channel = %d and abook_id = %d LIMIT 1", intval(local_channel()), @@ -300,7 +300,7 @@ function connedit_post(&$a) { call_hooks('accept_follow', $arr); } - if(! is_null($autoperms)) + if(! is_null($autoperms)) set_pconfig(local_channel(),'system','autoperms',(($autoperms) ? $abook_my_perms : 0)); connedit_clone($a); @@ -322,7 +322,7 @@ function connedit_clone(&$a) { if(! $a->poi) return; - $r = q("SELECT abook.*, xchan.* + $r = q("SELECT abook.*, xchan.* FROM abook left join xchan on abook_xchan = xchan_hash WHERE abook_channel = %d and abook_id = %d LIMIT 1", intval(local_channel()), @@ -365,6 +365,8 @@ function connedit_content(&$a) { $my_perms = $x['perms_accept']; } + $yes_no = array(t('No'),t('Yes')); + if($my_perms) { $o .= "<script>function connectDefaultShare() { \$('.abook-edit-me').each(function() { @@ -398,7 +400,7 @@ function connedit_content(&$a) { notice( t('Could not access address book record.') . EOL); goaway($a->get_baseurl(true) . '/connections'); } - + if($cmd === 'update') { // pull feed and consume it, which should subscribe to the hub. proc_run('php',"include/poller.php","$contact_id"); @@ -408,7 +410,7 @@ function connedit_content(&$a) { if($cmd === 'refresh') { if($orig_record[0]['xchan_network'] === 'zot') { - if(! zot_refresh($orig_record[0],get_app()->get_channel())) + if(! zot_refresh($orig_record[0],get_app()->get_channel())) notice( t('Refresh failed - channel is currently unavailable.') ); } else { @@ -475,13 +477,13 @@ function connedit_content(&$a) { require_once('include/Contact.php'); // FIXME -// We need to send either a purge or a refresh packet to the other side (the channel being unfriended). +// We need to send either a purge or a refresh packet to the other side (the channel being unfriended). // The issue is that the abook DB record _may_ get destroyed when we call contact_remove. As the notifier runs // in the background there could be a race condition preventing this packet from being sent in all cases. // PLACEHOLDER contact_remove(local_channel(), $orig_record[0]['abook_id']); - build_sync_packet(0 /* use the current local_channel */, + build_sync_packet(0 /* use the current local_channel */, array('abook' => array(array( 'abook_xchan' => $orig_record[0]['abook_xchan'], 'entry_deleted' => true)) @@ -505,28 +507,28 @@ function connedit_content(&$a) { 'view' => array( 'label' => t('View Profile'), - 'url' => chanlink_cid($contact['abook_id']), + 'url' => chanlink_cid($contact['abook_id']), 'sel' => '', 'title' => sprintf( t('View %s\'s profile'), $contact['xchan_name']), ), 'refresh' => array( 'label' => t('Refresh Permissions'), - 'url' => $a->get_baseurl(true) . '/connedit/' . $contact['abook_id'] . '/refresh', + 'url' => $a->get_baseurl(true) . '/connedit/' . $contact['abook_id'] . '/refresh', 'sel' => '', 'title' => t('Fetch updated permissions'), ), 'recent' => array( 'label' => t('Recent Activity'), - 'url' => $a->get_baseurl(true) . '/network/?f=&cid=' . $contact['abook_id'], + 'url' => $a->get_baseurl(true) . '/network/?f=&cid=' . $contact['abook_id'], 'sel' => '', 'title' => t('View recent posts and comments'), ), 'block' => array( 'label' => (intval($contact['abook_blocked']) ? t('Unblock') : t('Block')), - 'url' => $a->get_baseurl(true) . '/connedit/' . $contact['abook_id'] . '/block', + 'url' => $a->get_baseurl(true) . '/connedit/' . $contact['abook_id'] . '/block', 'sel' => (intval($contact['abook_blocked']) ? 'active' : ''), 'title' => t('Block (or Unblock) all communications with this connection'), 'info' => (intval($contact['abook_blocked']) ? t('This connection is blocked!') : ''), @@ -534,7 +536,7 @@ function connedit_content(&$a) { 'ignore' => array( 'label' => (intval($contact['abook_ignored']) ? t('Unignore') : t('Ignore')), - 'url' => $a->get_baseurl(true) . '/connedit/' . $contact['abook_id'] . '/ignore', + 'url' => $a->get_baseurl(true) . '/connedit/' . $contact['abook_id'] . '/ignore', 'sel' => (intval($contact['abook_ignored']) ? 'active' : ''), 'title' => t('Ignore (or Unignore) all inbound communications from this connection'), 'info' => (intval($contact['abook_ignored']) ? t('This connection is ignored!') : ''), @@ -542,7 +544,7 @@ function connedit_content(&$a) { 'archive' => array( 'label' => (intval($contact['abook_archived']) ? t('Unarchive') : t('Archive')), - 'url' => $a->get_baseurl(true) . '/connedit/' . $contact['abook_id'] . '/archive', + 'url' => $a->get_baseurl(true) . '/connedit/' . $contact['abook_id'] . '/archive', 'sel' => (intval($contact['abook_archived']) ? 'active' : ''), 'title' => t('Archive (or Unarchive) this connection - mark channel dead but keep content'), 'info' => (intval($contact['abook_archived']) ? t('This connection is archived!') : ''), @@ -550,7 +552,7 @@ function connedit_content(&$a) { 'hide' => array( 'label' => (intval($contact['abook_hidden']) ? t('Unhide') : t('Hide')), - 'url' => $a->get_baseurl(true) . '/connedit/' . $contact['abook_id'] . '/hide', + 'url' => $a->get_baseurl(true) . '/connedit/' . $contact['abook_id'] . '/hide', 'sel' => (intval($contact['abook_hidden']) ? 'active' : ''), 'title' => t('Hide or Unhide this connection from your other connections'), 'info' => (intval($contact['abook_hidden']) ? t('This connection is hidden!') : ''), @@ -558,7 +560,7 @@ function connedit_content(&$a) { 'delete' => array( 'label' => t('Delete'), - 'url' => $a->get_baseurl(true) . '/connedit/' . $contact['abook_id'] . '/drop', + 'url' => $a->get_baseurl(true) . '/connedit/' . $contact['abook_id'] . '/drop', 'sel' => '', 'title' => t('Delete this connection'), ), @@ -639,7 +641,7 @@ function connedit_content(&$a) { $channel = $a->get_channel(); $global_perms = get_perms(); - $existing = get_all_perms(local_channel(),$contact['abook_xchan']); + $existing = get_all_perms(local_channel(),$contact['abook_xchan']); $unapproved = array('pending', t('Approve this connection'), '', t('Accept connection to allow communication'), array(t('No'),('Yes'))); @@ -668,7 +670,7 @@ function connedit_content(&$a) { $locstr = ''; - $locs = q("select hubloc_addr as location from hubloc left join site on hubloc_url = site_url where hubloc_hash = '%s' + $locs = q("select hubloc_addr as location from hubloc left join site on hubloc_url = site_url where hubloc_hash = '%s' and hubloc_deleted = 0 and site_dead = 0", dbesc($contact['xchan_hash']) ); @@ -690,7 +692,7 @@ function connedit_content(&$a) { $o .= replace_macros($tpl,array( '$header' => (($self) ? t('Connection Default Permissions') : sprintf( t('Connection: %s'),$contact['xchan_name'])), - '$autoperms' => array('autoperms',t('Apply these permissions automatically'), ((get_pconfig(local_channel(),'system','autoperms')) ? 1 : 0), 'Connection requests will be approved without your interaction', array(t('No'),('Yes'))), + '$autoperms' => array('autoperms',t('Apply these permissions automatically'), ((get_pconfig(local_channel(),'system','autoperms')) ? 1 : 0), t('Connection requests will be approved without your interaction'), $yes_no), '$addr' => $contact['xchan_addr'], '$addr_text' => t('This connection\'s primary address is'), '$loc_text' => t('Available locations:'), @@ -705,8 +707,8 @@ function connedit_content(&$a) { '$lbl_rating_txt' => t('Optionally explain your rating'), '$connfilter' => feature_enabled(local_channel(),'connfilter'), '$connfilter_label' => t('Custom Filter'), - '$incl' => array('abook_incl',t('Only import posts with this text'), $contact['abook_incl'],t('words one per line or #tags or /patterns/ or lang=xx, leave blank to import all posts')), - '$excl' => array('abook_excl',t('Do not import posts with this text'), $contact['abook_excl'],t('words one per line or #tags or /patterns/ or lang=xx, leave blank to import all posts')), + '$incl' => array('abook_incl',t('Only import posts with this text'), $contact['abook_incl'],t('words one per line or #tags or /patterns/ or lang=xx, leave blank to import all posts')), + '$excl' => array('abook_excl',t('Do not import posts with this text'), $contact['abook_excl'],t('words one per line or #tags or /patterns/ or lang=xx, leave blank to import all posts')), '$rating_text' => array('rating_text', t('Optionally explain your rating'),$rating_text,''), '$rating_info' => t('This information is public!'), '$rating' => $rating, diff --git a/mod/item.php b/mod/item.php index fdc768c67..d861967a9 100644 --- a/mod/item.php +++ b/mod/item.php @@ -233,6 +233,8 @@ function item_post(&$a) { $post_id = $i[0]['iid']; } + $iconfig = null; + if($post_id) { $i = q("SELECT * FROM `item` WHERE `uid` = %d AND `id` = %d LIMIT 1", intval($profile_uid), @@ -241,6 +243,9 @@ function item_post(&$a) { if(! count($i)) killme(); $orig_post = $i[0]; + $iconfig = q("select * from iconfig where iid = %d", + intval($post_id) + ); } @@ -792,6 +797,9 @@ function item_post(&$a) { $datarray['plink'] = $plink; $datarray['route'] = $route; + if($iconfig) + $datarray['iconfig'] = $iconfig; + // preview mode - prepare the body for display and send it via json if($preview) { @@ -808,8 +816,6 @@ function item_post(&$a) { if($orig_post) $datarray['edit'] = true; - - if(feature_enabled($profile_uid,'suppress_duplicates') && (! $orig_post)) { $z = q("select created from item where uid = %d and body = '%s'", diff --git a/mod/new_channel.php b/mod/new_channel.php index 630984bf2..b22a5cacb 100644 --- a/mod/new_channel.php +++ b/mod/new_channel.php @@ -130,7 +130,7 @@ function new_channel_content(&$a) { '$title' => t('Add a Channel'), '$desc' => t('A channel is your own collection of related web pages. A channel can be used to hold social network profiles, blogs, conversation groups and forums, celebrity pages, and much more. You may create as many channels as your service provider allows.'), - '$label_name' => t('Channel Name'), + '$label_name' => t('Name'), '$help_name' => t('Examples: "Bob Jameson", "Lisa and her Horses", "Soccer", "Aviation Group" '), '$label_nick' => t('Choose a short nickname'), '$nick_hub' => '@' . str_replace(array('http://','https://','/'), '', get_config('system','baseurl')), diff --git a/mod/pdledit.php b/mod/pdledit.php index f2a25566a..bf29b2da0 100644 --- a/mod/pdledit.php +++ b/mod/pdledit.php @@ -26,6 +26,7 @@ function pdledit_content(&$a) { if(argc() > 1) $module = 'mod_' . argv(1) . '.pdl'; else { + $o .= '<div class="generic-content-wrapper-styled">'; $o .= '<h1>' . t('Edit System Page Description') . '</h1>'; $files = glob('mod/*'); if($files) { @@ -38,6 +39,8 @@ function pdledit_content(&$a) { } } + $o .= '</div>'; + // list module pdl files return $o; } diff --git a/mod/profile_photo.php b/mod/profile_photo.php index 0091d0585..9dc71f256 100644 --- a/mod/profile_photo.php +++ b/mod/profile_photo.php @@ -274,58 +274,6 @@ function profile_photo_post(&$a) { } -function send_profile_photo_activity($channel,$photo,$profile) { - - // for now only create activities for the default profile - - if(! intval($profile['is_default'])) - return; - - $arr = array(); - $arr['item_thread_top'] = 1; - $arr['item_origin'] = 1; - $arr['item_wall'] = 1; - $arr['obj_type'] = ACTIVITY_OBJ_PHOTO; - $arr['verb'] = ACTIVITY_UPDATE; - - $arr['object'] = json_encode(array( - 'type' => $arr['obj_type'], - 'id' => z_root() . '/photo/profile/l/' . $channel['channel_id'], - 'link' => array('rel' => 'photo', 'type' => $photo['type'], 'href' => z_root() . '/photo/profile/l/' . $channel['channel_id']) - )); - - if(stripos($profile['gender'],t('female')) !== false) - $t = t('%1$s updated her %2$s'); - elseif(stripos($profile['gender'],t('male')) !== false) - $t = t('%1$s updated his %2$s'); - else - $t = t('%1$s updated their %2$s'); - - $ptext = '[zrl=' . z_root() . '/photos/' . $channel['channel_address'] . '/image/' . $photo['resource_id'] . ']' . t('profile photo') . '[/zrl]'; - - $ltext = '[zrl=' . z_root() . '/profile/' . $channel['channel_address'] . ']' . '[zmg=150x150]' . z_root() . '/photo/' . $photo['resource_id'] . '-4[/zmg][/zrl]'; - - $arr['body'] = sprintf($t,$channel['channel_name'],$ptext) . "\n\n" . $ltext; - - $acl = new AccessList($channel); - $x = $acl->get(); - $arr['allow_cid'] = $x['allow_cid']; - - $arr['allow_gid'] = $x['allow_gid']; - $arr['deny_cid'] = $x['deny_cid']; - $arr['deny_gid'] = $x['deny_gid']; - - $arr['uid'] = $channel['channel_id']; - $arr['aid'] = $channel['channel_account_id']; - - $arr['owner_xchan'] = $channel['channel_hash']; - $arr['author_xchan'] = $channel['channel_hash']; - - post_activity_item($arr); - - -} - /* @brief Generate content of profile-photo view * @@ -452,6 +400,8 @@ function profile_photo_content(&$a) { '$title' => t('Upload Profile Photo'), '$submit' => t('Upload'), '$profiles' => $profiles, + '$single' => ((count($profiles) == 1) ? true : false), + '$profile0' => $profiles[0], '$form_security_token' => get_form_security_token("profile_photo"), // FIXME - yuk '$select' => sprintf('%s %s', t('or'), ($newuser) ? '<a href="' . $a->get_baseurl() . '">' . t('skip this step') . '</a>' : '<a href="'. $a->get_baseurl() . '/photos/' . $a->channel['channel_address'] . '">' . t('select a photo from your photo albums') . '</a>') diff --git a/mod/register.php b/mod/register.php index 49b010cc7..77ddfb4b1 100644 --- a/mod/register.php +++ b/mod/register.php @@ -145,6 +145,7 @@ function register_post(&$a) { authenticate_success($result['account'],true,false,true); $new_channel = false; + $next_page = 'new_channel'; if(get_config('system','auto_channel_create') || UNO) { $new_channel = auto_channel_create($result['account']['account_id']); @@ -156,10 +157,10 @@ function register_post(&$a) { else $new_channel = false; } - if(! $new_channel) { - if(! strlen($next_page = get_config('system','workflow_register_next'))) - $next_page = 'new_channel'; + $x = get_config('system','workflow_register_next'); + if($x) { + $next_page = $x; $_SESSION['workflow'] = true; } @@ -243,9 +244,10 @@ function register_content(&$a) { '$label_invite' => t('Please enter your invitation code'), '$invite_code' => $invite_code, '$auto_create' => $auto_create, - '$label_name' => t('Channel Name'), + '$label_name' => t('Name'), '$help_name' => t('Enter your name'), '$label_nick' => t('Choose a short nickname'), + '$nick_hub' => '@' . str_replace(array('http://','https://','/'), '', get_config('system','baseurl')), '$nick_desc' => t('Your nickname will be used to create an easily remembered channel address (like an email address) which you can share with others.'), '$name' => $name, '$help_role' => t('Please choose a channel type (such as social networking or community forum) and privacy requirements so we can select the best permissions for you'), diff --git a/mod/settings.php b/mod/settings.php index 3ca2d1218..ea9c73435 100644 --- a/mod/settings.php +++ b/mod/settings.php @@ -155,6 +155,7 @@ function settings_post(&$a) { $theme = ((x($_POST,'theme')) ? notags(trim($_POST['theme'])) : $a->channel['channel_theme']); $mobile_theme = ((x($_POST,'mobile_theme')) ? notags(trim($_POST['mobile_theme'])) : ''); + $preload_images = ((x($_POST,'preload_images')) ? intval($_POST['preload_images']) : 0); $user_scalable = ((x($_POST,'user_scalable')) ? intval($_POST['user_scalable']) : 0); $nosmile = ((x($_POST,'nosmile')) ? intval($_POST['nosmile']) : 0); $title_tosource = ((x($_POST,'title_tosource')) ? intval($_POST['title_tosource']) : 0); @@ -184,6 +185,7 @@ function settings_post(&$a) { set_pconfig(local_channel(),'system','mobile_theme',$mobile_theme); } + set_pconfig(local_channel(),'system','preload_images',$preload_images); set_pconfig(local_channel(),'system','user_scalable',$user_scalable); set_pconfig(local_channel(),'system','update_interval', $browser_update); set_pconfig(local_channel(),'system','itemspage', $itemspage); @@ -803,6 +805,9 @@ function settings_content(&$a) { $theme_selected = (!x($_SESSION,'theme')? $default_theme : $_SESSION['theme']); $mobile_theme_selected = (!x($_SESSION,'mobile_theme')? $default_mobile_theme : $_SESSION['mobile_theme']); + $preload_images = get_pconfig(local_channel(),'system','preload_images'); + $preload_images = (($preload_images===false)? '0': $preload_images); // default if not set: 0 + $user_scalable = get_pconfig(local_channel(),'system','user_scalable'); $user_scalable = (($user_scalable===false)? '1': $user_scalable); // default if not set: 1 @@ -836,7 +841,8 @@ function settings_content(&$a) { '$uid' => local_channel(), '$theme' => (($themes) ? array('theme', t('Display Theme:'), $theme_selected, '', $themes, 'preview') : false), - '$mobile_theme' => (($mobile_themes) ? array('mobile_theme', t('Mobile Theme:'), $mobile_theme_selected, '', $mobile_themes, '') : false), + '$mobile_theme' => (($mobile_themes) ? array('mobile_theme', t('Mobile Theme:'), $mobile_theme_selected, '', $mobile_themes, '') : false), + '$preload_images' => array('preload_images', t("Preload images before rendering the page"), $preload_images, t("The subjective page load time will be longer but the page will be ready when displayed"), $yes_no), '$user_scalable' => array('user_scalable', t("Enable user zoom on mobile devices"), $user_scalable, '', $yes_no), '$ajaxint' => array('browser_update', t("Update browser every xx seconds"), $browser_update, t('Minimum of 10 seconds, no maximum')), '$itemspage' => array('itemspage', t("Maximum number of conversations to load at any time:"), $itemspage, t('Maximum of 100 items')), |