mirror of
https://codeberg.org/streams/streams.git
synced 2024-09-21 06:15:13 +00:00
91 lines
No EOL
2.5 KiB
PHP
91 lines
No EOL
2.5 KiB
PHP
<?php
|
|
|
|
namespace Zotlabs\Module;
|
|
|
|
use Zotlabs\Lib\Apps;
|
|
use Zotlabs\Lib\Libsync;
|
|
|
|
class Affinity extends \Zotlabs\Web\Controller {
|
|
|
|
function post() {
|
|
|
|
if(! ( local_channel() && Apps::system_app_installed(local_channel(),'Affinity Tool'))) {
|
|
return;
|
|
}
|
|
|
|
if($_POST['affinity-submit']) {
|
|
$cmax = intval($_POST['affinity_cmax']);
|
|
if($cmax < 0 || $cmax > 99)
|
|
$cmax = 99;
|
|
$cmin = intval($_POST['affinity_cmin']);
|
|
if($cmin < 0 || $cmin > 99)
|
|
$cmin = 0;
|
|
set_pconfig(local_channel(),'affinity','cmin',0);
|
|
set_pconfig(local_channel(),'affinity','cmax',$cmax);
|
|
|
|
info( t('Affinity Tool settings updated.') . EOL);
|
|
|
|
}
|
|
|
|
Libsync::build_sync_packet();
|
|
|
|
}
|
|
|
|
|
|
function get() {
|
|
|
|
$desc = t('This app (when installed) presents a slider control in your connection editor and also on your network page. The slider represents your degree of friendship or <em>affinity</em> with each connection. It allows you to zoom in or out and display conversations from only your closest friends or everybody in your stream.');
|
|
|
|
$text = '<div class="section-content-info-wrapper">' . $desc . '</div>';
|
|
|
|
if(! ( local_channel() && Apps::system_app_installed(local_channel(),'Affinity Tool'))) {
|
|
return $text;
|
|
}
|
|
|
|
$text .= EOL . t('The number below represents the default maximum slider position for your network/stream page as a percentage.') . EOL . EOL;
|
|
|
|
$setting_fields = $text;
|
|
|
|
$cmax = intval(get_pconfig(local_channel(),'affinity','cmax'));
|
|
$cmax = (($cmax) ? $cmax : 99);
|
|
// $setting_fields .= replace_macros(get_markup_template('field_input.tpl'), array(
|
|
// '$field' => array('affinity_cmax', t('Default maximum affinity level'), $cmax, t('0-99 default 99'))
|
|
// ));
|
|
|
|
if(Apps::system_app_installed(local_channel(),'Affinity Tool')) {
|
|
|
|
$labels = array(
|
|
0 => t('Me'),
|
|
20 => t('Family'),
|
|
40 => t('Friends'),
|
|
60 => t('Peers'),
|
|
80 => t('Connections'),
|
|
99 => t('All')
|
|
);
|
|
call_hooks('affinity_labels',$labels);
|
|
|
|
$tpl = get_markup_template('affinity.tpl');
|
|
$x = replace_macros($tpl, [
|
|
'$cmin' => 0,
|
|
'$cmax' => $cmax,
|
|
'$lbl' => t('Default friend zoom in/out'),
|
|
'$refresh' => t('Refresh'),
|
|
'$labels' => $labels,
|
|
]);
|
|
|
|
|
|
$arr = array('html' => $x);
|
|
call_hooks('affinity_slider',$arr);
|
|
$setting_fields .= $arr['html'];
|
|
}
|
|
|
|
$s .= replace_macros(get_markup_template('generic_app_settings.tpl'), array(
|
|
'$addon' => array('affinity', '' . t('Affinity Tool Settings'), '', t('Submit')),
|
|
'$content' => $setting_fields
|
|
));
|
|
|
|
return $s;
|
|
}
|
|
|
|
|
|
} |