streams/Zotlabs/Module/Affinity.php

91 lines
2.5 KiB
PHP
Raw Normal View History

<?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;
}
}